Leerlingen werken aan tafels aan een opdracht terwijl de leerkracht meekijkt
Kennis

Wat is computational thinking? Uitleg in gewone taal, met voorbeelden uit de klas

Wat is computational thinking? Het is de manier van denken die je gebruikt om een ingewikkeld probleem zo op te knippen en te beschrijven dat het stap voor stap opgelost kan worden. Dat het woord “computational” erin zit, komt doordat computers precies zo werken: ze doen niets uit zichzelf, ze voeren uit wat iemand ze in kleine, ondubbelzinnige stappen heeft verteld. Maar de denkwijze zelf heeft geen computer nodig. Wie een recept volgt, een route uitstippelt of een klassenrooster maakt, doet het al.

In het kort

  • Computational thinking is een probleemoplossende denkwijze die uit vier onderdelen bestaat: ontleden, patronen herkennen, hoofdzaken scheiden van bijzaken, en stappenplannen maken.
  • De term werd in 2006 breed bekend door een essay van informaticus Jeannette Wing, die betoogde dat het een basisvaardigheid is zoals lezen en rekenen.
  • Computational thinking is niet hetzelfde als programmeren: je kunt het zonder enig scherm oefenen, en veel scholen doen dat ook.
  • In het Nederlandse onderwijs valt het onder digitale geletterdheid, naast ICT-basisvaardigheden, mediawijsheid en informatievaardigheden.

De vier onderdelen, met voorbeelden

Computational thinking wordt meestal opgesplitst in vier denkstappen. Ze klinken abstract, maar iedereen gebruikt ze dagelijks zonder erbij na te denken. Het onderwijs maakt ze expliciet, zodat leerlingen ze bewust kunnen inzetten bij een probleem dat ze nog niet kennen.

1. Ontleden: hak het op in stukken

Een groot probleem is meestal niet op te lossen, een reeks kleine problemen wel. Ontleden betekent dat je een opdracht uit elkaar haalt tot je bij onderdelen komt die je stuk voor stuk aankunt.

Voorbeeld uit de klas: de groep organiseert een schoolfeest. Dat is als geheel te groot om aan te beginnen. Uit elkaar gehaald wordt het: muziek regelen, versiering maken, uitnodigingen maken, drinken kopen, opruimen. Elk onderdeel krijgt een groepje. Precies zo werkt een programmeur die een app opsplitst in inloggen, gegevens ophalen en gegevens tonen.

2. Patronen herkennen: waar lijkt dit op?

Als je hetzelfde patroon in verschillende problemen terugziet, hoef je maar één keer een oplossing te bedenken. Dat scheelt niet alleen werk, het maakt de oplossing ook betrouwbaarder.

Voorbeeld uit de klas: bij de tafels van vermenigvuldiging ontdekken leerlingen dat de tafel van 9 een vast patroon heeft in de uitkomsten. Bij het versieren van het schoolfeest ontdekken ze dat elke slinger op dezelfde manier gemaakt wordt, en dat je die werkwijze dus één keer hoeft uit te leggen in plaats van vijftien keer.

3. Abstraheren: laat weg wat er niet toe doet

Dit is het lastigste van de vier en tegelijk het waardevolste. Abstraheren betekent dat je bepaalt welke informatie je nodig hebt om het probleem op te lossen, en de rest weglaat.

Voorbeeld uit de klas: een plattegrond van de school om de brandoefening uit te leggen bevat de muren, de deuren en de nooduitgangen. De kleur van de gordijnen, de posters aan de muur en het merk van de stoelen staan er niet op, want die doen er voor dit doel niet toe. Een dienstregeling van de trein doet hetzelfde: die vertelt je wanneer de trein vertrekt, niet hoe de motor werkt.

4. Algoritmes maken: schrijf de stappen op

Een algoritme is niets anders dan een reeks stappen die in een vaste volgorde tot een resultaat leidt. De kunst is om ze zo op te schrijven dat iemand anders, of een machine, ze kan uitvoeren zonder aanvullende vragen te stellen.

Voorbeeld uit de klas: laat een leerling opschrijven hoe je een boterham met pindakaas maakt, en voer daarna letterlijk uit wat er staat. “Doe de pindakaas op het brood” leidt tot een pot pindakaas die boven op een dichte verpakking wordt gezet. Dat is de leukste les van het hele onderwerp: computers doen precies wat je zegt en niet wat je bedoelt.

