Computional thinking: denken als een computer?

Gebreide Kerstbal en gehaakte sneeuwster In kerstboomHeb je weleens gehoord van computational thinking? Het is een onderdeel van wat ze in onderwijsland “digitale geletterdheid” noemen, alweer zo’n vakterm. En digitale geletterdheid valt dan weer onder de 21e eeuwse vaardigheden. Even wat uitleg, in omgekeerde volgorde:

  • De 21e eeuwse vaardigheden zijn vaardigheden voor de toekomst. De wereld verandert en nieuwe kennis en technologie ontstaan in hoog tempo. Dan moet je niet proberen al die kennis in je kop te stampen, dan moet je leren om te gaan met al die nieuwe kennis, en met maatschappelijke en technologische veranderingen. Dat vergt deels andere vaardigheden dan we tot nu toe op school hebben geleerd, de zogenaamde 21e eeuwse vaardigheden. Hier vind je een mooi overzichtje, en dit is de site van een veelgebruikt boek erover: Klaar voor de 21e eeuw.
  • Digitale geletterdheid betekent grofweg dat je overweg kunt met computers, tablets en mobiele telefoons. Daarvoor moet je niet alleen weten hoe je zo’n ding moet bedienen. Je moet ook nieuws van nepnieuws kunnen onderscheiden, informatie kunnen zoeken en een werkbaar beeld hebben van hoe het apparaat “denkt”. Meer uitleg vind je hier.
  • Computational thinking gaat over dat laatste: snappen hoe een computer denkt. Dat is nodig om hem daar te kunnen gebruiken waar jij wat extra denk- en rekenkracht nodig hebt. SLO hanteert een brede definitie: “Computational thinking is het procesmatig (her)formuleren van problemen op een zodanige manier dat het mogelijk wordt om met computertechnologie het probleem op te lossen. Het gaat daarbij om een verzameling van denkprocessen waarbij probleemformulering, gegevensorganisatie, -analyse en -representatie worden gebruikt voor het oplossen van problemen met behulp van ICT-technieken en -gereedschappen.” (Meer uitleg hier.) Computers zijn vrij domme dingen, ze spreken onze taal nog steeds niet goed. (Zo is er nog nooit een computer in geslaagd een mens ervan te overtuigen dat hij (de computer) een mens was. Zie bijvoorbeeld dit Engelstalige stuk over de Loebner Prize, een wedstrijd “zo goed mogelijk op een mens lijken” voor chatbots.) Dus als wij mensen met computers willen werken, moeten we zorgen dat we hun taal spreken. Software kan je helpen, maar als je meer wilt dan tekstverwerken is het het handigst als je al een beetje snapt hoe je de computer het handigst aan het werk kunt zetten. Dat is computational thinking.

Computational thinking moeilijk?

Computational thinking klinkt moeilijker dan het is. Dat komt omdat de meeste mensen niet weten hoe een computer werkt of kunnen programmeren, en daardoor denken dat dat hele computational thinking niets voor hen is. We doen even een testje:

  • Gebruik je weleens een rekenmachine?
  • Heb je weleens iemand de weg gewezen, en was de route langer dan “Hier bij de Hema naar links”?
  • Zoek je weleens iets op internet, en gebruik je meerdere woorden om te vinden wat je zoekt, bijvoorbeeld “bloemist Middelburg”?

Minimaal één keer ja gezegd? Dan doe je al aan computational thinking! Weliswaar nog heel basaal, maar hé, je bent dus al verder dan je misschien dacht!

Nou leer ik je nog even de basis van het programmeren, en leg ik de link naar haakpatronen (?!) en klaar ben je 😉

Programmeren

