Robotica D&P - Diamant College

Robotica D&P - Diamant College

Inleiding

Welkom bij het keuzedeel Robotica

In dit keuzedeel gaan jullie aan de slag met robotica. In het deel gaan we kijken naar de ontwikkelingen en mogelijkheden van robotica. In de huidige maatschappij zijn robots al niet meer weg te denken. Maar wat is robotica dan?

 

Introductie

Veel meer dan je denkt.

Wat leuk dat jullie gekozen hebben voor Robotica. Je staat op het punt om te gaan starten met het keuzedeel, maar voordat we starten zal je zeker gedacht hebben "Robots? Daar heb ik nog niet mee te maken"

Nou ... je denkt dat je nog niet veel met robots te maken hebt, maar we zijn er al veel meer van afhankelijk dan je denkt!  Kijk maar eens naar de volgende video.

 

 

In de volgende stap gaan kijken wat je weet over de woorden Robotica, Domotica en Programmeren.

Wat is Robotica?

Een onderzoekje.

Wat is dat nu eigenlijk?

Een goede vraag wat robotica nu eigenlijk betekent? Er zijn veel betekenissen te vinden op internet, maar het gaat er ook om wat jij verstaat onder robotica.

Door informatie over robotica op te zoeken en te verzamelen leer je wat het woord betekent en wat er allemaal bij robotica hoort.

 

 

Lees de opdracht goed door: Robotica ABC

Soorten robots.

Wat voor een soorten robots zijn er allemaal en waar kan je voor gebruiken?

Bekijk de volgende 4 filmpjes.

 

 

 

 

 

 

 

 

   

 

 

Computational thinking

https://en.wikipedia.org/wiki/User:Matt_YoheRobotica iets is voor jou? Weet dat mensen als Bill Gates, Mark Zuckerberg en Steve Jobs het toejuichen als leerlingen op school bezig zijn me programmeren. Programmeren is een onderdeel van Computational thinking.

Misschien heb je deze woorden wel eens ergens gelezen of gehoord. Maar wat is dat Computational thinking? En wat heeft het met Robotica te maken.

Steve Jobs zei ooit: "Iedereen zou moeten leren om te programmeren, want zo kun je leren hoe je moet denken."

Computational thinking gaat niet over ingewikkelde problemen en ingewikkelde oplossingen. Nee! Het is een manier van denken, waarmee je grote uitdagingen klein kunt maken en moeilijke oplossingen simpel. Je kunt het gebruiken om mensen te helpen. Dat maakt het een van de belangrijkste vaardigheden van de 21e eeuw.

Met deze vaardigheid gaan wij in dit keuzedeel flink aan de slag. Het is namelijk heel belangrijk dat je leert oplossingsgericht te denken. Want een robot zal niks doen als deze niet geprogrammeerd is.

Een hele mooie beschrijving van het begrip Computational thinking, maar wat is Computational thinking nou precies? 

Opdracht:

Maak een verslag van maximaal een A4 kantje waarin je uitlegt wat Computational thinking precies is. Schrijf het verslag in je eigen woorden zodat je ook je eigen verhaal begrijpt.

Maar wat is domotica dan?

Tegenwoordig zie je veel slimme toepassingen in huis. Denk bijvoorbeeld aan slimme verlichting, slimme verwarming of een slimme thermosstaat. Deze apparaten kunnen hun omgeving waarnemen. Ze kunnen met sensoren voelen hoe licht of warm het bijvoorbeeld is. Of ze kunnen meten hoeveel energie je verbruikt. Deze gegevens sturen ze door naar een regelaar. Die bekijkt of hij op basis van die gegevens actie moet ondernemen. Of er wel of geen actie ondernomen moet worden, stuurt hij door naar een actuator. Een actuator beïnvloedt zijn omgeving. Bijvoorbeeld door het licht aan te doen, de verwarming aan te zetten of een piepje te geven als er teveel energie gebruikt wordt. Al deze slimme toepassingen in huis, noemen we domotica.

"werken met robotica" edu4all

 

Programmeren

Welkom

bron: https://www.flickr.com/photos/kurafire/

Programmeren is het schrijven van een programma met instructies voor een computer. Dat klinkt misschien ingewikkeld, maar dat hoeft het helemaal niet te zijn.

Want instructies geven doe je de hele dag door. Aan andere mensen, bijvoorbeeld als je aan iemand uitlegt hoe je die lekkere cupcakes bakt. Maar ook aan computers, bijvoorbeeld als je de oven instelt. In feite ben je in beide gevallen aan het programmeren.

In deze praragraaf gaan we aan de slag met instructies voor een computer aan de hand van een dagelijks en menselijk voorbeeld. We leggen namelijk aan Olaf de Robot uit hoe je een oer-Hollandse boterham met hagelslag smeert.

