Leren denken als een programmeur (1)

Marléone Goudswaard

Ontwikkelaar en adviseur bij CED-groep

 

  Geplaatst op 23 januari 2017

Deel 1 Digitale bouwvakkers

Het tweede artikel leest u hier.

Niet iedereen zal de ambitie hebben om programmeur te worden of de competenties ontwikkelen om programmeur te kunnen worden. Hoe dan ook kunnen we veel leren van de manier van denken die een programmeur toepast.

  • Willen kinderen in de toekomst hun leefwereld nog kunnen begrijpen, dan is kennis van technologie van groot belang.
  • Denken als een programmeur helpt ons bij het oplossen van problemen en vraagstukken waarmee we nu en in de toekomst geconfronteerd worden.

Afbeelding 1 Het vakmanschap van een programmeur is waardevol voor de denkontwikkeling van kinderen.

Onze leef- en leeromgeving verandert

De omgeving waarin we leven, wordt steeds digitaler. Als je goed om je heen kijkt in de klas, zou je dat al kunnen zien:

  • een smartphone;
  • horloge;
  • luchtklimaatregeling;
  • digibord;
  • automatische zonwering.

Allemaal digitale toepassingen die voor veel gemak zorgen. In de toekomst wordt dit alleen maar meer.  Allerlei vormen van communicatie, entertainment, het gaat digitaal worden.

IoT (Internet of Things) zal zorgen voor een overvloed aan data op basis waarvan beslissingen moeten worden genomen. Willen kinderen in de toekomst hun leefwereld nog kunnen begrijpen, dan is kennis van technologie van groot belang. Dit is dan ook één van adviezen die door het Platform Onderwijs2032 is uitgebracht.

Bouwvakkers van de toekomst

Programmeurs zijn de digitale bouwvakkers van de toekomst. Het is een ambacht waarbij het gezegde ‘Oefening baart kunst’ goed past. Door veel toewijding, doorzettingsvermogen en leren van eigen fouten, maken programmeurs zich hun vak eigen. In de klas kan je het leren verrijken met de kennis die we hebben over het denken als een programmeur.

Coderen, programmeren, computational thinking… wat is het?

Als het in het onderwijs gaat over het beter leren begrijpen van de digitale wereld, worden de begrippen programmeren en coderen regelmatig genoemd.

Programmeren is het schrijven van een programma in een programmeertaal. Het programma bevat instructies die er samen voor zorgen dat een computer bepaalde taken uitvoert.

Vroeger (zo’n 20 jaar geleden) moest zo’n in tekst geschreven programma handmatig vertaald worden in machinecode, het zogenaamde coderen, zodat de computer de taken uit kon voeren. Tegenwoordig wordt dit proces uitgevoerd door assemblers en compilers (computerprogramma’s) en worden de begrippen programmeren en coderen haast als synoniemen gebruikt. 

Naast programmeren, komt ook computational thinking als nieuw begrip in het onderwijs voor. Hierbij gaat het om het denkproces dat de basis vormt voor het programmeren.  Jeanette Wing (2006) omschrijft het als volgt:

‘Het denkproces waarmee problemen en hun oplossingen zo worden geformuleerd dat ze kunnen worden gepresenteerd in een vorm die effectief kan worden uitgevoerd door een informatie verwerkend tussenpersoon, zoals een computer of een mens, of een combinatie van beide.’

De nadruk ligt bij computational thinking dus op de manier van denken die een programmeur toepast om tot een oplossing te komen. Jan Geert Hek, programmeur en eigenaar van Qtopia: ‘Computational thinking is te vergelijken met de elektriciteit, die nodig is om de lamp, het feitelijke programmeren, te laten branden.’

Afbeelding 2

De kip of het ei?

Hoewel we niet precies weten wat de onderlinge invloed is van denkvaardigheden en leren programmeren, laten beide uitspraken zien dat het twee kanten op kan werken. Of zoals we lazen op een poster van Loesje: ‘De kip of het ei, in een goeie soep zitten ze allebei’.

Afbeelding 3

