Zelfs kleuters moeten leren programmeren

Gekwalificeerde l­eerkrachten moete­n leerlingen inzichten verschaffen in de computer­wetenschappen en hen leren programmeren.

Leren programmeren is even belangrijk als leren lezen en rekenen. ‘Elke student verdient een kans om deze essentiële vaardigheid van de 21ste eeuw te leren’, tweette Bill Gates eerder dit jaar. Volgens hem is dit de nieuwe geletterdheid.

Jeanette Wing, computerwetenschapper aan Carnegie Mellon University en vicepresident van Microsoft Research, pleitte al in 2006 voor ‘computationeel denken’ op school. Ze vindt dat een fundamentele vaardigheid die niet alleen computerwetenschappers moeten leren. ‘Het is een manier van denken om complexe problemen op te lossen en systemen te ontwerpen aan de hand van de fundamentele concepten uit de informaticawetenschappen.

Computationeel denken omvat de vaardigheid om een probleem op een abstracte manier te bekijken, om logisch te redeneren en om een groot probleem te herleiden tot een geheel van kleine problemen. Het zijn vaardigheden die iedereen kan gebruiken, of je nu met een computer werkt of niet.’

Zo vroeg mogelijk beginnen
Een van Wings volgelingen is Aileen Owens, directeur technologie en innovatie van de South Fayette Township School, net buiten Pittsburgh. Kinderen die er school lopen, krijgen al van in de kleuterklas de basisconcepten van computationeel denken mee. Ze gebruiken daarvoor Scratch, een grafische programmeertaal waarmee ze blokjes met eenvoudige opdrachten kunnen verslepen en neerzetten. Door de blokjes in de juiste volgorde te zetten – bijvoorbeeld ‘ga 10 stapjes verder’, ‘wacht 5 seconden’, ‘draai 90 graden naar links’ – laten de kinderen een animatiefiguurtje op het scherm bewegen. Ze leren begrijpen hoe je een computer instructies moet geven.


Naarmate de kinderen ouder worden, krijgen ze steeds moeilijker instructies. Ze leren motoren en sensoren programmeren, bouwen Lego-robots die bewegen volgens hun instructies, gebruiken software om hun uitvindingen te ontwerpen en maken een prototype van hun ontwerp met een 3D-printer. Aan het einde van het basisonderwijs maken de leerlingen de overstap van instructies op blokjes (grafische programmeertaal) naar geschreven instructies, en leren ze de ingewikkelder maar flexibeler codeertaal kennen die ook professionele programmeurs gebruiken.

 
‘Dit gaat veel verder dan louter coderen. Het gaat ook over het aanleren van probleemoplossend denken. Kinderen leren hoe ze een groot probleem kunnen onderverdelen in componenten, hoe ze experimenten kunnen uitvoeren om te zien welke oplossingen werken en welke niet, en hoe ze kunnen samenwerken met anderen om de beste ideeën te vinden en toe te passen. Als ze die strategieën gebruiken in andere domeinen, leren ze dat ze computationeel denken ook buiten de wereld van de computers kunnen gebruiken.’


Zelfs de allerjongsten kunnen deze manier van denken aanleren. ‘Wij leren kleuters problemen op te lossen, door logisch te denken, problemen abstract te benaderen, patronen te vinden en alternatieven te zoeken’, vertelt Melissa Unger, lerares STEAM (Science, Technology, Engineering, Arts, Mathematics) in South Fayette. ‘We beginnen met vragen als ‘Wat zijn instructies?’ en ‘Hoe gebruik je instructies om een computer te laten weten wat je wil dat hij doet?’, en we laten leerlingen hun vriendjes ‘programmeren’ door hen door een doolhof te leiden aan de hand van kaartjes waarop pijltjes staan.’

Blijvend toepasbaar
Ook de Excel Public Charter School in Kent, Washington stimuleert computationeel denken. Voor hij in de school terechtkwam, werkte projectleider Eli Sheldon vier jaar als programmamanager bij Microsoft. ‘Ik zag er keer op keer hoe ingenieurs een ongelooflijk ingewikkeld probleem oplosten aan de hand van computationeel denken. Telkens weer wisten ze het probleem in delen uiteen te halen, die in een logische volgorde te plaatsen, en elk onderdeel apart te testen om na te gaan welke invloed een kleine verandering op het eindresultaat had. Toen ik hen bezig zag, dacht ik: iedereen zou dat moeten kunnen.’ Sheldon spoort leraren aan om computationeel denken te gebruiken in al hun lessen, of dat nu Engels, wiskunde of biologie is.