Zo leer je de belangrijkste verschillen én overeenkomsten tussen het geven van instructies aan een persoon versus een computer. Ondertussen maak je kennis met de vijf belangrijkste begrippen die komen kijken bij programmeren. Net zoals het handig is om wegwijs te zijn in de keuken voordat je leert koken.

De vijf begrippen die we in deze module behandelen zijn:

  • Programmeertaal
  • Algoritme
  • Statement
  • Runnen
  • Debuggen

Laat je niet van de wijs brengen door de moeilijke woorden, want je zult zien dat wij mensen een stuk slimmer zijn dan onze smeerrobot.

Een recept in mensentaal

bron: http://www.freeimages.com/photographer/ekki-46209

Stel je eens voor: op vakantie in Barcelona heb je afgelopen zomer Maria leren kennen. Jullie raakten meteen bevriend. Nu is ze naar Nederland gekomen en stuurt je een bericht in het Spaans. Je begrijpt er niks van, maar als je de tekst voorlegt aan de robot van Google Translate, krijg je de volgende vertaling:

"Hoe maak je toch zo'n lekkere boterham met hagelslag? Je vertelde er zo enthousiast over toen je zo'n heimwee had! Ik wil er graag één proeven, maar ik weet het recept niet. De ingrediënten heb ik al wel in huis en ik sta nu aan het aanrecht. Wil je me helpen?"

Natuurlijk wil je Maria graag kennis laten maken met deze Nederlandse lekkernij en je stuurt haar het recept.

Een computer met hagelslag

Realiseer je je dat je net een programma hebt gemaakt voor een mens?

Dit recept schreven we in het Nederlands en Maria las het in het Spaans. Het maakt niet uit in welke menselijke taal we communiceren. Want ons brein en dat van Maria werken op precies dezelfde manier, met stroompjes tussen hersencellen.

Als het om computers gaat, spreken we over programmeertalen zoals Javascript of Python. Maar welke taal je ook kiest, net als bij ons verwerken ze instructies als universele signalen. Het brein van een robot bestaat echter uit bits en bytes.

Om een simpel gesprekje met Maria te voeren, hoef je niet te weten hoe haar hersenen werken. Hetzelfde geldt voor computers, ook daar kunnen tegenwoordig stees eenvoudiger mee communiceren.

Maar een robot heeft minder kennis van de wereld om ons heen. Daarom moeten onze instructies extra duidelijk zijn. Wat we daarmee bedoelen, ontdek je door het recept van een boterham met hagelslag aan te passen voor Olaf de Robot.

 

- Opdracht

- Werkblad

Proef op de som

Gefeliciteerd, je hebt net je eerste programma geschreven voor een computer!

Merk je dat er eigenlijk weinig verschil is tussen de twee programma's? Beide recepten zijn opgedeeld in stappen. Die voor Olaf de Robot zijn alleen wat gedetailleerder. En als we een recept schrijven voor een computer noemen we dat een algoritme. De stappen waar het uit bestaat heten statements.

Wat vind je van het programma? Denk je dat Olaf de Robot met deze instructie succesvol een boterham met hagelslag kan smeren? Of denk je dat er onderdelen in het recept zitten waar Olaf wellicht niet goed mee uit de voeten kan?

Laten we ons programma eens runnen om te testen hoe het onze robot vergaat. Dat betekent dat we de set instructies uitvoeren. Jullie docent zal jullie eigen Olaf de Robot zijn. Kijk maar wat er gebeurt!

 
 

Over apen en vlooien

bron: http://www.freeimages.com/photographer/rjuliana-47839

Zoals je ziet, heeft Olaf de Robot veel concretere uitleg nodig dan Maria om een boterham met hagelslag te smeren. Tijdens het runnen van de algoritmes voor de klas ging er heel wat mis. Als een computer onverwacht of onjuist gedrag vertoont, doordat de instructies niet helemaal kloppen, heet dat een error.

Het opsporen van fouten in een computerprogramma noemen we debuggen. Letterlijk betekent dat "ontvlooien". Het houdt in dat we met een stofkam stap voor stap door de instructies lopen om fouten op te sporen en te herstellen. Net zo lang tot alle stappen duidelijk genoeg zijn en de computer met alle mogelijke situaties overweg kan.

In ons geval moeten we er bijvoorbeeld voor zorgen dat Olaf alles dat hij oppakt na gebruik weer keurig neerlegt, dat hij alles dat hij opent, na afloop weer netjes sluit. Maar ook dat we Olaf leren om om te gaan met onverwachte omstandigheden. We moeten bijvoorbeeld controleren of Olaf het mes niet aan de scherpe maar de botte kant vasthoudt. En uitleggen wat de robot moet doen als het pak hagelslag leeg is.

Als het programma helemaal getest is en Olaf in alle gevallen een boterham met hagelslag oplevert, noemen we het monkeyproof. Het houdt in dat het zo duidelijk uitgelegd is, dat zelfs een aap de instructies op kan volgen zonder er een puinhoop van te maken.

 

 