Computational thinking, oftewel denken als een programmeur, ondersteunt aan de ene kant kinderen bij het programmeren. Maar ook als kinderen niet gaan programmeren, kan het mogelijk de ontwikkeling van het denken ondersteunen.

Waarom zou je met kinderen gaan denken als een programmeur?

Computational thinking helpt ons bij het oplossen van problemen en vraagstukken waarmee we nu en in de toekomst geconfronteerd worden.


Afbeelding 4

  • Focus op de essentie
    Om een situatie goed te begrijpen of een vraagstuk op te lossen, zijn niet alle omstandigheden of onderdelen even belangrijk. Onbelangrijke details weglaten en focussen op de essentie maakt dat je tot een oplossing komt die het probleem écht oplost.
  • Van complex naar behapbare stukjes
    Sommige problemen zijn zo complex, dat je ze niet op kunt lossen. Als je het probleem opdeelt in heel veel kleine problemen, kun je die één voor één oplossen. Dit is een handige strategie om complexe vragen aan te kunnen, ook als je niet programmeert.
  • Overeenkomsten en patronen
    Hoewel iedere situatie, vraagstuk of probleem verschillend is, zijn er ook overeenkomsten. Juist door naar de overeenkomsten te kijken en patronen te herkennen, kun je gebruik maken van oplossingen die al eerder zijn bedacht voor soortgelijke vragen. En als je patronen achter problemen goed doorziet, kan je ook oplossingen toepassen die voor een heel andere situatie zijn bedacht.
  • Efficiënte routines
    Met vaste instructies en precieze stappenplannen lossen geprogrammeerde apparaten vraagstukken snel en effectief op. Als je weet dat in technologie deze routines zijn toegepast, helpt je dat beter begrijpen hoe een apparaat werkt. Bijvoorbeeld weten hoe een zoekmachine resultaten sorteert.
  • Grote hoeveelheden data
    Door de toenemende technologie komen er steeds meer data beschikbaar waarover beslissingen moeten worden genomen. Kinderen zullen zelf ook steeds meer voor keuzes komen te staan als het gaat om datagebruik. We kunnen ze hier op voorbereiden door verschillende typen data te herkennen en hen gegevens te leren ordenen.

Concept boven tooling

Technologie komt meer en meer de klas in, en maakt deel uit van de dagelijkse leeromgeving van kinderen. In steeds meer klassen spelen kinderen enthousiast met programmeerbaar speelleermateriaal.


Afbeelding 5 Kinderen leren technologie al doende begrijpen en ervaren de lol van het zelf ontwerpen en maken.

Spelen, experimenten en leren gaan hand in hand

Ze ervaren onder meer dat je een computer heel precies opdrachten moet geven, omdat een computer alleen uitvoert wat jij zegt. Zo kan je een robot bijvoorbeeld een parcours af laten leggen en ontdek je wanneer je opdracht verkeerd was; de robot raakt dan van het parcours af.

Leerlingen maken kennis met coderen, het geven van instructies in een taal die de computer begrijpt, bijvoorbeeld met commando blokjes.

In programmeertaal is minder ruimte voor ruis

Programmeertaal kan in het onderwijs als middel ingezet worden om computational thinking concreet te maken. Het is een abstracte taalvorm die minder ruimte overlaat voor ruis dan gewone taal. Volgens Wim Ligtendag (programmeur en mede eigenaar van GISfabriek) kan dit verrijkend zijn voor de ontwikkeling van het denken:

‘Met programmeertaal kan je kinderen laten ervaren dat je dingen ook op een andere, eenduidiger manier kan uitdrukken dan met gewone taal.’

Plugged en unplugged

Computational thinking kun je zowel met als zonder programmeertools oefenen. Als je kinderen de denkprocessen laat toepassen zonder technologie te gebruiken, wordt dit ook wel ‘unplugged’ genoemd.

Met programmeertools ervaren kinderen de lol van het ontwikkelen; ze zien meteen hoe het zelfbedachte concept leidt tot zelfgemaakte software. Een voorbeeld van een tool waarmee dit kan is TouchDevelop. In deze tool ontwerpen leerlingen zelf een app.


