Waar is het nou eigenlijk goed voor, dat programmeren?

8

In Groot-Brittannië is programmeren vanaf volgend schooljaar een vast onderdeel van het nationale curriculum. In tegenstelling tot in Nederland, waar het op de meeste scholen slechts een klein onderdeel is van het vak Informatica. Of leerlingen kennis maken met programmeren, hangt sterk af van de school en de informaticadocent. Toch begint het ook in het Nederlandse onderwijs steeds meer te leven. Maar waar is het nou eigenlijk goed voor, dat programmeren?

Nieuwe mogelijkheden
Het bedrijfsleven heeft een toenemende behoefte aan afgestudeerden in de informatica. Iedere branche is er tegenwoordig in meer of mindere mate afhankelijk van. Maar dat is niet de enige reden waarom programmeren meer aandacht verdient in het primair- en voortgezet informaticaonderwijs. Wetenschapper Mitch Resnick stelt in zijn TED-talk dat leren programmeren veel nieuwe mogelijkheden biedt voor het gehele leerproces. “Leren lezen en schrijven stelt je in staat om zo veel andere dingen te leren. Want wanneer je leert lezen kun je lezen om te leren. En zo is het ook met programmeren. Als je leert programmeren dan kun je het gebruiken om te leren.”

‘Computertaal’
Daarnaast kun je programmeren naast Engels, Spaans en Chinees, ook zien als wereldtaal. Niet om van mens tot mens te communiceren, maar van mens tot computer. Een vorm van communicatie die met de razendsnelle technologische ontwikkelingen alleen nog maar belangrijker wordt. Leren programmeren, of in ieder geval de basisbeginselen ervan, helpt leerlingen bij de interactie met de wereld om hen heen. Marc Prenzy, auteur van Digital game-based learning, stelt dat programmeren over een aantal jaren minstens zo belangrijk is als ‘old school’ communicatie: “Geletterdheid zal niet behoren tot degenen die alleen woorden beheersen of weten hoe ze met multimedia moeten omgaan. Het zal behoren tot diegenen die een verscheidenheid aan krachtige, expressieve mens-machine interactie beheersen.”

Vakoverstijgende vaardigheden
Med Kharbach, oprichter van Educational Technology, stelde op basis van zijn research een lijst vakoverstijgende vaardigheden samen die leerlingen leren wanneer ze aan de slag gaan met programmeren:

  • Het helpt leerlingen leren in een betekenisvolle context
  • Het leert hen dat leren een proces is en geen eindproduct
  • Het leert hen hoe ze complexe ideeën op kunnen breken in eenvoudigere delen
  • Het bevordert de samenwerking met andere leerlingen
  • Het leert hen – ondanks de frustratie – vastbesloten en volhardend te werken als iets niet meteen goed uitpakt
  • Het leert hen risico’s te nemen
  • Het helpt leerlingen om vloeiend met technologie om te gaan en te werken
  • Het helpt hen om creatief te zijn: leerlingen kunnen op creatieve wijze hun ideeën uiten
  • Het helpt hen te communiceren met de wereld om hen heen

Initiatieven en toepassingen
Eerder verscheen op Onderwijs van Morgen het artikel ‘Programmeren: een vast onderdeel van het lesprogramma?’ met daarin verschillende initiatieven die zich inzetten om programmeren op de kaart te zetten. Ondertussen is het aantal organisaties dat zich daarmee bezig houdt ontzettend toegenomen: een uitgebreide lijst van initiatieven en toepassingen vind je hier.

Denk jij dat programmeren de ontwikkeling van bovengenoemde vaardigheden bevordert? En zou iedere leerling in ieder geval de basisbeginselen moeten leren? Hoe zou dat er dan uit moeten zien? Laat een reactie achter via onderstaand reactieformulier.