Kennischeck

bron: https://www.flickr.com/photos/fransdekerf/Wat is er simpeler dan het smeren van een boterham met hagelslag? In deze module hebben we het uitgelegd aan een mens en aan een computer. 

Wij, Maria en Olaf spreken verschillende talen. Maar wat er precies in hun menselijke of digitale brein gebeurt, hoeven wij niet te begrijpen om eenvoudige instructies te geven.

In beide gevallen communiceerden we met een stappenplan. Maria kon met een paar complexe aanwijzingen uit de voeten, omdat wij mensen al heel veel weten en begrijpen van hoe de wereld in elkaar zit. Voor Olaf moesten we veel preciezer beschrijven wat de bedoeling was. Een robot heeft geen voorkennis, hij snapt niet wat er gebeurt en doet precies wat hij opgedragen krijgt. Eigenlijk zijn wij mensen dus veel slimmer.

In feite is dit waar het bij programmeren om draait: in kleine, duidelijke stappen aan een computer uitleggen om een grote, complexe handeling uit te voeren. Zoals je hebt gemerkt is dat vooral een kwestie van logisch nadenken. In de volgende modules gaan we aan de slag met voorbeelden in de wereld om je heen, oefeningen in de klas en opdrachten om online te programmeren.

Daarbij maak je steeds gebruik van de begrippen die we zojuist hebben behandeld. Heb jij nog goed in je hoofd wat ze betekenen?

 

Welke programmeertalen zijn er?

Algoritmes: Denken in stappen

Omschrijving

Is een stappenplan met instructies, die als ze stap voor stap in de juiste volgorde uitgevoerd worden, tot een vastgesteld doel leiden.

 

Stapje voor stapje

Computers hebben veel meer rekenkracht dan jij en ik om ingewikkelde problemen op te lossen... en tegelijkertijd hebben ze de grootst mogelijke moeite met instructies die voor ons gesneden koek zijn. Dat komt omdat computers anders denken.

 

De eerste stap

http://tumblr.unsplash.com/post/91300764549/download-by-jake-hillsDenk eens terug aan toen je vanochtend wakker werd. Wist je al precies hoe je reis naar school er uit zou zien? Bij welk stoplicht je zou moeten wachten, waar je over zou steken en of er misschien ergens een wegversperring was? Dat is onwaarschijnlijk.

Vond je het spannend om op te staan en aan je dag te beginnen? Vast niet. Want je loste eventuele uitdagingen pas op, als je ze tegenkwam. Het kostte je daarom ook maar weinig moeite. Toch heb je je bestemming bereikt.

Zoals Martin Luther King al zei: "als je vertrouwen hebt, hoef je niet de hele trap te zien om de eerste stap te zetten".

Met programmeren is het net zo. Robots denken niet vooruit. Ze handelen gewoon, stap voor stap. En dat kun jij ook, let maar op.

In deze module gaan we aan de slag met:

  • decompositie: je leert hoe je een uitdaging op kunt delen in stappen
  • representatie: je vertaalt de instructies naar stappen die een computer begrijpt
  • algoritme: je schrijft je eerste computerprogramma!

Laten we beginnen met een spel.

Blind in het labyrint

Van huis naar school reizen is een eitje - en eigenlijk best wel saai. Het wordt al wat spannender als je niet kunt zien waar je bent en iemand anders je instructies geeft. Dit is het idee achter Labyrint, een populair spelprogramma uit 1987 van de Vara.

René staat in een doolhof en moet naar het midden lopen zonder de grenzen te raken. Maar hij ziet alleen een leeg blauw vlak, de rest is voor hem onzichtbaar. Paul kan de lijnen wel waarnemen en geeft op afstand instructies.

In de volgende video zie je hoe dat gaat.

Lopen, lopen, linksom

Zojuist hebben jullie gezien dat het lastig is om een route uit te leggen aan een ander. Nu gaan jullie zelf de instructies voor Paul in de juiste volgorde zetten.

 

Een labyrint als programmeeromgeving

In het voorbeeld van het labyrint is René de robot en Paul de programmeur.

Ons doolhof is een eenvoudige representatie van dit spel, waarbij iedere stip op de weg overeenkomt met een stap voor de robot. Als programmeertaal maken we gebruik van instructies zoals "lopen", "linksom" en "rechtsom". Op basis hiervan hebben wij een strategie bepaald om de robot naar het miden te laten lopen en die vervolgens vertaald naar een algoritme.

Het opdelen van een uitdaging in kleinere stappen, noemen we decompositie.

Ongemerkt heb je zojuist al geoefend met een aantal belangrijke concepten van computiational thinking. Daarmee wordt het nu tijd voor het echte werk: biggetjes in een labyrint! Hieronder zie je een programmeeromgeving, met de onderdelen en mogelijkheden die we behandeld hebben in de Basismodule programmeren. Weet je nog hoe ze heten en hoe je ze gebruikt?

 

