Programmeren met kleuters

PHP-code. Copyright Gabor HejaProgrammeren is typisch zo’n vaardigheid die volwassenen op school niet leerden, maar de huidige generatie wel. Niet allemaal even uitvoerig misschien. Maar het moet raar lopen als een kind tegenwoordig het einde van zijn schoolloopbaan bereikt zonder ooit iets te hebben gedaan op het gebied van programmeren. Vandaag een voorbeeld van programmeren met kleuters, om een inkijkje te geven hoe dat er aan toe gaat.

Waarom is het goed dat kinderen leren programmeren? Ze worden toch niet allemaal ICT’er? Nee, maar ze hebben wel allemaal te maken met computers, tablets en mobiele telefoons, en met apparaten die steeds vaker worden aangestuurd door een computer. Keukenapparatuur bijvoorbeeld, maar ook hulpmiddelen in de zorg. Dus een beetje begrip van hoe een computer werkt is wel handig. Zie overigens ook dit artikel: Computional thinking: denken als een computer?

Programmeren: de basis

Programmeren was zeker vroeger heel saai en lastig werk: de programmeur moest hele lappen tekst typen, zonder één foutje want anders werkte het niet. Tegenwoordig helpt de computer een handje mee, en zijn er allerlei manieren om het makkelijker te maken, zoals bijvoorbeeld visuele interfaces. Daarbij plak je blokjes met opdrachten achter elkaar en bouw je op die manier een programma op.

Maar wat niet veranderd is, is hoe de computer denkt. Dus de basis blijft hetzelfde:

  • Een computer voert opdrachten één voor één uit. (Een computer kan multitasken, maar dat betekent alleen maar dat hij beurtelings aan verschillende taken werkt: het gaat dus niet sneller. Net als bij mensen eigenlijk!)
  • De computer begint bij het begin, en werkt door tot het einde, tenzij hij vastloopt of de opdracht krijgt één taak oneindig te herhalen.
  • Hij kan in zijn programma wel stappen overslaan of dus juist herhalen.
  • Een computer kent geen tussenstanden: iets is of waar, of niet waar. Hij gaat printen, of niet. Wat een computer wel kent, zijn condities, die ook weer òf waar òf niet waar zijn. Dus bijvoorbeeld: de inkt is op, dus de computer print niet.
  • Nuance bij de computer is een kwestie van slim programmeren: zo kun je de computer in plaats van de inkt is op of niet op, ook leren dat de inkt op is (minder dan 5% bijvoorbeeld), bijna op (5-20%) of ruim voorradig (alles boven 20%). De computer hoeft dan alleen maar ja of nee te zeggen op de vraag of het meer dan 20%, 5 tot 20% of minder dan 5% is.
  • IF, THEN en ELSE zijn belangrijke woorden voor een computer:
    • IF is als, dat gaat dus over een bepaalde toestand.
    • THEN is dan. Als je IF en THEN in je code stopt, dan doet de computer de volgende stap pas als aan die conditie is voldaan. Bijvoorbeeld: ALS de gebruiker op de a-toets drukt, DAN laat een a op het scherm zien. Zou natuurlijk raar zijn als je tekstverwerker zelf zomaar wat letters zou bedenken!
    • ELSE, anders, is de taak die de computer krijgt als niet aan de voorwaarde is voldaan. In het geval van de tekstverwerker zal de computer als je geen toets indrukt wachten tot je dat wel doet. Mijn strijkijzer heeft blijkbaar ook een computertje, want die weet dat als ik hem niet beweeg dat hij uit moet gaan: ALS de gebruiker staat te strijken, DAN houd je je temperatuur vast en geef je stoom af, ANDERS wacht je een paar minuten. ALS je een paar minuten hebt gewacht zonder dat er gestreken wordt DAN ga je uit.

Dus wat je ook programmeert en hoe je dat ook doet, in de kern is dit wat er gebeurt! Dat is nog wel te snappen, toch?

Programmeren met kleuters

Kleuters kunnen overweg met eenvoudige opdrachten: trek je jas aan en wacht bij de deur. Ook kunnen ze overweg met ÏF, THEN, ELSE opdrachten: ALS je je fruit ophebt, DAN ga je je jas aandoen, ANDERS eet je eerst je fruit op. Ze kunnen zelfs dat soort opdrachten geven: “Mama, als je klaar bent met je klusje, zullen we dan een spelletje doen?” en “Mama, zijn er nog van die Kerstkransjes met smikkeltjes? Dan wil ik die. Anders wil ik een koekje.” Dus kleuters kunnen programmeren!

Bij mijn dochter in de klas hebben ze een keer de leerkracht geprogrammeerd: de kinderen moesten haar een boterham met hagelslag laten smeren door alle handelingen die daarvoor nodig waren te beschrijven. Hilariteit bij elke “programmeerfout”: de hagelslag naast het bord…

Blue-botIk ben zelf programmeermoeder (en luizencontrolecoördinator, jaja!) op de school van mijn kinderen. Dat houdt in dat ik af en toe een serie korte workshops geef aan een stuk of zes kinderen uit groep 2. Kort omdat hun aandachtsspanne beperkt is, en groep 2 omdat voor de allerjongsten de aandachtsspanne té beperkt is, en de beweegdrang te groot. Ik mag daarbij gebruik maken van de Bluebot, een robot speciaal voor kleuters. Het is een vriendelijk ogend apparaatje, met wat knoppen op zijn “rug”.

