Deze blog verschijnt in een iets kortere vorm in het meinummer van Didactief.

Het doet er niet toe wat ik zelf vind van de vraag of kinderen van jongs af aan moeten leren programmeren. Zolang het over meningen gaat, heeft niemand gelijk. Wat er wel toe doet is dat, als je toch kiest om kinderen of jonge volwassenen te leren programmeren, moet je het goed doen.

Tony Jenkens zei in 2002:

Als leerkrachten programmeren ooit echt een leeromgeving willen ontwikkelen waarin alle studenten snel en goed leren programmeren, is het van vitaal belang dat ze inzicht krijgen in de moeilijkheden en complexiteiten waarmee de studenten worden geconfronteerd. Op dit moment is de manier waarop programmeren wordt aangeleerd en geleerd fundamenteel verbroken (p. 1).

en

Papers beschrijven hoe wij allerlei toeters en bellen [EN: visual hooks[1] and props[2]] kunnen gebruiken om lerenden te engageren, of hoe programmeren bijna als trucje / voorwendsel [EN: subterfuge] geleerd kan worden via spelletjes. Dit zijn allemaal mooie ideeën, maar er bijna geen concreet bewijs dat deze manieren van lesgeven enig effect heeft op het leren (p. 1).

Programmeren wordt in het algemeen behandeld als een STEM-vak (Science, Technology, Engineering, Math). Toch delen programmeertalen veel kenmerken met een (tweede) natuurlijke taal. Duh! Het is niet voor niets dat wij spreken van ‘programmeertalen’. Programmeertalen kennen eigen woorden en symbolen en ze hebben een eigen grammatica en syntaxis (zinsbouw). Als je programmeert, creëer je betekenis door de woorden en symbolen op basis van regels (grammatica en vooral syntaxis) aan elkaar te rijgen. Onderzoek laat zien (Denny e.a., 2011) dat leerlingen enorm worstelen met die syntaxis van programmeertalen. Paul Denny en collega’s ontdekten bijvoorbeeld dat leerlingen meestal een broncode (leesbare tekst van de programmeur in een programmeertaal) inleveren met fouten in de syntaxis: zwakkere leerlingen maakte syntaxfouten in bijna drie kwart (73%) van de gevallen en zelfs de beste leerlingen maakte syntaxfouten ongeveer 50% van de tijd.

Leren programmeren lijkt op het leren van een tweede taal, zo wijst onderzoek uit. Met rekenvaardigheid heeft het veel minder te maken.

Uit recent onderzoek van Chantel Prat en collega’s van de universiteit van Washington (2020) blijkt dat vooral een natuurlijke aanleg om talen te leren, lijkt te voorspellen of je goed kan (leren) programmeren. Die aanleg komt beter van pas dan wiskundige kennis of rekenvaardigheid. Dat komt, volgens de onderzoekers, doordat het schrijven van een broncode lijkt op het leren van een tweede taal: je moet de woordenschat en grammatica van die taal leren en snappen hoe deze samen ideeën en bedoelingen communiceren. In een interview in Science Daily vertelt Prat dat programmeren vaak nodeloos ingewikkeld wordt gemaakt door stereotypen over hoe een goede programmeur eruitziet, maar ook door toeleidingscursussen, doordat deze gebaseerd zijn op het idee dat programmeren sterk afhankelijk is van wiskundige vaardigheden. Dat laatste wordt niet ondersteund door het onderzoek van Prat en collega’s.

Daarin moesten deelnemers een simpel spelletje (Rock, Paper, Scissors / Steen, Papier, Schaar) programmeren in Python. De taal Python werd gekozen omdat die taal, volgens de onderzoekers, erop is gericht ‘lezersvriendelijk’ te zijn en veel van de manieren waarop dit wordt bereikt hebben taalkundige relevantie. In Python spring je in wat alineahiërarchieën nabootst in plaats gebruik te maken van accolades ({}). Het gebruikt ook woorden (bijvoorbeeld ‘niet’ en ‘is’) om bewerkingen aan te duiden, in plaats van symbolen die in andere programmeertalen worden gebruikt.