Biggetjes vangen in het labyrint

Tijd voor het echte werk. Lukt het jou om de biggetjes te vangen? Klik op de afbeelding om een poging te wagen! Probeer in ieder geval 1 puzzel op te lossen, als je op dreef bent, mag je door tot en met de 5e.

Herhaling: Maak het makkelijk met herhalingen

Omschrijving

Een deel van het computerprogramma dat meerdere keren herhaald wordt.

Yes, alwéér hetzelfde!

Herhaling. Voor ons mensen is het al gauw vervelend - en soms zelfs irritant. Computers kunnen er echter prima mee uit de voeten. Maar stel dat we die gegevens combineren... Ligt daar een kans?

 

 

 

Herhaling: saai of spannend?

http://postergen.com/Wij mensen zien herhaling vaak als saai, sleur of zelfs straf. Denk maar eens aan de keren dat je moest nablijven op school om regels op het bord te schrijven. We zijn er niet goed in en proberen het zoveel mogelijk te vermijden met slimme uitwegen.

Met computers is het andersom. Die blinken juist uit in herhaling; het is de essentie van wat ze doen.

Maar als wij mensen aan computers opdrachten geven om te herhalen, dan wordt het spannend! Let maar eens op.

In deze module gaan we aan de slag met:

... en monsters. Ga maar verder als je durft.

Hoe teken je een monster?

Laten we beginnen met het tekenen van een monster. Voor het gemak nemen we er één exemplaar dat niet al te angstaanjagend is, zoals het voorbeeld rechts.

Bekijk het eens goed en probeer na te denken over de volgende vragen:

  • hoe zou je het aanpakken om dit monster zelf te tekenen?
  • wat heb je nodig om aan iemand (die jou niet kan zien!) uit te leggen hoe hij of zij dit monster kan tekenen?
  • hoe zou je een computer uitleggen om dit monster te tekenen?

Een monsterlijke weergave

We kunnen de tekening van het monster representeren als een vel ruitjespapier, waarop een aantal vierkanten is ingekleurd.

De vakjes geven houvast om het monster na te tekenen. Het is vooral een kwestie van goed kijken en tellen. Eigenlijk niet anders dan het labyrint uit de vorige oefening.

De vakjes geven zelfs zoveel houvast, dat je iemand anders kunt uitleggen om deze tekening te maken, zonder dat hij jou (of het monster) kan zien, door gebruik te maken van de volgende instructies:

  • ga een vakje naar rechts
  • ga een vakje omlaag
  • ga een vakje naar links
  • ga een vakje omhoog
  • kleur dat vakje in

 

Probeer het maar eens met de volgende oefening.

 

Een symbolisch monster

In de vorige oefening heb je vast gemerkt dat zinnetjes in menselijke taal niet het handigst zijn om uit te leggen hoe we ons monster kunnen tekenen. De instructies zijn lang en het herhalen van woorden maakt ze onoverzichtelijk.

Het wordt al flink eenvoudiger door gebruik te maken van symbolen:

  • → als symbool voor "ga een vakje naar rechts"
  • ↓ als symbool voor "ga een vakje omlaag"
  • ← als symbool voor "ga een vakje naar links"
  • ↑ als symbool voor "ga een vakje omhoog"
  • ⬛ als symbool voor "kleur dat vakje in" 

De instructies voor het tekenen van de vierde en vijfde rij kunnen we nu een stuk simpeler weergeven:

→ → ↓ ⬛ → → → → ⬛ ↓ ← ⬛ ← ⬛ ← ⬛ 

Krijg jij het monster klein?

Heb je de herhaling onder de knie? Nu wordt het spannend! We stoeien nog één keer met ons monster. 

Als je goed kijkt naar het algoritme voor de bovenste vijf rijen, valt je misschien nog een patroon op.

→ 2  ↓ ⬛ → 4  ⬛ ↓ ← ⬛ ← ⬛ ← ⬛ 

← ↓ ⬛ → 2  ⬛ → 2  ⬛ ↓ ⬛ ← ⬛ ← ⬛ ← ⬛ ← ⬛ ← 2  ↓

 

De herhaling van ← ⬛ ← ⬛ ← ⬛ ← ⬛ (naar links, kleur in, naar links, kleur in, naar links, kleur in, naar links, kleur in) kunnen we opschrijven als (← ⬛) 4 (kleur naar links vier vakjes in).

Het patroon → 2 ⬛ → 2 ⬛(naar rechts, naar rechts, kleur in, naar rechts, naar rechts, kleur in) kan ook gerepresenteerd worden als (→ 2 ⬛) 2 (sla naar rechts steeds een vakje over en kleur de volgende in).

 