Hij kan rijden, steeds een vaste afstand vooruit of achteruit. Ook kan hij even pauze houden, en 90% draaien, linksom of rechtsom. De kinderen programmeren hem door op de pijltjesknoppen te drukken en dan op “GO” te drukken. Hij onthoudt zijn programma totdat er iemand op de knop met het kruisje drukt. Je kunt hem ook besturen via een app.

Ik vind ‘m best duur voor wat hij kan, voor thuis lijkt het me wat teveel. Maar het is enorm uitnodigend voor de kinderen op school!

Oefeningen met de blue-bot: kennismaking

De eerste workshop gaan we hem ontdekken. Eerst goed kijken: wat zien we allemaal? Waar zou dat voor zijn? Je kunt zijn binnenwerk zien, dat is dus machtig interessant. En waar zouden die knoppen voor zijn? Vervolgens proberen we ‘m an de praat te krijgen. Elk kind mag op één knop drukken, net zolang totdat ze hebben uitgevonden hoe hij werkt. Zie je dat: als je op de oranje kop drukt gebeurt er niets. Hé, als je op de groen knop drukt doet hij iets. weet je nog op welke knop je buurvrouw had gedrukt? Als ze snappen hoe hij werkt vat ik het samen en mogen ze hem gaan besturen: laat hem maar eens naar Sofie rijden!

De tweede workshop kijken we hoe de blue-bot beweegt. We kijken hoe ver hij komt: alle kinderen op een rij met de benen wijd, en dan kijken onder welk kind hij stopt. Hoe groot is één stapje? En hoeveel stapjes is het van de één naar de ander? We lopen ook zelf als een blue-bot: stappen vooruit en achteruit, en alleen een draai van 90 graden: hoe kom je dan van A naar B? En we tekenen op ruitjespapier de route die de blue-bot aflegt. Daarvoor gebruiken we een speciale mat met inschuifvakjes of gewoon een groot stuk papier met hokjes die overeenkomen met de afstand die de blue-bot in één stap aflegt.

Oefeningen met de blue-bot: de hindernisbaan

De laatste workshop doen we een hindernisparcours, weer met die mat of dat hokjespapier. We maken dingen waar de blue-bot naartoe moet rijden, maar ook hindernissen. En dan de truc om hem zo te programmeren dat hij de hele route soepeltjes in één keer aflegt! Dat doen we door de route eerst te leggen met stroken papier (voor elke stap) en cirkels (voor elke draai). Daarna bedenken de kinderen welke stappen de robot moet zetten. Dat doen ze met losse kaartjes: stap vooruit, stap achteruit, draai links, draai rechts. Die leggen ze op de goede volgorde, ze controleren of het werkt en dan lijmen ze ze op papier. Al die regeltjes kaartjes zijn samen de hele route!

Dit is best een pittige opdracht, des te gaver als het lukt. Voor de kinderen is het erg leuk dat ze zelf de punten op de route mogen tekenen: ze tekenen bijvoorbeeld zichzelf, of een monster.

Zonder blue-bot

Wil je aan de slag met programmeren voor kleuters, dan kan dat prima zonder blue-bot. De programmeerbare leerkracht is een superleuk voorbeeld, maar er kan nog veel meer:

  • Kinderen kunnen elkaar programmeren
  • Van Scratch is ook een Junior-versie in de vorm van de app Scratch Junior, voor 5 tot 7 jaar. Zoek op ScratchJR.
  • In Gynzy, software die veel scholen gebruiken, zit ook een onderdeel “programmeerbare robot”
  • Er is een enthousiaste programmeur die een Engelstalige handleiding heeft geschreven voor het coderen van een lego- of duplo-doolhof. Je bouwt een doolhof en de kinderen leggen met kaartjes de code om erdoorheen te gaan.

Meer leuke links: Kleutersdigitaal, Codekinderen, Mediawijsheid. De hagelslagrobot komt van Codekinderen zag ik. Leuk aan die site is dat ze verschillende ideeën hebben voor programmeren zonder computer, kijk bij “unplugged”, en voor dingen om te maken, kijk bij “maken”. (Daar vind je ook die geleidende klei waar ik vorige week over schreef.)

Programmeren voor oudere kinderen

Er is nogal wat aanbod voor kinderen vanaf een jaar of acht. Ik ken niet alles, maar wel wat, bijvoorbeeld:

  • Scratch is een visuele programmeertaal voor kinderen, ontwikkeld door MIT (het Massachusetts Institute of Technology). Je bouwt met blokjes aan je programma, en kunt het zo makkelijk of moeilijk maken als je zelf wilt. Het begint met een kat die je kunt laten bewegen, maar kinderen kunnen er ook spelletjes in programmeren! Het werkt online en is gratis.
  • Lego heeft twee robots die je kunt programmeren. Boost is de eenvoudigste. Met de doos van Boost kan een kind al uit meerdere robots kiezen, en ze zelf programmeren. Lego Mindstorms is moeilijker, maar heeft ook meer mogelijkheden. Een leuk voorbeeld is de Cuber: een robot die de Rubik’s Cube oplost! Andere voorbeelden vind je hier. De Mindstormsrobot is ook de robot waarmee kinderen aan de slag moeten voor de FIRST Lego League wedstrijd: daarbij moeten ze in teams oplossingen bedenken voor een stel opdrachten op een speelveld.
  • CoderDojo is oneerbiedig gezegd een programmeerclub voor kinderen. Ze maken daarbij zelf bijvoorbeeld games of websites. Ze leren van elkaar, en van de coaches die er bij zijn. Veel leuker en dynamischer dan het klinkt!

Veel plezier!