Programmeren in het onderwijs

Het programmeren in het onderwijs heeft een uitdagend aangezicht, maar hoeft helemaal niet zo lastig te zijn. Het leren denken als een programmeur is een nieuwe lijn die uitgaat van de basis in de leerlijn programmeren. Veel van deze vaardigheden worden al toegepast in het onderwijs en zijn ook zeer herkenbaar, al hebben ze een andere naam.

In de training programmeren in het onderwijs ga ik op praktische manier om met de onderstaande leerlijn. Het begrijpen wat kinderen leren van programmeren is essentieel om te kunnen werken met welke middelen dan ook, want het programmeren kan met veel verschillende materialen geleerd worden. Dit is lang niet altijd een digitaal leermiddel.

De leerlijn programmeren bestaat uit de onderdelen: patroonherkenning, algoritmes, abstractie, decompositie en data & classificatie.

Het onderdeel patroonherkenning gaat over, je raadt het al, het herkennen van patronen. Patronen zijn overal terug te vinden: in de muziek, in het dagritme, het weekritme en in onder andere het schooljaar. Hoe ouder kinderen worden, hoe meer eigenaarschap ze krijgen en zullen gaan nemen in deze ritmes en hoe zij hiermee omgaan.

 

Het onderdeel algoritmes richt zich op de ondubbelzinnige instructies die uitgevoerd moeten worden om een handeling uit te laten voeren na het schrijven van een stuk code. Als je de Lego Mindstorms onderwijsrobot de weg uit een doolhof wilt laten vinden zonder menselijk ingrijpen, dan zul je ondubbelzinnige opdrachten uit moeten laten voeren. Leuk is om te weten dat dit eigenlijk helemaal niet zo ingewikkeld is. Er zijn slechts twee regels nodig.

  1. De robot moet naar links draaien als hij dichter dan 5 cm van de muur af is én de robot moet naar rechts draaien als hij meer dan 5 cm van de muur af is.
  2. Als de robot ergens tegen aan rijdt én daarmee de druksensor activeert, dan moet de robot enkele wielomwentelingen naar achteren rijden en een kwartslag naar links draaien om vervolgens zijn route te vervolgen.

Voor kinderen in de onderbouw is bovenstaand voorbeeld niet geschikt. Wel kan er gedacht worden aan het laten bewegen van de B-Bot. Om van het kasteel op de mat naar de boot te bewegen, moet de B-Bot 3 keer vooruit en dan een keer naar links.

 

Abstractie in het programmeren heeft te maken met het eenvoudiger maken van de opdracht. In het voorbeeld van hierboven heeft al een stuk abstractie plaatsgevonden. Kinderen lopen vaak vast op de opdracht als er te moeilijk nagedacht wordt. Het helpt dan om te denken aan wat je wilt bereiken met de robot en de sensoren. Het uitschrijven en het schematisch uittekenen van deze complexe situaties schept vaak een hoop duidelijkheid, waarmee de opdracht eenvoudiger wordt.

 

Met de vaardigheid ‘decompositie‘ deelt het kind een complexe opdracht op in stukjes. De B-Bot uit het eerder genoemde voorbeeld moet van het kasteel naar de boot rijden, maar onderweg moet hij langs een berg. De opdracht kan dan opgedeeld worden in twee kleine stukjes. Eerst langs de berg zien te komen en vervolgens van de berg naar de boot rijden. Deze vaardigheid speelt natuurlijk een grote rol in de ontwikkeling van kinderen. Vaak wordt dit onderdeel ook wel taakaanpak genoemd. Een kind kan moeilijk starten met het maken van zijn werk, want ‘het is zo veel…’. Met het kind maak je dan afspraken over welk werk eerst afgemaakt moet worden in welke tijd. Vaak blijken deze opdrachten nog behoorlijk haalbaar ook!

 

Het onderdeel data & classificatie heeft betrekking op het vergaren van informatie, deze schematiseren en met behulp van de abstractievaardigheden classificeren. Wat is echt belangrijk en wat moet er weggelaten worden? Daarbij spelen sorteervaardigheden een belangrijke rol. Elk materiaal heeft zijn eigen eigenschappen. Een bal is rond en een kubus is vierkant. Zo hebben deze bal en deze kubus ook een extra eigenschap van kleur. Data heeft ook verschillende eigenschappen. Data kan onder andere op functie worden ingedeeld, op vorm, en op inhoud. Als kinderen meer meester worden over de vaardigheden van classificatie van data, zal de rest van het programmeren gemakkelijker worden.