Het algoritme tot nu toe kunnen we ook versimpelen tot:

 → 2  ↓ ⬛ → 4  ⬛ ↓ (← ⬛) 3

 ← ↓ ⬛ (→ 2 ⬛) 2  ↓ ⬛ (← ⬛) 4  ← 2  ↓

 

Laten we eens proberen of we de rest van het monster klein kunnen krijgen.

Slimme zombies

In de voorgaande oefeningen, zijn we steeds op zoek gegaan naar patronen in het monster. Op basis daarvan hebben we het gerepresenteerd als gekleurde vakjes op ruitjespapier.

Ons algoritme om het te tekenen, maakten we eerst in woorden. Weer zochten we patronen en maakten we het eenvoudiger met symbolen. Ook daarin zagen we herhaling, die we aangaven met getallen. In de laatste stap combineerden we patronen met herhalingen tot een algoritme dat steeds korter en krachtiger werd. Dat noemen we abstractie.

Het is één van de meest belangrijke concepten van programmeren - dat in het begin best lastig kan zijn. Laat je daar niet door van de wijs brengen, probeer de laatste oefening met de zombie maar eens. Je zult merken dat je het dan zo te pakken hebt. Klik op de afbeelding om te beginnen. Tot oefening 11 mag je met de zombie aan de slag.

Lesidee in de klas

We gaan in groepjes werken en kijken of we elkaars monsters kunnen tekenen op basis van de algortimes - dus zonder de afbeelding te hebben gezien. Je mag ook met meerdere kleuren werken. Kun je al herhalingen ontdekken? Ga op zoek naar een eenvoudige wijze van noteren.

 

 

 

Voorwaarde: Een vergelijking

Omschrijving

Een vergelijking om te bepalen of iets wel of niet gedaan moet worden, bijvoorbeeld äls..dan"of "zolang..doe" of "herhaal..tot".

 

Instructie met een voorwaarde

Als je de vorige modules hebt doorlopen, dan mag je deze video kijken. Dat is de voorwaarde om deze video te te kijken.

Want door slim gebruik te maken van regels, kun je bepalen wat er wel óf juist niet mag gebeuren, in situaties die je van te voren niet kent. 

 

 

Als je computer slim is, dan ...

https://pixabay.com/en/users/RondellMelling-57942/Jij bent slim. Je kunt al denken in stappen en je hebt geoefend met herhalingen. Je weet hoe je Olaf de Robot een boterham kunt laten smeren, hoe je biggen vangt in een doolhof en hoe je een zombie naar een zonnebloem brengt. Jij kunt een computer laten doen wat je wilt, hoe gaaf is dat?

Maar... tot nu toe hebben we alleen problemen opgelost, waar we zélf het antwoord al op wisten. Zou het niet beter zijn, als we iets van onze intelligentie aan de computer over kunnen brengen? Zodat we niet alles voor hoeven te kauwen en zo'n zombie zelf kan bepalen wat er moet gebeuren?

Laat dat nu niet zo moeilijk zijn. Als je de regels van een spelletje kaarten snapt, dan ben je al halverwege.

In deze module leer je namelijk over:

Als je naar de volgende pagina gaat, dan laten we je zien hoe dat werkt!

Zolang jij de regels mag bepalen

https://pixabay.com/en/users/TanteTati-77004/Je denkt het vast wel eens: "Als ik het voor het zeggen had...!"

Als het om programmeren gaat, ben jij de baas. Jij mag de regels bepalen en de computer kan alleen maar volgen. Er komt zelfs geen valsspelen aan te pas.

Laten we beginnen met een potje pesten. Dat heb je vast wel eens gespeeld. Voordat je begint, is het belangrijk dat iedereen weet hoe het spelletje gaat. Weet jij hoe de regels precies zijn?

Spelen, totdat je hebt gewonnen

De spelregels beginnen met een herhaling: geef 10 keer een willekeurige kaart aan iedere speler. Dat is een makkie! Want als je van te voren weet hoe vaak iets moet gebeuren, kun jij dat immers al met twee simpele instructies regelen. Eén stap voor de actie zelf (deel een kaart uit) en één voor de herhaling (doe dat 10 keer).

Daarna speel je net zolang totdat iemand heeft gewonnen. Hoeveel rondes daarvoor nodig zijn, kun je vooraf niet bepalen. Dat hangt af van toeval en strategie. Welke kaarten krijg je gedeeld, hoe lang duurt het potje en natuurlijk: wie zal er winnen? Juist deze factoren maken het spelletje zo leuk. Hoe vaak je aan de beurt zal zijn, is onmogelijk te voorspellen. Maar je weet wel wat de regel is: je gaat door, totdat iemand geen kaarten meer heeft.

Regels met "totdat", gebruiken we heel veel. Let er maar eens op. Maak je huiswerk, totdat het af is. Je mag buitenspelen, totdat de lantaarnpalen aan zijn. Je blijft aan tafel zitten, totdat je bord leeg is.