De onderzoekers beoordeelden de leerresultaten op drie verschillende manieren: 1) leersnelheid, 2) programmeernauwkeurigheid (het maken van een Rock, Paper, Scissors Game) en 3) declaratieve kennis (nauwkeurigheid op een meerkeuzetest van 50 items, inclusief vragen rond het algemene doel van functies, semantische kennis en syntactische kennis).Of dit lukte, bleek vooral af te hangen van hun taalvaardigheid. Vaardigheden als rekenen en logisch en abstract redeneren (fluid intelligence) waren veel minder van invloed. De onderzoekers vonden dat taalvaardigheid verklaarde meer dan 70% van de verschillen tussen betere en minder goede leerders in hoe snel zij leerden programmeren in Python. Slechts een klein deel had te maken met hun rekenvaardigheid.

Dichter bij huis (TU Delft en Universiteit Leiden) onderzochten Felienne Hermans, Alaaeddin Swidan, and Efhimia Aivaloglou (2018) hoe het programmeeronderwijs verbeterd kon worden. Haar aanbeveling: neem een voorbeeld aan aanpakken die gewoonlijk in taalonderwijs worden gebruikt. Zo is bekend uit haar onderzoek met Alaaeddin Swidan (2019) dat beginnende lezers een tekst beter begrijpen wanneer ze deze hardop lezen. Dit wordt toegeschreven aan het feit dat hardop lezen (zgn. vocalisatie) de aandacht op de tekst vestigt. Hermans en collega’s willen weten of het hardop lezen van broncode op een vergelijkbare manier werkt: ondersteunt dit kinderen bij het leren programmeren? De eerste resultaten zijn bemoedigend: leerlingen die de broncode hardop lazen, scoren hetzelfde op begrip als leerlingen die de broncode alleen in stilte lazen, maar ze onthouden wel beter wat er in die code stond.

Hermans’ volgende stap, qua onderzoek, wordt de overgang van echt hardop lezen naar alleen in gedachten hardop lezen. In taalonderwijs weten we dat naarmate leerlingen ouder worden, ze meer in stilte vertrouwen op zogenoemde subvocalisatie: het lezen van tekst met de innerlijke stem (e.g., Daneman & Newson, 1992; Prior, Fenwich, Saunders, Ouellette, O’Quinn, & Harvey, 2011; Slowiaczek & Clifton, 1980). Van subvocalisatie is bekend dat het ook het leesbegrip verbetert, ook bij bekwame, volwassen lezers. Zou dit ook gelden voor programmeren?

Als het leren programmeren echt lijkt op het leren van een tweede taal, kan dit een doorbraak betekenen voor effectief, efficiënt en bevredigend programmeeronderwijs, ongeacht je mening over de noodzaak daarvan.

Daneman, M., & Newson, M., (1992). Assessing the importance of subvocalization during normal silent reading. Reading and Writing, 4(1), 55–77. https://doi.org/10.1007/BF01027072

Denny, P., Luxton-Reilly, A., Tempero, E., & Hendrickx, J. (2011). Understanding the syntax barrier for novices. In ITiCSE ’11: Proceedings of the 16th annual joint conference on Innovation and technology in computer science education (pp. 208–212). Association for Computing Machinery. https://doi.org/10.1145/1999747.1999807

Hermans, F., Swidan, A., & Aivaloglou, E. (2018). Code phonology: An exploration into the vocalization of code. In ICPC ’18: Proceedings of the 26th Conference on Program Comprehension (pp. 308-311). Association for Computing Machinery. https://doi.org/10.1145/3196321.3196355

Jenkins, T. (2002, August). On the difficulty of learning to program. In Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences (Vol. 4, No. 2002, pp. 53-58).

Prat, C. S., Madhyastha, T. M., Mottarella, M .J., & Kuo, C. H. Relating natural language aptitude to individual differences in learning programming languages. Scientific Reports, 10, 3817 (2020). https://doi.org/10.1038/s41598-020-60661-8

Prior, S. M., Fenwick, K. D, Saunders, K. S., Ouellette, R., O’Quinn, C., & Harvey, S., (2011). Comprehension after oral and silent reading: Does grade level matter? Literacy Research and Instruction, 50(3), 183–194. https://doi.org/10.1080/19388071.2010.497202