Afbeelding 6

Het gevaar bestaat dat door al deze ‘leuke’ dingen de concepten ongemerkt naar de achtergrond verdwijnen. Wing (2008) waarschuwt hiervoor: de tool moet volgens haar niet het begrijpen van het concept in de weg staan.

Ook Jan Geert Hek en Wim Ligtendag benadrukken het belang van concept boven tooling. De nadruk ligt daarbij niet op het coderen, maar op de denkvaardigheden die een programmeur inzet. Als je de nadruk teveel legt op de tools, dan verdwijnen de concepten achter het speeltje volgens de programmeurs.

Leerlijn als rode draad

Een leerlijn geeft richtlijnen voor het aanbod. Met een leerlijn kan je als leerkracht de rode draad vasthouden bij het leren begrijpen en toepassen van concepten.

De gekozen werkvormen en materialen zijn een middel om die doelen te bereiken, dit geldt voor zowel programmeertools als voor unplugged werkvormen.

Leren denken als een programmeur

Ook al worden leerlingen niet allemaal zelf een digitale bouwvakker, als zij begrijpen hoe een programmeur denkt, zijn zij beter in staat om te begrijpen hoe digitale oplossingen in elkaar zitten. En als het nodig is, kunnen zij gereedschap van de programmeur lenen om complexe vraagstukken op te lossen. Door te denken als een programmeur.

In deel 2 maak je kennis met een vijftal denkprocessen die essentieel zijn voor het werk van een programmeur:

  • patroonherkenning;
  • algoritmen;
  • decompositie;
  • abstractie;
  • data en classificatie.

Je ziet hoe je deze denkprocessen in de klas toepast met concrete voorbeelden uit de leerlijn.


Afbeelding 7



Met dank aan Wim Ligtendag (GISfabriek) en Jan Geert Hek (Qtopia).
 

Bronnen

Heb je vragen over dit thema? Stel ze in de onderwijs community binnen de Wij-leren.nl Academie!

Gerelateerd

Programmeren 2
Leren denken als een programmeur - De vijf denkprocessen in één leerlijn
Marléone Goudswaard
Blended learning
Grenzen verleggen met blended learning
Sylvia Peters
Digitale didactiek
Tien pijlers van digitale didactiek
Wilfred Rubens
Effectiever onderwijs
Hoe gerichte inzet van ICT leidt tot effectiever onderwijs
Jos Cöp
Digitaal schoolbord
De kracht van het digitaal schoolbord
Jos Cöp
Kiezen tussen asynchroon online leren en synchroon online leren
Maak de juiste keuze! Kiezen tussen Asynchroon Online Leren, Synchroon Online Leren en fysiek onderwijs (presentatie)
Wilfred Rubens
Studenten aanwezigheid leerervaringen
Willen studenten niet meer naar school of universiteit komen?
Wilfred Rubens
E-learning trends en ontwikkelingen
E-learning. Trends en ontwikkelingen
Wilfred Rubens


Inschrijven nieuwsbrief

Inschrijven nieuwsbrief



Inschrijven nieuwsbrief

Brain based teaching in een video van één minuut uitgelegd
Brain based teaching in een video van één minuut uitgelegd
redactie
ICT kennis leerlingen praktijkonderwijs
ICT kennis leerlingen praktijkonderwijs
redactie
Is het tijd voor een digitale revolutie in het beroepsonderwijs?
Is het tijd voor een digitale revolutie in het beroepsonderwijs?
redactie
[extra-breed-algemeen-kolom2]



automatisering in het onderwijs
blended learning
brain based teaching
computational thinking
digitale leeromgeving
e-learning
electronische leeromgeving - ELO
ICT in het onderwijs
learning analytics
leeromgeving
mediawijsheid
online onderwijs

 

Mis geen bijdragen

Inschrijven nieuwsbrief

Volg wij-leren.nl

Volg ons op LinkedIn Volg ons op twitter Volg ons op facebook Volg ons op instagram Volg ons op pinterest