Docenten in opleiding leren programmeren met Hedy
Programmeren bij de docentenopleidingen? Dat hoor je niet vaak. Het zou een waardevolle toevoeging kunnen zijn op jouw vaardigheden als docent. Milena Spaan, docentenopleider Techniek en onderzoeker ‘Digitale geletterdheid’ bij het ‘Lectoraat Curriculumvraagstukken Funderend Onderwijs’ aan de Hogeschool Utrecht, vertelt graag meer over de ervaringen van docenten in opleiding met programmeren in Hedy. Er heersen een aantal vooroordelen over programmeren, ervaren de docenten die ook zo? En verandert hun beeld hierover door zelf aan de slag te gaan? En hoe leer je programmeren aan?
De docenten in opleiding die de minor ‘Educatieve games en digitale geletterdheid’ volgden, volgen binnen de minor verschillende cursussen. Eén van de cursussen is de cursus ‘Digitale geletterdheid’. Bij de cursus Digitale geletterdheid maken ze kennis met de deelgebieden informatievaardigheden en met programmeren. De groep bestond uit docenten po & vo. Er waren deelnemers van de Pabo en van de docentenopleidingen: van Spaans, wiskunde, biologie tot Duits.
In de cursus programmeren gebruikten we de programmeertaal Hedy, die programmeertaal is ontwikkeld door Felienne Hermans, hoogleraar informatica aan de VU. Hedy leert de principes van het programmeren aan op een graduele manier en aan het eind kan je in Python code schrijven.
Gradueel leren programmeren als docent: stap voor stap Python leren
Hedy is een graduele taal speciaal gemaakt voor het onderwijs, die met behulp van levels je leidt naar een officiële programmeertaal, in dit geval Python. Het is gemaakt voor kinderen van de basisschoolleeftijd en de onderbouw middelbare school. Gradueel betekend dat het programmeren in kleine stapjes gaat van een (spreek)taal naar het leren van een programmeertaal (Python). De programmeertaal Hedy past zich dus aan door de levels heen. Dit heeft als voordeel dat je dicht bij een gewone spreektaal/schrijftaal blijft. Als reden voor deze opbouw wordt gegeven: “Hedy werd ontworpen om problemen bij het leren programmeren met de syntax (het leren van de taalregels) te verbeteren door syntax en kennis in stappen te leren, in plaats van in één keer. Dit omdat programmeren door beginners over het algemeen beschouwd als een cognitief uitdagend onderwerp, omdat het gaat om het verwerven van complexe nieuwe kennis, strategieën en praktische vaardigheden inéén” (Gilsing, Pelay, Hermans, 2022). Aan het eind van de levels heb je daarmee de eerste stappen van Python geleerd en kennis gemaakt met de basis van programmeerconcepten.
Leer programmeren in je eigen taal
Het aanleren van programmeren in online omgevingen is meestal in het Engels en de taal van een programmeertaal zelf is dat dan ook. Zo introduceert men vaak de programmeerconcepten en de schrijfwijze inéén. Het nadeel hierbij is dat jouw leerlingen wiens moedertaal niet Engels is bekend moeten zijn met Engelse termen voordat ze kunnen leren programmeren. Programmeren in je eigen taal is meer inclusief en geeft meer mensen toegang tot programmeren.
Hedy is meertalig, je kan de taal zelf instellen op je eigen moedertaal. Zo kan je bijvoorbeeld programmeren in het Spaans, Engels, Arabisch of het Turks. Het is interessant om te onderzoeken in hoeverre het gebruik van (moeder)taal invloed heeft op de ontwikkeling van het begrip van een programmeertaal. Veel studenten in de minor hebben het programmeren in het Nederlands gedaan, een enkele in het Spaans en sommige hebben het op Engels laten staan.
De leercurve binnen Hedy
Binnen Hedy krijg je van het platform instructie en directe feedback op fouten die er gemaakt worden. Effectieve instructie en feedback zijn belangrijk bij programmeerplatforms om leerlingen ondersteuning te bieden op het moment dat ze de levels individueel maken (bijvoorbeeld thuis als huiswerk). Doordat Hedy begint met het programmeren in wat lijkt op gewone taal waarin de programmeerprincipes wordt beschreven, worden er langzaam stapjes gemaakt om een programmeerprincipe echt te begrijpen in plaats van alleen maar aan te leren.
Hoe ziet dat eruit in code?
In programmeertalen bestaan variabelen, met een variabele kan je op een plaats in het computergeheugen gegevens opslaan. De naam van een variabele zelf is de identifier en de waarde die opgeslagen is in de geheugenadressen van deze variabele, kunnen via de variabele geïnspecteerd en veranderd worden.
Zo is een waarde opslaan in een variabele in het begin (level 2 – Hedy) aangeduid met het woordje ‘is’ en kan je dan:
lunch is boterham
schrijven. Daarmee geef je aan dat de waarde ‘boterham’ wordt opgeslagen in de variabele ‘lunch’. Waarbij in level 4 geïntroduceerd wordt waarom je aanhalingstekens moet gebruiken (de tekst is namelijk een string en de computer wil dat weten) en level 6 wordt het (is)gelijkteken geïntroduceerd. In Python en geleidelijk aan in Hedy schrijf je het uiteindelijk zo:
lunch = "boterham"
Een ander voorbeeld is het if-statement. Een if-statement is een conditionele vergelijking en dit komt in allerlei programmeertalen terug. In Hedy wordt het in taal ‘als iets waar is dan…’ en dan voert het programma bepaalde instructies uit. Daarmee wordt in taal de logische vergelijking tussen twee waarden uitgelegd. Het resultaat van de functie is altijd waar (true) of niet waar (false). Met het if-statement breng je een voorwaardelijke instructie in het programma. Afhankelijk van een voorwaarde beslist het programma of bepaalde instructies al dan niet worden uitgevoerd.
Bijvoorbeeld in Hedy, level 5:
vrucht is vraag 'Is een tomaat een vrucht?'
als vrucht is ja
print 'Je hebt gelijk'
anders
print 'Je hebt niet gelijk'
En hetzelfde voorbeeld in Python:
vrucht = input("Is een tomaat een vrucht?")
if vrucht == 'ja':
print("Je hebt gelijk")
else:
print("Je hebt niet gelijk")
Je bent als beginner bij Hedy dus niet afgeleid door het toevoegen van verplichte tabjes in het if-statement of spaties of door wanneer je iets tussen haakjes moet zetten. Je kan je echt focussen op de taak en het doorgronden van het concept. Daardoor kan je makkelijker kennis over programmeren op doen en komt de syntax pas geleidelijk aan bod.
Ervaringen docenten in opleiding
Jezelf evalueren was onderdeel van de cursus programmeren. Hierbij lag de focus op het leren van een nieuwe vaardigheid. Hoe sta je als docent van tevoren tegenover programmeren als docent? En is dat verandert achteraf? Hoe ervaar je het programmeren tijdens het uitvoeren? De docenten in opleiding deden dit door cardsorting. Card sorting is een UX-onderzoeksmethode die wordt gebruikt om informatie te sorteren op belangrijkheid. Deelnemers sorteren kaarten op volgorde op basis van bepaalde criteria. Door deze methode is aan het begin en aan het eind een meting geweest van associaties die je als docent hebt over programmeren. Met het bijhouden van een dagboekje noteerden de docenten in opleiding hun frustraties en de momenten dat ze in een goede flow zaten tijdens het programmeren.
Programmeren heeft te maken met veel vooroordelen, bekende frames zijn b.v. dat het moeilijk is, alleen voor nerds of dat je goed moet zijn in wiskunde om te kunnen programmeren. Dit kan als gevolg hebben dat mensen een angst ontwikkelen voordat ze het hebben geprobeerd.
Het is interessant om te zien of die houding kan veranderen als je kennismaakt met programmeren, de ene of de andere kant op. Zo waren er resultaten waarbij:
- Een aantal docenten van tevoren een positieve houding hadden ten opzichte van het leren programmeren.
- Maar ook een groot gedeelte van de docenten programmeren ziet als ‘niet iets voor mij’, ‘niet iets voor mijn leerlingen’ of ‘moeilijk’.
- Daarnaast er docenten zijn die het van tevoren hebben gelabeld als ‘ingewikkeld’ of ‘lastig’ waarbij zichtbaar werd bij de cardsorting achteraf dat het hen mee is gevallen.
- Sommige het leren met Hedy in hun dagboek benoemen als ‘niet moeilijk’ of ‘goed te doen’ en dit lijkt in lijn te zijn de bedoeling van de graduele programmeertaal.
- Sommige Hedy echter te beperkt vonden en te veel herhaling in de levels, de stappen te klein en te langzaam, en Hedy daarom als makkelijk ervoeren.
- Anderen moeilijk verder kwamen in sommige levels. Dit was een bevestiging van hun houding over programmeren vooraf ‘niet iets voor mij’, dit was ook terug te zien in de positie bij het cardsorten vooraf en achteraf.
Al met al is het interessant hoe je als docent met een andere achtergrond door een korte kennismaking kan bekijken of een nieuwe vaardigheid zoals programmeren je ligt.
Toekomstbeeld programmeren in po en vo
Als je iets met programmeren in je les wilt doen dan vergroot dit het algemene inzicht van je leerlingen in de technologische wereld. In de toekomst zal er binnen het po en vo op meer scholen aandacht gegeven worden aan programmeren. Programmeren is een onderdeel van de kerndoelen van Digitale geletterdheid (SLO), waarbij het in de indeling van SLO (december ’23) valt onder Computational thinking. Bij de invoering van de nieuwe kerndoelen Digitale geletterdheid zal voor programmeren zeker ook opnieuw aandacht komen. Dat betekent dat binnen docententeams er vaardigheid en kennis opgedaan moet worden over het leren programmeren. Veel scholen zijn al aan de slag met programmeren, van Bee-Bots in de kleuterklas tot Micro:Bit en Scratch in de bovenbouw of Arduino’s op de middelbare school, maar voor andere scholen is het nog nieuw. Deze middelen maken gebruik van dezelfde programmeerprincipes, al dan niet geschreven in Blocky code (block-based code) of in tekst-based talen als Python, Javascript of C++.
Programmeren als digitale basis voor de leerling?
Een reden om programmeren uit te proberen in je vak kan ook het emanciperen van je leerling zijn. Programmeervaardigheden zijn handig om als leerling zelfredzaam te kunnen zijn in een wereld vol met technologie, om als maker en ontwerper digitale technologie in te kunnen zetten zoals jij dat wilt (en niet alleen digitale technologie te consumeren). Naast het gevoel van eigenaarschap verwerven jongeren hiermee ook kennis over de programmeerprincipes, waarmee ze het begrip voor de technologische wereld om hen heen ontsluiten. Denk aan het begrijpen van algoritmes die overal inzitten. Als jouw leefomgeving als leerling (die in hoge mate gedigitaliseerd is) beter te begrijpen is door te weten hoe programmeren werkt dan draagt dit bij tot meer inzicht in de (digitale) wereld.
Wat kan je zelf doen als docent?
Door zelf programmeren uit te proberen onderga je het leren programmeren waardoor je inzichten opdoet over problemen waar je leerlingen mogelijkerwijs ook tegenaan gaan lopen. Daarnaast vergroot je jouw kennis over programmeren en kan je daarmee makkelijker bekijken of het iets is wat je ook zou willen integreren in jouw vak of les. Je kan nadat je de basis beheerst ook makkelijker nadenken over specifieke toepassingen van jouw vak, denk aan een open source data set zoals ‘Aardgasvrije woningen per buurt’ die je kan gebruiken om mee te programmeren voor bijvoorbeeld aardrijkskunde. Of door een beslisboom voorraadbeheer te laten schrijven door leerlingen Economie waardoor een fabriek zijn inkoopbeleid zou kunnen bepalen.
Hedy:
Voorbeeld open datasets:
https://data.amsterdam.nl/data/datasets/ixswkNBdOYapHw/energieverbruik
Bron: M. Gilsing, J. Pelay and F. Hermans, Design, implementation and evaluation of the Hedy programming language, Journal of Computer Languages (2022), doi: https://doi.org/10.1016/j.cola.2022.101158.
Interesse in de minor: https://husite.nl/minors/minors/educatieve-games-en-digitale-geletterdheid/