Wie programmeert leert logisch te denken
Door inzicht te krijgen in logica en programmeren, leren leerlingen automatisch ook een ‘verweer’ aan tegen gedachtesystemen met niet-logische aannames, die onder andere voorkomen bij de evolutieleer, regeert Johan Korten.
Aan het artikel ”Spelen met robots van LEGO” (RD 3-11) wil ik graag een vervolg geven. Programmeerbare LEGO heeft inmiddels een flinke historie. Wie op ”bricklink” (”programmable”) zoekt (dit geeft geen uitputtende lijst), ziet dat LEGO in samenwerking met de BBC in 1986 hiermee al begon, met name voor scholen onder het Dactalabel (LEGO Dacta was de onderwijsdivisie van de LEGO Groep, nu LEGO Education).
In 1998 kwam men met de eerste ‘echte’ robot uit, in de Mindstormsreeks. Hier kwam in 2006 de NXT voor in de plaats, en in 2013 de EV3. Best wel prijzige sets (tot zo’n 400 euro).
In 2017/2018 is er echter een tweede lijn naast gezet, waaronder WeDo 2.0, Boost (zie RD-artikel), Powered Up en de ”Train Push & Go” basis van Duplo. Anders dan de Mindstormsproducten, waarbij de programmacode vanaf de computer op de robot gedownload wordt, zijn de producten van de tweede lijn in feite voorgeprogrammeerde bluetooth (low energy) robotjes en heeft men een computer/tablet/smartphone nodig om ze te besturen (de Duplotrein werkt trouwens ook zonder app).
Een gemixt groepje design- en ICT-studenten doet momenteel onderzoek naar programmeren in het basisonderwijs. Opvallend is dat je kinderen van twee jaar met zo’n Duplotreintje in feite al leert programmeren (bijvoorbeeld als ze een gekleurd Duplo-onderdeeltje tussen de rails plaatsen, dán zal de trein een stoomfluit laten horen).
Blaise Pascal
Programmeren heeft alles te maken met problemen oplossen. Vaak kunnen mensen complexe problemen alleen oplossen door deze op te delen in behapbare kleinere problemen. Als kinderen dat vroeg leren, helpt dat hen om op een andere manier tegen uitdagingen aan te kijken.
Een tweede voordeel van leren programmeren, is dat je daardoor leert begrijpen hoe onze wereld in elkaar zit. Dagelijks komen we vele door programmeurs bepaalde processen tegen: van automatische schuifdeuren, slimme thermostaten en wasmachines tot telefoons en ‘echte’ computers. Wie hierover meer wil weten, leze het boekje ”Program or be programmed” van Douglas Rushkoff.
Iets om over na te denken: belangrijke grondleggers van de informatica waren ook theoloog. Denk aan Blaise Pascal (grondlegger van de computer) en Thomas Bayes (grondlegger van de kunstmatige intelligentie).
Evolutieleer
Door (basis)inzicht te krijgen in logica en programmeren, leren leerlingen automatisch ook een ‘verweer’ aan tegen allerlei mijns inziens onlogische gedachtestappen in allerlei overtuigingen, inclusief de evolutieleer. Logica helpt bij het verkrijgen van een scherpe blik op onder andere het probleem van ”increasing information” (spontane toename van complexiteit en/of informatie in organismen). Zo duiden door ons ontwikkelde ”evolutionaire algoritmes” (computeralgoritmes op basis van natuurlijke selectie) volgens mij ook eerder op het noodzakelijke bestaan van een intelligent designer, die de basiskenmerken van de werking van organismen al van stonde af aan heeft ‘voorgeprogrammeerd’.
Logica (op te vatten als de set van basisregels van programmeren) helpt onder andere om in te zien of er geen tegenstrijdigheden zitten in redenaties en gedachtensystemen. Sommige scholen bieden filosofie aan in het voortgezet onderwijs: daar is leren programmeren ook een goede voorbereiding op. En voor leerlingen die dit niet kunnen kiezen, is een basis in het vak logica al helemaal geen overbodige luxe, als je het mij vraagt. Uiteraard spelen docenten een belangrijke rol door leerlingen te helpen met het toepassen van zulke logica!
Samenwerking
Wanneer programmeren gedaan wordt als onderdeel van een project, zie ik dat ook wat minder sociaal aangelegde leerlingen juist samen complexere problemen oplossen. Bijvoorbeeld tijdens de First LEGO League (FLL) op het Zwolse Deltion College. Bij de FLL gaan honderden leerlingen van allerlei scholen (ook de Pieter Zandt scholengemeenschap) en van allerlei niveaus (van hoogbegaafd tot beperkt) met elkaar aan de slag. Ze storten zich op erg leuke én leerzame (op technisch, maatschappelijk en sociaal vlak) activiteiten met LEGO-robotjes. Elk jaar weer rond een nieuw maatschappelijk thema (dit jaar ”Into Orbit” / ruimtevaart).
Nog een opmerking over grafisch tegenover tekstueel programmeren: het principe achter programmeren (of het nu kinderen van twee zijn die gekleurde onderdeeltjes tussen de rails leggen of wetenschappers die C++ of Swift gebruiken) is en blijft hetzelfde. Maar volgens het RD-artikel heeft grafisch de toekomst. Ook tijdens mijn bachelor (rond 1997) zei men al dat er in de toekomst alleen nog grafisch geprogrammeerd zou worden. Tekstuele programmeertalen zijn vooralsnog echter veel expressiever. Je kunt je er dus vaak beter in uitdrukken: als ik met een LEGO EV3 robot een lijn wil volgen, heb ik in tekst slechts enkele regels nodig, maar grafisch een blad vol, om hetzelfde doel te bereiken.
De auteur is programmeur, docent informatica (VO/HO) en hoofdscheidsrechter FLL in Zwolle.