Ik zag er keer op keer hoe ingenieurs een ongelooflijk ingewikkeld probleem oplosten aan de hand van computationeel denken

Voorstanders van het aanleren van computationeel denken zijn ervan overtuigd dat het veel ruimer gaat dan leren te programmeren. Ze zien het als het aanbrengen van een verzameling kennis en vaardigheden die blijvend toepasbaar zijn in een groot aantal uiteenlopende situaties. Niet alleen op school en op het werk, ook daarbuiten.


Giovanni Samaey, computerwetenschapper aan de KU Leuven, is het daar volledig mee eens. ‘Als je een essay wil schrijven, moet je op voorhand weten in welke delen je het wil opdelen en die apart schrijven voor je tot je eindresultaat komt. Als je een rampenplan wil opstellen, moet je op voorhand bepalen welke personen je achtereenvolgens moet bellen en welke stappen je in elke nieuwe  situatie moet doen, voor je een evacuatie of hulpverlening kan uitvoeren. Bij conflictbemiddeling moet je een onoverzichtelijk conflict in delen uiteenhalen en apart oplossen, voor je het conflict in zijn geheel kan wegwerken. De toepassingen zijn eindeloos.’

Denken in stapjes
Elke week zit Samaey een uurtje samen met de sterkste leerlingen uit het vijfde en zesde leerjaar van basisschool Heilige Familie in Tielt om hen de basisprincipes van het computationeel denken aan te leren. ‘Niet omdat de minder sterke leerlingen dat niet zouden kunnen, maar omdat de tijd die daarvoor voorzien is een deel van de wiskundelessen vervangt en alleen de sterkere leerlingen wel wat lessen kunnen missen.’ Hij leert hen stapsgewijs problemen op te lossen en deze oplossingen zo te formuleren dat computers kunnen worden ingezet voor de uitvoering ervan.


Op een bepaald moment mogen de kinderen zelf een computerspelletje maken. ‘De grootste moeilijkheden zijn dat ze een open opdracht krijgen en dat ze moeten leren denken in stapjes’, vertelt Samaey. ‘Willen ze een spel ontwikkelen waarbij een man door het scherm loopt en punten vergaart als hij een vallende bal wegduwt, dan moeten ze eerst het mannetje stapjes laten zetten van links naar rechts, dan de bal laten vallen van boven naar onder – want in een computer is er geen zwaartekracht – en dan bepalen wat er gebeurt als het mannetje en de bal elkaar raken. Gaandeweg leren ze een ingewikkeld probleem op te delen in kleinere deelprobleempjes, een techniek die ze later ook elders kunnen gebruiken.’

Zo vroeg mogelijk
Net als Bill Gates vindt Samaey dat het computationeel denken een plaats verdient in de algemene vorming van elke leerling en dat scholen er niet vroeg genoeg mee kunnen beginnen. ‘Leerlingen die er talent voor hebben, moet je zo vroeg mogelijk bereiken om hun interesse en passie te voeden, zodat ze later in staat zijn en gemotiveerd zijn om nieuwe technologieën te creëren’, vertelt hij.


Sheena Vaidyanathan, STEM-leerkracht in het Los Altos School District in Californië, vergelijkt het met een vreemde taal leren. ‘We kunnen van leerlingen niet verwachten dat ze op hun achttiende vloeiend Frans of Spaans praten, als ze die vakken maar een paar semesters hebben gekregen.’

Wiskunde, fysica en chemie zijn nu nog aparte vakken, waardoor de verbanden tussen die vakken en het maatschappelijke belang ervan onvoldoende duidelijk zijn

Ook leerlingen die er geen talent voor hebben, hebben baat bij een algemene vorming in computationeel denken, al was het maar om de technologische evolutie te kunnen volgen. ‘Niet elke leerling die wiskunde krijgt, wordt later een wiskundige, maar moet wel weten dat wiskunde overal in zit’, vertelt Samaey. ‘En niet elke leerling die cultuur krijgt, wordt later een toneelspeler of toneelcriticus, maar moet wel weten wie Shakespeare is.’