Een computer werkt met een computerprogramma. Dat programma bestaat uit instructies: doe eerst dit, dan dat, en daarna dat. Zo’n programma reageert op wat jij als gebruiker doet. Wat de computer daarvoor heeft geleerd is iets als dit: als de gebruiker op A klikt, doe ik instructie A, zoniet: ga verder. Als de gebruiker op B klikt doe ik instructie B, en anders wacht ik tot de gebruiker iets doet. Een iets slimmere computer weet bovendien: doet de gebruiker tien minuten niets, dan sluit ik mezelf af. Wie weleens geprogrammeerd heeft zit hier de “if, then, else” in terug. Zo denkt een computer, heel erg zwart-wit. Als het het ene niet is, dan is het het andere.

Even een voorbeeld uit de keuken. Heb je weleens een recept gemaakt waarin stond “schuif nu de schaal in de voorverwarmde oven”, terwijl je die oven helemaal niet voorverwarmd had? Een stap-voor-stap recept waarbij in het begin staat dat je de oven moet aanzetten is veel handiger. Zo’n stap-voor-stap recept is heel goed te vergelijken met een computerprogramma. Ik heb bijvoorbeeld een recept voor kruidnoten. Bovenaan dat recept staat uitgelegd dat je ook chocoladekruidnoten kunt maken. Ik, als “bakrobot”, bedenk dus vooraf: wil ik gewone, of met chocola? Als de noten klaar zijn, staat er “De kruidnoten zijn nu klaar. Voor chocoladekruidnoten doe je nu …” Hier herken je weer het programma: ALS je gewone kruidnoten wilt, DAN ben je nu klaar, ANDERS moet je nu aan de slag met chocola om er chocoladekruidnoten van te maken.

Een computer programmeren is in de basis niets anders dan een gedetailleerde instructie typen, die bestaat uit een heleboel makkelijke stapjes. Want, zoals ik al zei, een computer is van zichzelf een heel dom ding.

DIY’s en instructievideo’s

Heb je weleens een recept opgeschreven, of een uitleg hoe je iets moet maken? Dan ben je al een aardig eind, wat Computational thinking betreft. Want een goede instructie is net als een computerprogramma supermakkelijk te volgen, stap voor stap en foolproof.

Het is een misverstand dat programmeren een mannenbezigheid is. Vroeger waren er zelfs vooral vrouwelijke programmeurs! En dat in een tijd dat de dames zich vooral bezighielden met het huishouden en met handwerken. Gek toch? Of toch niet?

Heb je weleens een haakwerkje gemaakt, of een breiwerk? Lees bijvoorbeeld dit eens: een haakpatroon voor een mini-vlaggetje, gewoon een driehoekig lapje. Kun je nagaan hoe ingewikkeldere patronen er uitzien!

Maar goed: als een minivlaggetje al zo’n stukje tekst nodig heeft (waarbij zelfs nog afkortingen worden gebruikt om ruimte te besparen!), dan kun je nagaan dat een computer dus ook veel stukjes tekst nodig heeft. En ook bij de computer wordt gebruik gemaakt van slimmigheidjes. Een computer kan een stukje programma herhalen, hij kan een stukje programma dat hij vaker nodig heeft even opzoeken zodat het niet honderd keer in zijn geheugen hoeft te staan, dat soort dingen. Een beetje zoals jij voor de bovenste knoop van een jas en de knoop daar meteen onder dezelfde aanpak volgt. Voor jou klinkt dat logisch, maar een computer moet je dat eerst even vertellen!

Wat heb je hieraan?

Computational thinking is niet alleen nuttig voor programmeurs. Als niet-programmeur heb je er wat aan omdat je:

  • Je realiseert dat een computer of zoekmachine of social media-programma zelf niets doet, alles wat hij doet heeft hij geleerd van mensen. En die mensen hebben een eigen belang.
  • Met een gerichte vraag aan kunt komen bij mensen die wel programmeren, omdat je je beter realiseert wat zij doen.
  • Beter snapt waar de hele ICT-sector zijn geld mee verdient.
  • Kinderen en jongeren die hier les in krijgen een beetje beter snapt.

En wie weet sla je nog eens aan het programmeren!

PS Een goed stuk over vrouwen en techniek en hoe vrouwelijke en mannelijke kwaliteiten soms door verschillende brillen worden bekeken: deze column van Asha ten Broeke