8 REACTIES

  1. In de inleidende tekst van het artikel is m.i. een fout geslopen. Er wordt tot twee keer toe gesproken over “Grammatica” respectievelijk “grammaticadocent”. Ik denk dat bedoeld wordt “Informatica” en “informaticadocent”.

  2. Beste Guido en Marc,

    Het artikel is te snel online geplaatst. Onze welgemeende excuses voor de slordige fouten! Bedankt voor de oplettendheid.

    Vriendelijke groeten,

    Redactie OVM

  3. Commentaar op de negen genoemde ‘vaardigheden’:

    1.Mij is de betekenisvolle context waarin geleerd zou worden allerminst duidelijk. Wordt hier het leren werken met de snelle technologische ontwikkelingen mee bedoeld, met het oog op de toekomst?

    2. In welk opzicht zou iets anders leren wel aanleiding geven te geloven dat leren een eindproduct is?
    Een vaardigheid aanleren is altijd een proces, dat geldt niet alleen voor programmeren.
    M.i. is dit punt eigenlijk overbodig om te noemen.

    3. Het zijn niet altijd eenvoudigere delen. Zie een programma als een software motor. Net als een motor in een auto bestaat deze weliswaar uit componenten die afzonderlijk simpeler zijn dan de motor zelf, maar dienen wel onderling op de juiste manier in connectie met elkaar te staan. Wat je krijgt is niet zomaar opbreken in delen, maar in plaats daarvan het begrijpen van de werking van de gehele software motor. Systeemdenken is dus een voorwaardelijke vaardigheid, en elk systeem is weer anders bij andere software. Het systeem met alle ins en outs kan complex zijn als je bijvoorbeeld intelligentie kunstmatig wilt simuleren met een spel waarbij geheugen belangrijk is.

    4. Programmeren bevordert samenwerking met anderen om de specifieke functies en algoritmen als algemene methodieken toe te passen, zodat het wiel niet steeds opnieuw uitgevonden hoeft te worden.
    Daarentegen zal een programmeur echter veelal op zichzelf worden teruggeworpen wanneer het gaat om het omzetten van persoonlijke ideeën (modellen) in programmatuur.

    5. Volhardend doorgaan met frustratie betekent in feite dat er geen goed beeld is van de structuur van een programma en van de werking van de software motor. Indien het programma goed gestructureerd is weet je dat er altijd een oplossing voorhanden is, ook al vergt dat concentratie en creativiteit.
    Het gaat erom hoe je het totaal opdeelt in subroutines of deelprocessen, en hoe je invulling geeft aan elk deelproces. Wanneer die structuur niet duidelijk is wordt het inderdaad frustratie en wanhoop.
    Veelal moet die structuur en het gehele geprogrammeerde systeem groeien omdat er nieuwe functionaliteiten voor het programma bedacht worden in ‘voortschrijdend inzicht’.
    Een juiste structuur geeft ruimte voor die toevoegingen, die als het ware er als modules ingezet kunnen worden.

    6. Risico’s nemen in wat? Het durven programmeren misschien? Dat is geheel overbodig. Op bepaalde aspecten kan er geëxperimenteerd worden met algoritmen, maar dat is nog geen risico. Je moet natuurlijk wel zorgen dat het programma / de motor geen lekken heeft.

    7. Programmeren gaat alles behalve vloeiend, al is het maar omdat programmatische problemen binnen een subroutine vragen om wiskundige formules die in meervoudig opzicht de juiste uitkomsten moeten genereren.
    De gewenste output van de subroutine geeft noodzakelijkheid aan en deze informatie moet omgezet worden in een algoritme die de input procesmatig omzet in deze output. Zo maak je de onderdelen van de software motor.
    En de gewenste output van de subroutine is bekend als je weet hoe deze subroutine in verband staat met andere subroutines. En zo zet je de onderdelen van de motor in elkaar.
    Het gaat niet alleen om wiskunde zelf, het gaat voor een groot deel over procesmatig denken, en over het gebruik van wiskundige formules voor de omzetting/transformatie van getallen. Deze formules dienen een data/getallenstroom op te leveren die de gewenste output garandeert.

    8. Creativiteit is toegespitst op het eindproduct, de output, en zit daarmee in feite in een harnas van voorwaarden.
    De gewenste output bepaalt het noodzakelijke model dat vertaald moet worden in algoritmen – algoritmen weerspiegelen dus een model.
    Niet alleen is creativiteit voor deze omzetting nodig, maar ook de juiste mathematische formules die de juiste uitkomsten garanderen.
    Het programmeren is als een lege ruimte waarbinnen muren opgetrokken moeten worden om de stroom aan getallen te loodsen naar het gewenste eindproduct.
    Het eindproduct vormt de premisse van alles.
    Wat wil ik dat het programma doet? is de allerbelangrijkste vraag, en kan het beste beantwoord worden tot in de kleinste finesses, zodat het ‘voortschrijdend inzicht’ tijdens het programmeren tot een minimum wordt beperkt.

    9. Gezien het feit dat specialistische of individuele programmatuur vaak specifieke oplossingen vraagt, zal communiceren met de buitenwereld niet altijd even eenvoudig zijn. Althans, als het problemen met programmeren betreft.

  4. Er ziijn al veel artikelen geschreven over het nut van informatica (waaronder, maar niet alleen, programmeren) voor onze huidige generatie leerlingen. Niet in de minste plaats het repport van december 2013 door de KNAW. Waar het m.i. op neer komt is dat tijdens het onderwijs voor informatica een COMBINATIE van vaardigheden (lees denkmanieren) wordt aangeleerd die niet alleen belangrijk zijn voor een toekomst in de informatica maar voor vrijwel elk beroep. Voor onze nieuwe generatie leerlingen worden deze vaardigheden steeds belangrijker. Net als voor de Economie want met deze vaardigheden kan ons land ook geld verdienen.
    Denk aan logisch denken, out of the box denken, informatievaardigheid, creativiteit/innovativiiteit, omgaan met grote hoeveelheden gegevens, structureren, plannen, grammatica en nog veel meer.Ik denk dat geen enkel ander vak deze combinatie van vaardigheden bij een kind ontwikkelt. Een land als India heeft zich door de vele Informatici (10x zo veel als in Europa) kunnen ontwikkelen tot een hoog technologisch land, waardoor dit land Europa ( en Amerika) dreigt voorbij te streven. Alle lof dus voor de Engelse minister voor Onderwijs, wat mij betreft. Wel is de kwaliteit van docenten natuurlijk essentieel voor het succes. Dat zijn niet perse univeritair geschoolde docenten, maar wel mensen die bovenstaande strategie inzien en kunnen aanleren bij onze leerlingen.

  5. Ik vind dat u gelijk hebt al heb ik nog geen informtica maar programmeren wat ik wel wil zeggen is dat u 1 van de weinigen bent die veranderingen in het onderwijs toezien

  6. Gelukkig zijn er meer die zo denken. Maar ik denk wel dat wij als BENELUX kansen laten liggen als het onderwijs niet snel hervormd wordt.

  7. Leuk en helder artikel en met de taalfouten valt het reuze mee. Graag stel ik een vraag. Welk programma is geschikt voor 60 plussers om te starten met programmeren?
    vr gr dick

LAAT EEN REACTIE ACHTER