Slechtste leerling van de klas
‘In Vlaanderen ontbreekt een structureel kader met eindtermen en leerplannen volledig voor computerwetenschappen’, vertelt Samaey. Hij werkte mee aan het rapport Informaticawetenschappen in het leerplichtonderwijs, waarmee de Koninklijke Vlaamse Academie van België en de Jonge Academie proberen in te breken in het eindtermendebat, om computerwetenschappen in het basis- en het secundair onderwijs te introduceren.


‘Binnen STEM – Science, Technology, Engineering, Mathematics – is er veel te doen over integratie. Wiskunde, fysica en chemie zijn nu nog aparte vakken, waardoor de verbanden tussen die vakken en het maatschappelijke belang ervan onvoldoende duidelijk zijn. Wij vinden dat we ook computerwetenschappen moeten integreren, maar het vak bestaat in onze scholen niet eens.’


Scholen die het vak op eigen initiatief geven, moeten door het gebrek aan omkadering zelf maar uitvissen wat ze hun leerlingen willen bijbrengen en hoe ze dat doen. ‘Alles hangt af van de leraar’, vertelt Marian Verhelst van de KU Leuven. ‘Sommigen doen heel veel, maar dat zijn enkelingen.’
Dat er onvoldoende leraren computerwetenschappen zijn, komt volgens Samaey niet omdat er geen specifieke lerarenopleidingen voor het vak bestaan. Die zijn er wel. Computerwetenschappen zijn niet opgenomen in de eindtermen, daardoor wordt het vak nauwelijks gegeven en kiezen weinig studenten die opleiding omdat ze er geen werk mee vinden. ‘Andere opleidingen voor wetenschapsvakken zijn erg vakspecifiek’, voegt Verhelst daaraan toe. ‘Programmeren krijgt daarin geen prominente plaats.’

Keuzevak of buitenschools
De meeste andere West-Europese landen bieden tenminste de leerlingen uit de laatste jaren van het secundair onderwijs informaticalessen aan. In de Scandinavische landen en de Baltische staten zijn er meer initiatieven dan gemiddeld. Engeland staat er het beste voor. Daar krijgt elke leerling verplicht informatica, van het begin van het basisonderwijs tot het einde van het secundair onderwijs.

Volgens Erik Barendsen van de Radboud Universiteit Nijmegen krijgen in Nederland alleen leerlingen in de laatste jaren van het secundair onderwijs informatica als keuzevak. ‘Die lessen gaan al van oudsher in op gevorderde onderwerpen als programmeren en algoritmes. Van leerlingen veronderstellen we dat ze computers kunnen gebruiken. Scholen moeten dat in de eerste jaren van het secundair onderwijs integreren in andere vakken. Het aanleren daarvan staat zeker niet centraal in de informaticalessen.’

Hoewel ook in Nederland de lessen informatica niet verplicht zijn, ziet Barendsen wel dat steeds meer scholen spontaan lessen over programmeren aanbieden, ook in de eerste leerjaren. Sommige focussen zich specifiek op ICT en profileren zich daar zelfs mee. ‘In Platform Onderwijs 2032 voor het basisonderwijs en de eerste jaren van het secundair onderwijs staat computationeel denken en het maken van dingen met behulp van de computer heel prominent vermeld.’

Buitenschoolse informatica
Martine Tempels, de voorzitster van het STEM-platform, bracht CoderDojo naar België. Jongeren van 7 tot 18 jaar krijgen er de kans om op zaterdag te leren programmeren in een speelse omgeving. ‘Dergelijke initiatieven zijn fantastisch, maar kunnen het onderwijs niet vervangen’, vindt Giovanni Samaey (KU Leuven). ‘Je bereikt er niet de hele bevolking mee, maar alleen mensen die er vooraf al interesse voor hadden.’

Bovendien bereiken zulke projecten vooral autochtone jongens en veel minder meisjes en allochtone jongeren. ‘Vooral die laatste categorie kunnen we moeilijk bereiken.’

Bovendien is de vraag zeer groot en het aanbod beperkt, waardoor veel jongeren in de kou blijven staan. ‘En doordat kinderen maar per keer kunnen inschrijven en daar niet elke keer in slagen, kunnen de coaches geen opbouwende leerlijn in het aanbod steken’, vertelt Samaey. ‘In het onderwijs kan dat wel en voor iedereen.’