Wij mensen lappen zulke regels soms het liefste aan ons laars. Maar computers kunnen er hartstikke goed mee overweg. Ze herhalen onvermoeibaar steeds opnieuw jouw stappen, net zo vaak tot ze mogen stoppen. Of dat nu 1, 8, 734 of nog veel vaker is, dat maakt niet uit. Jij hoeft alleen te bedenken wat er moet gebeuren en vooral: wanneer het genoeg is. Dat laatste noemen we een voorwaarde. Het is het stukje van je regel na "totdat".

Zo'n totdat-instructie maakt ons doolhof een fluitje van een cent. De boze vogel beweegt vooruit, totdat hij bij het biggetje is. De zombie zigzagt, totdat hij de zonnebloem bereikt. Dat maakt programmeren voor jou een stuk gemakkelijker, probeer het maar eens.

In de programmeeromgeving herken je een totdat-statement aan de roze kleur. Het voorbeeld rechts betekent bijvoorbeeld: herhaal de stap "beweeg vooruit", totdat je bij het biggetje bent. Klik op de afbeelding om het biggetje en de zonnebloem te bereiken met totdat-instructies. Je mag oefenen tot en met opdracht 13.

 

Als de bij bij de bloem is, dan ...

De meeste regels van een potje pesten hebben echter een andere vorm. Het is je vast opgevallen dat ze vaak bestaan uit "Als ... dan ... anders...". Als de kaart een Aas is, dan is de vorige speler weer aan de beurt, anders mag de volgende.

Regels met "als-dan-anders" gebruik je elke dag door. Als het mooi weer is, dan trek je een korte broek aan, anders draag je een dikke trui. Als het een doordeweekse dag is, dan ga je naar school, anders mag je lekker uitslapen. We gebruiken ze om keuzes te maken, meestal over dingen die we van te voren nog niet wisten.

Als een computer zulke regels kent, dan kan hij zelf beslissingen nemen, anders moet jij dat van te voren doen. Juist dat laatste is niet altijd handig en soms zelfs niet eens mogelijk. Gelukkig kennen programmeertalen ook een "als-dan-anders"-constructie. Ditmaal is de voorwaarde het stuk van de regel tussen "als" en "dan".

Duik maar eens in de volgende opdracht. Deze bij is op zoek naar nectar. Die kan hij echter alleen uit een bloem halen. Wij weten van te voren niet wat er achter het wolkje zit. Kun jij de bij helpen met de juiste regels?

In de programmeeromgeving herken je een als-dan-statement aan de blauwe kleur. Het voorbeeld rechts betekent bijvoorbeeld: als je op de bloem bent, dan doe je de stap "haal nectar", anders doe je de stap "maak honing". Het laatste deel, vanaf "anders", is overigens niet verplicht en mag ook leeg blijven.

Probeer ten minste één puzzel op te lossen met als-dan-statements, als het goed lukt, mag je verder gaan tot en met de 5e. Klik op de afbeelding om te beginnen.

De kracht zit in de combinatie

Handig zijn ze hè, die voorwaarden?

Door ze te combineren, worden ze nóg krachtiger. Als je ze slim gebruikt, kun je uit ieder doolhof ontsnappen. Hoe groot of ingewikkeld het ook is. Zelfs als je van te voren niet weet hoe het er uit ziet of wat de juiste weg is.

Merk je op hoe voorwaarden je zo ook helpen om je programma's abstracter te maken?

En jij hebt nu het gereedschap in handen om precies dat te doen. Met een paar instructies loods je vurige vogels, zotte zombies en bezige bijen naar hun doel met maar een paar stappen. Kleinduimpje is er niks bij.

Kijk maar eens of jij je superkrachten kunt gebruiken om prehistorische eikels te verzamelen voordat het ijs smelt. Daar draai jij je hand toch niet meer voor om? Want door voorwaarden te gebruiken, heb je maar een paar stappen nodig. Klik op de afbeelding om te beginnen. Als het je lukt tot oefening 20, dan ben jij al een superslimme programmeur!

Patronen herkennen

Omschrijving

Patronen (model, vorm, kleur, voorbeeld, herhalingen) herkennen.

De sleutel naar succes

Hoe maak je snel een krachtig computerprogramma? Oefenen helpt. Maar deze truc is nog handiger! Herken de patronen en gebruik ze opnieuw.

 

 

Kijk mama, zonder handen!

https://pixabay.com/en/users/kpgolfpro-27707/Herinner jij je nog hoe het was om te leren fietsen? Eerst had je iemand nodig om uit te leggen hoe je op moest stappen en met je mee te lopen om te voorkomen dat je viel.

Nu heb je vast geen zijwieltjes meer. Je hebt de handelingen van het fietsen al zo vaak gedaan, dat ze routine zijn geworden. Zelfs als je 's ochtends nog niet helemaal wakker bent, kom je zonder kleerscheuren in de klas. Sterker nog, je hebt zelfs denkkracht over om nog wat woordjes te oefenen in je hoofd, of gezellig te kletsen met een vriend(in).