Waar de term vandaan komt

De denkwijze bestond al veel langer, maar de term brak door in 2006 met een kort essay van Jeannette Wing, destijds hoogleraar informatica aan Carnegie Mellon University. Haar stelling was eenvoudig en tegelijk ambitieus: computational thinking is geen vaardigheid voor informatici, maar een basisvaardigheid voor iedereen, op hetzelfde niveau als lezen, schrijven en rekenen.

Dat idee is sindsdien in veel landen in het onderwijs terechtgekomen. In Nederland is computational thinking een van de vier onderdelen van digitale geletterdheid, naast ICT-basisvaardigheden, mediawijsheid en informatievaardigheden. Het gaat daarbij niet om het leren bedienen van programma’s, maar om begrijpen hoe digitale oplossingen tot stand komen en welke keuzes daarin gemaakt worden.

Waarom het ook zonder computer werkt

Een hardnekkig misverstand is dat computational thinking neerkomt op programmeerles. Dat is niet zo, en die verwarring houdt scholen soms onnodig tegen. Je kunt alle vier de onderdelen oefenen met papier, met kaartjes of gewoon lopend door het lokaal. Dat heet onderwijs zonder stekker, en het werkt vaak beter omdat de techniek niet afleidt van het denken.

  • Sorteren met kaarten: laat leerlingen zelf een methode bedenken om een stapel kaarten op volgorde te leggen, en vergelijk daarna welke methode het minste stappen kost
  • De robot spelen: één leerling geeft opdrachten, een ander voert ze letterlijk uit en mag niets zelf invullen
  • Zoekspel: een getal raden tussen 1 en 100 met zo min mogelijk vragen, waarbij het steeds halveren van het bereik vanzelf ontdekt wordt
  • Instructie schrijven: leg uit hoe je je jas aantrekt of je veters strikt, en laat een klasgenoot precies dat uitvoeren
  • Fouten zoeken: geef een stappenplan met één bewuste fout erin en laat de klas opsporen waar het misgaat

Dat laatste onderdeel verdient een aparte vermelding. Fouten opsporen en herstellen, in het vak debuggen genoemd, wordt vaak als vijfde onderdeel aan de vier toegevoegd. Het is namelijk de vaardigheid waar in de praktijk de meeste tijd in gaat zitten, ook bij beroepsprogrammeurs. Een leerling die leert dat een fout normaal is en systematisch op te sporen valt, leert iets dat ver buiten het vak bruikbaar is.

Wat het oplevert buiten de informatica

De reden om dit te onderwijzen ligt niet bij het opleiden van programmeurs. De denkwijze is bruikbaar in vakken en situaties waar geen computer aan te pas komt.

Bij begrijpend lezen is een lange tekst ontleden in alinea’s met elk een kernboodschap precies het eerste onderdeel. Bij rekenen is het herkennen van het type som voordat je begint patroonherkenning. Bij een werkstuk over een land bepalen welke informatie relevant is en welke niet, is abstraheren. En een proefwerkplanning maken is een algoritme, alleen heet het dan anders.

Er is nog een reden die met de tijd belangrijker wordt. Leerlingen groeien op met systemen die keuzes voor hen maken: welke video ze te zien krijgen, welke route ze rijden, welk bericht bovenaan staat. Wie begrijpt dat daar een reeks regels achter zit die door mensen is bedacht, met aannames en blinde vlekken, kijkt daar anders naar dan wie het als magie beschouwt. Dat maakt computational thinking net zo goed een vorm van kritisch denken.

Hoe je merkt dat het lukt

Beoordelen of een leerling deze manier van denken beheerst, gaat lastig met een toets waarin je één goed antwoord invult. Wat wel werkt, is kijken naar het proces bij een probleem dat de leerling nog niet eerder heeft gezien.

Let daarbij op een paar dingen. Begint de leerling met het probleem opsplitsen of duikt hij meteen op het eerste dat opvalt? Legt hij een verband met iets dat eerder is gedaan? Kan hij uitleggen welke informatie hij bewust heeft weggelaten en waarom? En hoe reageert hij op een fout: opnieuw beginnen, of terugzoeken bij welke stap het misging?

Dat laatste is de beste graadmeter die er is. Wie een fout behandelt als informatie in plaats van als mislukking, heeft de kern van computational thinking te pakken. De rest is oefening, en die kan met kaartjes op tafel net zo goed als achter een scherm.