Slowiaczek, M. L, & Clifton, C., (1980). Subvocalization and reading for meaning. Journal of Verbal Learning and Verbal Behavior, 19(5), 573–582. https://doi.org/10.1016/S0022-5371(80)90628-3

Swidan, A., & Hermans, F. (2019). The effect of reading code aloud on comprehension: An empirical study with school students. In CompEd ’19: Proceedings of the ACM Conference on Global Computing Education (pp. 178-184), Association for Computing Machinery. https://doi.org/10.1145/3300115.3309504


[1] Iets dat wordt gebruikt om de aandacht te trekken en aan te moedigen iets te doen zoals een product of dienst te kopen.

[2] Rekwisieten zoals nepdingen die door acteurs gebruikt worden.

0 0 vote
Article Rating
Abonneren
Abonneren op
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

5 Reacties
nieuwste
oudste meest gestemd
Inline Feedbacks
View all comments

About Paul Kirschner

Nederlands: Prof. dr. Paul A. Kirschner, dr.h.c. is Universiteishoogleraar en hoogleraar Onderwijspsychologie aan de Open Universiteit. Hij is ook Visiting Professor Onderwijs met een leerstoel in Leren en Interactie in de Lerarenopleiding aan Oulu University (Finland) waar hij ook een Eredoctoraat heeft (doctor honoris causa). Hij is een internationaal erkende expert op zijn gebied en heeft zitting gehad in de Onderwijsraad in de periode 2000-2004 en is lid van de Wetenschappelijk Technische Raad van SURF. Hij is Fellow of the American Educational Research Association (AERA; NB de eerste Europeaan aan wie deze eer werd toegekend), de International Society of the Learning Sciences (ISLS) en van de Netherlands Institute for Advanced Study in the Humanities and Social Science of the Royal Dutch Academy of Sciences (NIAS-KNAW). Hij was President van de International Society for the Learning Sciences (ISLS) in de periode 2010-2011. Hij is Hoofdredacteur van de Journal of Computer Assisted Learning en Commissioning Editor van Computers in Human Behavior, en hij is auteur van Ten steps to complex learning (Routledge/Erlbaum). Hij schrift ook regelmatig voor Didactief (de kolom KirschnerKiest over wat docenten kunnen met wetenschappelijke resultaten). Hij is ook medeauteur van het boek Jongens zijn slimmer dan meisjes XL (EN: Urban Myths about Learning and Education). Hij wordt gezien als expert op veel gebieden en vooral computerondersteund samenwerkend leren (CSCL), het ontwerpen van innovatieve, elektronische leeromgevingen, mediagebruik in het onderwijs en het verwerven van complex cognitieve vaardigheden. English: Paul A. Kirschner (1951) is Distinguished University Professor and professor of Educational Psychology at the Open University of the Netherlands as well as Visiting Professor of Education with a special emphasis on Learning and Interaction in Teacher Education at the University of Oulu, Finland where he was also honoured with an Honorary Doctorate (doctor honoris causa). He was previously professor of Educational Psychology and Programme Director of the Fostering Effective, Efficient and Enjoyable Learning environments (FEEEL) programme at the Welten Institute, Research Centre for Learning, Teaching and Technology at the Open University of the Netherlands. He is an internationally recognised expert in the fields of educational psychology and instructional design. He is Research Fellow of the American Educational Research Association and the Netherlands Institute for Advanced Study in the Humanities and Social Science. He was President of the International Society for the Learning Sciences (ISLS) in 2010-2011, member of both the ISLS CSCL Board and the Executive Committee of the Society and he is an AERA Research Fellow (the first European to receive this honour). He is currently a member of the Scientific Technical Council of the Foundation for University Computing Facilities (SURF WTR) in the Netherlands and was a member of the Dutch Educational Council and, as such, was advisor to the Minister of Education (2000-2004). He is chief editor of the Journal of Computer Assisted Learning, commissioning editor of Computers in Human Behavior, and has published two very successful books: Ten Steps to Complex Learning (now in its third revised edition and translated/published in Korea and China) and Urban Legends about Learning and Education (also in Dutch, Swedish, and Chinese). He also co-edited two other books (Visualizing Argumentation and What we know about CSCL). His areas of expertise include interaction in learning, collaboration for learning (computer supported collaborative learning), and regulation of learning.

Category

onderwijs

Tags

, , ,