Je staat er nooit bij stil, maar eigenlijk is dat best indrukwekkend. Zeker als je nog even terugdenkt aan die eerste keer. Wat leek dat toen moeilijk! Nu hoeft niemand je meer te vertellen hoe het precies moet. Vaak weet je niet eens meer precies welke stappen je volgt. Je stapt gewoon op en fietst weg.

Zouden we dat ook kunnen bereiken met computers? Laten we het proberen!

In deze module gaan we aan de slag met:

Schrik niet van deze moeilijke woorden, want we gaan gewoon zingen en tekenen. Doe je mee?

Je tante in Marokko

https://pixabay.com/en/users/Kaz-19203/Laten we beginnen met een liedje: 'Ik heb een tante in Marokko'. Ken je dat? Luister maar eens naar Jelle, die het voorzingt.

In de opdracht hieronder hebben we de tekst voor je afgedrukt. Die is best lang voor een kinderliedje! Toch heb je het zo geleerd. Hoe kan dat?

Als je goed luistert, valt je op dat het liedje heel veel herhalingen bevat. De losse regels die vaker voorkomen hebben we al voor je vervangen door (x2). 

Maar er is nog meer...

De functie van een refrein

De stukjes in een liedje die vaker terugkomen, noemen we in de muziek een refrein. We hadden onze tekst veel korter weer kunnen geven. Hier boven zie je hoe we in het blauw met "Refrein:" aangeven dat hier een paar regels volgen, die we later zullen herhalen. Na het tweede couplet hoeven we het niet opnieuw uit te schrijven, maar kunnen we volstaan met "Refrein".

Er is niemand die het woord "refrein" gaat zingen, maar we weten allemaal wat het betekent en hoe het werkt. Als je het nog een paar keer oefent, krijg je het zelfs amper meer uit je hoofd. Voor je het weet zit je het te fluiten op de fiets, zonder dat je het in de gaten hebt. Het refrein is routine geworden.

Een refrein is een patroon in muziek, dat vaker terug komt. We leggen één keer uit hoe het gaat en in het vervolg keer je steeds terug naar die uitleg.

Simpel toch? Waarschijnlijk vertellen we je hier niets nieuws. Maar wist je dat je met refreinen ook kunt tekenen?

Hoe vorm je een vorm?

Met programmeren kun je veel meer dan eikels zoeken met een eekhoorn. Wat dacht je bijvoorbeeld van kunst?

Kijk maar eens naar de volgende oefening, waarin een artistiek ventje vierkanten en driehoeken tekent.

Dat doet hij met twee nieuwe instructies: 

  • De kunstenaar kan voor- of achteruit bewegen over een bepaalde afstand in pixels
  • De kunstenaar kan links- of rechtsom laten draaien met een bepaald aantal graden

Weet je niet zeker hoe ver de kunstenaar moet gaan of draaien? Voer je programma dan gewoon even uit om te testen wat er gebeurt. Met het schuifje tussen de schildpad en de haas kun je bovendien zelf bepalen hoe langzaam of snel het gaat.

Lukt het jou om hiermee vierkanten en driehoeken te tekenen? Probeer in ieder geval tot en met oefening 6 te komen. Klik op de afbeelding om te beginnen aan je eerste digitale kunstwerk!

Van refrein naar functie

In de vorige opdracht heb je flink wat vormen getekend, steeds op dezelfde manier. Je kunt een herhaling gebruiken om drie of vier keer rechtsaf te gaan. Maar in iedere opdracht begon je weer opnieuw.

Je hebt intussen vast gemerkt dat programmeurs lui zijn. Als ze te vaak hetzelfde doen, dan maken ze het makkelijker. Als iets ingewikkeld, foutgevoelig of inefficiënt is, dan maken ze het simpeler. Ironisch genoeg noemen ze dat met een moeilijk woord abstractie...

Voel je al waar we naartoe willen? Jouw driehoeken en vierkanten zijn eigenlijk refreinen! Het zou immers veel handiger zijn als je ze één keer beschrijft en er daarna alleen nog maar naar hoeft te verwijzen. De refreinen van computers worden ook wel (sub)routines genoemd, of functies.

In de programmeeromgeving herken je ze aan een lichtgrijs blok. Iedere functie heeft een eigen naam, die je ziet staan in de groene balk en beschrijft wat de functie doet. Dat is handig wanneer je er meer dan één gebruikt. Bijvoorbeeld "teken een vierkant" en "teken een driehoek".

In het grijze blok staat de uitleg van de functie. Net als in een liedje moet je zelf aangeven wanneer het refrein gezongen moet worden. Dat doe je met een hele eenvoudige instructie: "teken een vierkant". Als de computer zo'n groene instructie tegenkomt, gaat hij op zoek naar de uitleg van die functie en voert die stappen uit.

