“We moeten de concurrentie aan met China! Daarom moeten de leerlingen leren programmeren.”
Belastingen verlagen kan ook natuurlijk maar onderwijs zien als een plek waar je je concurrentiepositie verbetert, is behoorlijk gemeengoed geworden. En dat snap ik ook heus wel. Je hebt wel eens de neiging te vergeten dat de extreem hoge levensstandaard die we gemiddeld in Nederland hebben, wel ergens van betaald moet worden. Er moet nu, maar ook in de toekomst, geld verdiend worden.
Om geld alleen? Armzalig!
Maar om met deze argumenten in de hand ervoor te willen gaan zorgen dat de leerlingen leren programmeren (of Maker Education gaan doen) is armzalig en doet afbreuk aan het “geweldige idee” zoals Paulo Blikstein dat noemt. Maker Education en in dit geval programmeren heeft een eigen waarde. Een waarde die ver voorbij het kale, ietwat armoedig argument van dat je er geld mee kunt verdienen, gaat. Ik vind: kinderen zouden ook moeten leren programmeren als je er geen cent mee zou kunnen verdienen.
De Commodore 64
Op mijn 12e ging ik elke dag naar de bibliotheek in mijn geboortedorp Rijnsburg. Ze hadden daar namelijk een computer, een Commodore 64. Je kon intekenen en dan mocht je een uurtje. Een jaartje later had ik genoeg gespaard om er zelf een te kopen. Een eigen Commodore 64. Een beige computer vermomd als heel dik toetsenbord. Je sloot hem aan op de TV en na korte tijd verscheen er een cursor. Verder helemaal niets. Ik kocht er later een cassettespeler bij waar je programma’s op kon opslaan. Die werden opgeslagen met piepjes en fluitjes (je kon ook programma’s downloaden van de radio die deze piepjes en fluitjes uitzond). Mijn leven: huiswerk, voetballen, programmeren. Ik wist iets van Basic en ging aan de slag. Internet was er nog niet natuurlijk dus ik moet het uit boekjes hebben geleerd, boekjes uit de bieb. Mijn “magnus opus” was een grafisch programma om staafgrafieken te tekenen. Uren, uren, uren was ik daarmee bezig. Ik hield niet op tot het werkte zoals ik wilde. Laat in de avond als mijn moeder voor de zevende keer me naar bed gestuurd had, sloot ik af door op rec en play te drukken om mijn programma te saven. Vijf minuten later kon ik gaan slapen. (voor de C64 nostalgici: hier een lijstje met C64 emulators: http://www.zzap64.co.uk/c64/c64emulators.html en hier een lijstje PEEK en POKE commando’s: http://ready64.it/articoli/_files/043_pokesc64.txt)
Fijn en bevredigend
Programmeren is dus voor sommige kinderen heel fijn en bevredigend. Bits en bytes in rij en gelid zetten en de computer iets laten doen wat hij in eerste instantie niet van plan was. Dat is gaaf en voedt ook een diepgeworteld gevoelen: de wereld naar je hand zetten. Enigszins dramatisch kun je dit zelfs zien als wat ons onderscheidt van de andere dieren: wij zijn in staat dingen te maken die ons verder helpen.
Problemen oplossen
Dat is dan ook direct een ander prachtig aspect van programmeren dat kinderen aanspreekt en bovendien belangrijk is om te leren: je kunt er ook problemen mee oplossen. Zeker als je ook programma’s maakt die fysiek ingrijpen in de wereld, die iets aansturen (denk aan een Arduino, gekoppeld met LEDjes, motoren en wat dies meer zij). Tegenwoordig zijn de mogelijkheden eindeloos en de je hoeft er niet meer jaren voor te leren om iets moois te kunnen maken. Programmeertalen zijn er in alle soorten en maten en ook de koppeling met de echte wereld wordt steeds eenvoudiger (denk bijvoorbeeld aan Scratch, gecombineerd met Littlebits).
Frustraties overwinnen
Programmeren is soms een zeer frustrerende bezigheid. Uren ben je aan het speuren naar dat ene foutje. Je kunt dat vanzelfsprekend ook best ergens anders vinden maar omgaan met deze frustratie, doorzettingsvermogen en de vaardigheden om te zoeken naar de oplossing op het internet, of in samenwerking met anderen is zeer leerzaam en wezenlijk. Voor mensen zoals ik, is de ervaring dat je extreem precies moet zijn en dat een probleem kan zitten in het gebruik van een ” i.p.v. een ‘ heel leerzaam. Ik heb daar elke dag profijt van.
Analytisch
Programmeren is verder een zeer analytische bezigheid. Wanneer je een complex programma gaat maken, ga je volgens gestructureerde stappen aan de slag maak je telkens een diepere laag in je programma, net zolang tot je bij het programmeren zelf belandt. Dit is wat ze in het Engels wel eens “computational thinking” noemen. Niet alleen toepasbaar als je programmeert maar je hebt hier wat aan op vele andere gebieden.
Overigens zijn er onder de voorstanders van programmeren als vak op school ook die vinden dat je bij deze abstracte wijze van programmeren moet blijven. Niet echt programmeren maar leren oplossingen te ontwerpen als:
- herhaal 10 x
- maak x 1 groter
- stop herhaal
Ik zou daar niet voor zijn. Er is weinig zo bevredigend als een echt programma dat werkt. Ik begrijp wel dat programmeertalen niet het eeuwige leven hebben (hoewel er nog steeds in COBOL wordt gewerkt) maar je leert de algemene programmeervaardigheden prima met een programma. Het schakelen tussen programma’s kost uiteindelijk helemaal niet zoveel moeite. Mijn geschiedenis van programmeertalen ziet er als volgt uit:
- Basic (op de Commodore 64)
- Logo (op de Apple II op mijn middelbare school)
- Modula-2 (in het eerste jaar van mijn studie natuurkunde aan de VU)
- QBasic (op mijn eerste eigen PC)
- Pascal (bij de eindstage van mijn studie)
- Javascript (vanwege websitewerk)
- PHP (ook vanwege websitewerk)
- Arduino (een nerd kan niet zonder)
- Processing (zie voor een voorbeeld van wat ik daarmee deed o.a. hier)
- Python (ben ik nu mee bezig, met een ultrageheim project)
Verder heb ik wel wat andere dingen gebruikt maar niet grootscheeps. Ook aan Scratch heb ik wel eens geroken en vind het een schitterende manier om jonge mensen met ene programmeertaal kennis te laten maken.
Het is in ieder geval zo dat de overgang van de ene naar de ander programmeertaal vaak heel gemakkelijk ging. Lastig zijn altijd de kleine zaken. Zo hoef je bij Python de zinnen niet af te sluiten met een puntkomma o.i.d. en wordt er gekeken bij de interpretatie naar inspringende zinnen maar dat leer je heel snel. Zeker m.b.v. internet en (online) bekenden die je op weg kunnen helpen, gaat dit vaak vrij eenvoudig.
Lezen. Maar ook schrijven.
De wereld om ons heen wordt steeds digitaler. Dat is een cliché van jewelste en dus heel erg waar. Kinderen zijn grootgebruikers van deze digitale wereld. Ze moeten deze wereld goed leren gebruiken en daarom is het verstandig aandacht te besteden aan mediawijsheid, digitale geletterdheid. Dat is de consumentenkant. Maar het is ook verstandig om iets te leren over de aanbodkant. Niet alleen leren lezen maar ook leren schrijven. En precies als bij het leren schrijven bij een taal als Nederlands, hoef je niet van elke leerling tye verwachten dat hij of zij een prachtig essay kan schrijven of een vlot opgeschreven opiniestuk of een fantastisch verhaal. Dat is niet nodig. Maar het is wel goed dat je leert hoe je dat aanpakt. Wat de regels zijn, wat de structuur is. Daar wordt je een slimmere lezer van. Zo is dat ook bij programmeren. Vanzelfsprekend hoeft niet elke leerling een knappe programmeur te worden maar je verkrijgt een diepe kennis van de digitale wereld om je heen door daar zelf actief aan te hebben gewerkt.
Dus.
Ja. Ik durf te zeggen dat ik vind dat elke leerling zou moeten leren programmeren. En nee, niet elke leerling hoeft een goede programmeur te worden. Laat elke leerling kennis maken op de basisschool met een vrolijke, visuele programmeertaal als Scratch. Laat leerlingen in het VO wat aanklooien met een taal als Python of Javascript. Leerlingen die meer willen kunnen dit doen door de verwerking bij een vak in een programma te gieten (“Maak een app voor natuurkunde over vallen…”). En voor de echte liefhebbers zou het fantastisch zijn als er een vak “programmeren” zou kunnen komen.
Niet vanwege het feit dat het onze welvaart in stand houdt of zelfs verbetert. Maar omdat het gewoonweg leerlingen iets leert dat belangrijk en gaaf is. Dat is meer dan genoeg. Meer dan genoeg.
Arjan van der Meij
Arjan is vooral docent natuurkunde. Ook heeft hij een paar jaar geleden zijn dysbricolikaart moeten inleveren en durft hij zich maker te noemen. Tegenwoordig maakt hij zich bijzonder druk. Alle leerlingen moeten makers kunnen worden. Dat is zijn doel. Hij zou graag een inspiratieboek voor Maker Educators schrijven.
Goed stuk, zo ben ik ook ooit begonnen met programmeren (al was het dan op een MSX). Programmeren op school een must maar niet om programmeurs op te leiden.