Als je eenmaal in een functie hebt uitgelegd hoe je een vierkant tekent, dan kun je het daarna zo vaak gebruiken als je wilt. Je hoeft er niet meer over na te denken. Je hoeft zelfs niet precies te begrijpen hoe het werkt. Als je een functie ziet met de naam "teken een cirkel", heb je vast al een aardig idee wat die functie doet toch?

Probeer het maar eens met de volgende opdracht. Omdat je nu al aardig wat stappen hebt geleerd, zijn ze onder het kopje "Blokken" in categorieën opgedeeld. Onder "Acties" vind je de stappen om te bewegen en te draaien, onder "Functies" de stap om een functie aan te roepen en onder "Wiskunde" staan je herhalingen.

Kun jij met functies de gevraagde figuren tekenen? Soms ben je al met één stap klaar! Probeer tot en met de 5e oefening te komen. Je kunt meteen beginnen met de functies door op de afbeelding te klikken.

Cowboy Billy Boem

Laten we nog eens naar een liedje kijken. Ken je 'Cowboy Billy Boem'? Het is opgebouwd uit een patroon dat steeds hetzelfde is, maar nét even anders. 

https://pixabay.com/en/users/LoggaWiggler-15/En wie rijdt er op z'n paard door de prairie?
Het is Cowboy Billy Boem, door de boeven zeer gevreesd.
Er is nooit in het Wilde Westen 'n cowboy geweest,
die zo dapper was als Cowboy Billy Boem

En van je hotsie, knotsie, knetter, van je jippie, jippie, jee,
Maar zijn paard was zeer vermoeid en die wou niet verder mee.
Maar hij moest de boeven vangen dus nam hij een ander beest
en nu mag je zelf bedenken wat voor 'n beest dat is geweest.

En wie rijdt er op z'n koe door de prairie?
Het is Cowboy Billy Boem, door de boeven zeer gevreesd.
Er is nooit in het Wilde Westen 'n cowboy geweest,
die zo dapper was als Cowboy Billy Boem.

En van je hotsie, knotsie, knetter, van je jippie, jippie, jee,
Maar zijn koe was zeer vermoeid en die wou niet verder mee.
Maar hij moest de boeven vangen dus nam hij een ander beest
en nu mag je zelf bedenken wat voor 'n beest dat is geweest.

En wie rijdt er op z'n schaap door de prairie?
Het is Cowboy Billy Boem, door de boeven zeer gevreesd.
Er is nooit in het Wilde Westen 'n cowboy geweest,
die zo dapper was als Cowboy Billy Boem.

En van je hotsie, knotsie, knetter, van je jippie, jippie, jee,
Maar zijn schaap was zeer vermoeid en die wou niet verder mee.
Maar hij moest de boeven vangen dus nam hij een ander beest
en nu mag je zelf bedenken wat voor 'n beest dat is geweest.

Enzovoort.

...en dan wordt het routine!

https://pixabay.com/en/users/ClkerFreeVectorImages-3736/Gefeliciteerd! 

Je hebt alle modules doorlopen en de belangrijkste begrippen van computational thinking onder de knie. Merk je hoe het denken als een computer routine is geworden...? Vanaf nu mag jij jezelf een programmeur noemen!

 

https://code.org/certificates

Belangrijke begrippen en filmpjes over de toekomst

Abstractie: het verminderen van het aantal programmeercodes om zodoende de programmering overzichtelijk te houden.

Algoritme: een reeks opeenvolgende opdrachten om een probleem op te lossen of doel te bereiken, vergelijkbaar met een recept om een maaltijd te bereiden.

Debuggen: het opsporen en oplossen van fouten in een computerprogramma.

Decompositie: het delen van een probleem in kleinere delen die gemakkelijker begrepen worden en op te lossen zijn.

Error: treedt op wanneer een computer onverwacht of onjuist gedrag vertoont, doordat de instructies niet helemaal kloppen.

Herhaling: een deel van een computerprogramma dat meerdere keren herhaald wordt, ook wel lus of iteratie genoemd.

Patroon: een beschrijving, of weergave van een probleem of oplossing die meerdere keren herhaald of hergebruikt kan worden .

Programmeertaal: formele taal die gebruikt wordt om instructies te communiceren aan een computer.

Representatie: de weergeven van een probleem of oplossing in een andere vorm, bijvoorbeeld een tekening, tekst, reeks symbolen of instructies.

Runnen: het uitvoeren van een computerprogramma.

Statement: een eenvoudige instructie voor een computerprogamma om een actie uit te voeren. 

Variabele: wordt gebruikt om informatie te bewaren, met een naam en een waarde, zoals "leeftijd" in combinatie met "8".

Voorwaarde: een vergelijking om te bepalen of iets wel of niet gedaan moet worden, bijvoorbeeld "als... dan ..." of "zolang ... doe... " of "herhaal ... tot ....".