Gerard Dummer

Alles over Onderwijs en ICT.

Browsing Posts tagged programmeren

Op 2 juni 2023 mocht ik een presentatie geven over mijn onderzoek naar Programmeren van Apparaten in de bovenbouw van het basisonderwijs. In mijn presentatie ben ik ingegaan op de mogelijkheden van computational thinking binnen deze lessenserie en de overeenkomsten tussen computational thinking en wiskundig denken.

Donderdag 13 april 2023 was de I&I-conferentie in Utrecht. Een mooi gevarieerd programma waarin de verschillende aspecten van digitale geletterdheid aan bod kwamen. Zelf mocht ik er over mijn onderzoek over programmeren in het basisonderwijs komen vertellen. Hierin heb ik de lessenserie die ik heb ontwikkeld over het programmeren van digital control systems gepresenteerd.

 

Weer een nieuwe update van het artikel over programmeren in de bovenbouw :-). In deze versie maak ik een onderscheid tussen een les met een meer speels karakter en de programmeerles. Verder aangevuld met achtergrondinformatie over de computer, programmeren en de computer zoals die in andere apparaten voorkomt.

Zoals altijd: feedback is van harte welkom.

 

 

 

Een nieuwe update van het artikel over programmeren in de bovenbouw. Nu met tips voor het maken van een lessenserie.

Zoals altijd: feedback van harte welkom!

 

De afgelopen week heb ik mijn aanbod voor studenten omgezet in een digitale variant. In dat kader heb ik ook het artikel dat ik heb geschreven over programmeren in de bovenbouw van het basisonderwijs aangescherpt. Ik heb er een paragraaf aan toegevoegd over het soort vragen dat je kunt stellen. Het document is te downloaden. En zoals altijd: feedback is van harte welkom!

De volgende update is een feit. Paar kleine puntjes aangepast. Het artikel (mei 2020) is hier te downloaden.

Voor mijn studenten van de HU Pabo heb ik een stuk geschreven waarin ik uitleg hoe je kunt programmeren met kinderen in de bovenbouw van het basisonderwijs. Het is een eerste versie waarop ik graag feedback krijg van anderen! Het hoofdstuk is bedoeld om achtergrondinformatie te geven waarna studenten praktisch aan de slag moeten kunnen gaan. Dus als je verbetersuggesties hebt, houd ik me van harte aanbevolen! Je mag me hierover mailen op gerard punt dummer apenstaart hu punt nl.

19 maart 2020
De update van dit hoofdstuk is via deze link te downloaden.

Deze week was ik op de BETT in Londen. Het was al weer een aantal jaar geleden dat ik hier was. Deze keer was ik niet met een groep maar in mijn eentje gegaan. Mijn aandacht ging dit keer vooral uit naar materialen die geschikt zouden kunnen zijn om te gebruiken in het kader van mijn promotietraject (het programmeren van apparaten). Er is veel materiaal te vinden dat hier misschien voor in aanmerking komt. Ik twitterde hier al over. Ik maakte daarbij al een indeling van verschillende soorten materialen. Die indeling is niet helemaal uit de lucht komen vallen. Ik ben hierbij getriggerd door Blikstein (2015) die materialen, die gebruikt worden bij physical computing, indeelt op drie niveaus van abstractie:

  1. Op niveau 1, het niveau waarbij het meest zichtbaar is gemaakt, heb je inzicht in de elektronisch ontwerp de manier waarop de printplaats is gemaakt, het solderen en het programmeren in low level talen zoals C++.
  2. Op niveau 2, is de elektronica, zoals breadboards, weerstanden en losse kabeltjes, zichtbaar en wordt gebruik gemaakt van Mid-level programmeertaal.
  3. Op niveau 3, wordt alleen gekeken naar de sensoren en actuatoren en wordt geprogrammeerd in een high level programmeertaal (zoals Scratch).

Schermafbeelding 2019-01-25 om 11.23.27

Zijn indeling geeft een framework voor ontwikkelaars van materialen van physical computing. Dit framework kwam tot stand door zijn studie naar de verschillende generaties van materialen die op dit gebied zijn langsgekomen. Heel in het kort hierover (want ik wilde niet het artikel hier gaan bespreken):

  1. Generatie 1: Pioneers of physical computing (LEGO/Logo, Braitenberg Bricks, and Programmable Bricks)
  2. The second generation: Conquering the World (Crickets, Programmable Bricks, and BASIC Stamp)
  3. The Third Generation: Broadening Participation and Accessing New Knowledge Domains (GoGo Board, Phidgets, Wiring, and Arduino)
  4. The Fourth Generation: New form factors, new architec tures, and new industrial design (Pico Cricket, Lilypad, Topobo, Cubelets, LittleBits)
  5. The Fifth Generation: Single board computers (Raspberry Pi, PCDuino, Beagle Board)

Bij elke generatie hebben de makers andere doelen voor ogen die ze met hun materialen willen bereiken. Zo hebben de makers van de eerste generatie het volgende voor ogen:

In the best tradition of constructivism and developmental psychology, these schol- ars were not interested in turning children into engineering prodigies or in increasing enrollment in engineering schools, or even in preparing students for careers in STEM. Rather, they were interested in seeing how these new tools would change how all children expressed their ideas [Granott, 1991], and not only the more technically inclined.

Als je kijkt naar de materialen die ik dit jaar op de BETT tegenkwam dan vallen die te koppelen aan een van deze abstratielagen en generaties (met verschillende doelen). Daarbij zie je ook veel klonen van al bestaande materialen. En soms ook handige oplossingen die de overgang van de ene laag van abstractie naar de andere laag van abstractie mogelijk maken.

Ik zou hierbij trouwens nog een laag 4 en 5 bij kunnen bedenken. In laag 4 komen de complete robots te staan. Het enige waar de leerlingen zich op moeten focussen is het programmeren van de apparaten. De BeeBot is hiervan een voorbeeld. In laag 5 plaats ik dan de unplugged lessen. Programmeren zonder computer of apparaten. Ook deze lagen hebben hun eigen doel. In laag 4 leren kinderen op een laagdrempelige manier kennis maken met programmeren. In laag 5 laat je kinderen kennis maken met de principes van programmeren.

Deze schattige maar dure robots zijn klonen van de BeeBot en vallen dus in laag 4.


Ook de Matatalab is hiervan een voorbeeld (die is afgekeken van de Cubetto):

Mijn naam is Gerard Dummer, opleidingsdocent aan de Pabo van Hogeschool Utrecht en promovendus bij de Universiteit Utrecht. In het kader van mijn promotieonderzoek Programmeren in de bovenbouw van het basisonderwijs ben ik op zoek naar leerkrachten van groep 5 en 8 die samen met mij een lessenserie programmeren binnen het vakgebied Natuur en Techniek willen ontwikkelen en uitvoeren.

Doel onderzoek
Doel van mijn onderzoek is om onderwijs te ontwikkelen waarin leerlingen inzicht krijgen in de technisch geprogrammeerde wereld om hen heen. Daarmee bedoel ik dat leerlingen inzicht krijgen in de manier waarop allerlei apparaten (zoals bijvoor- beeld een lift) zijn geprogrammeerd. Voor veel leerlingen (en volwassenen) blijft dit een black box, en we denken dat het voor iedereen belangrijk is om iets te begrijpen van wat er in die box gebeurt (als onderdeel van hun digitale geletterdheid).

Vooronderzoek
De afgelopen maanden heb ik verschillende op- drachten uitgeprobeerd met leerlingen uit groep 5 en groep 8 (50 leerlingen in totaal). De opdrachten gingen steeds over het besturen van een apparaat: een slagboom, een lift en een robotkarretje. Met behulp van de programmeertaal Scratch bestuurden de leerlingen een werkend schaal- model (van Lego).
Uit het vooronderzoek heb ik een goed beeld gekregen van wat haalbaar en uitdagend is voor leerlingen op verschillende niveaus. Vrijwel alle leerlingen gingen enthousiast aan de slag en konden de basisproblemen oplossen. Met passende opdrachten en enige begeleiding kwamen de meeste leerlingen veel verder dan dat. Het concrete apparaat dat reageert op hun pro-
gramma helpt hen in het denkproces en daagt hen uit om tot oplossingen te komen.

Vervolgonderzoek
Voor de volgende fase in het onderzoek ben ik op zoek naar leerkrachten die mee willen denken over het ontwikkelen en geven van lessen aan groepjes leerlingen en uiteindelijk aan de hele klas. Als je mee doet dan krijg je een scholing op het gebied van programmeren (in Scratch) binnen het vakgebied Natuur en Techniek en ga je deel uitmaken van een ontwerpgroep. Voor het mee- doen aan de ontwerpgroep is een urenvergoeding beschikbaar. Ook ICT-coördinatoren en W&T-spe- cialisten die lessen kunnen verzorgen in groep 5 of 8 zijn van harte uitgenodigd om te reageren!

De bedoeling is om in april 2019 een eerste serie activiteiten uit te proberen met kleine groepjes leerlingen. Na de zomervakantie volgen dan een tweede en een derde ronde. De eerste bijeen- komst met de ontwerpgroep probeer ik in decem- ber of uiterlijk januari te plannen. Wil je je opgeven of heb je nog vragen?

Mail dan naar gerard.dummer@hu.nl of bel me op: 06-51963219.

Vandaag was voor mij de vierde en laatste bijeenkomst van de onderwijseenheid rondom Computational Thinking en programmeren op de Pabo van Hogeschool Utrecht. In deze bijeenkomst keken we nog een keer terug op de programmeerdidiactiek van de voorbeeldles en hebben we opdrachten gegeven rondom vier alternatieve programmeeromgevingen: Lego WeDo, ScratchJR, Microbit en Python. Hieronder zie je de presentatie van deze bijeenkomst.



De opdrachten van de alternatieve programmeeromgevingen luidde als volgt:

We hebben hierbij gebruik gemaakt van materialen van apps4sen (ScratchJR), Lego (Lego WeDo), het boek Programmeren voor kinderen van Vorderman (Python) en Herman van Schie (Microbit).

Tot slot moesten de studenten in de les nog een opzet maken voor een les in de alternatieve programmeeromgeving.

Terugblik bijeenkomst
Deze bijeenkomst verliep prima. Ik denk dat het voor studenten fijn was dat we nog een keer de didactiek van het programmeren voorbij lieten komen. De bron die we hiervoor gebruiken is deze van Lee et al. (2011). Studenten konden makkelijk uit de voeten met de handleiding van apps4sen. Ook ScratchJR was zeer toegankelijk na al het geprogrammeer in Scratch. Lego WeDo werkte soepel samen met de app op de iPads. Een groepje heeft zich gebogen over Python met behulp van het boek Programmeren voor kinderen. Dat vonden ze uitdagend. Een student in mijn groep ging aan de slag met de Microbit (ik had er twee) en dat verliep ook prima.

Terugblik onderwijseenheid
Volgend jaar halen we de verdiepingsopdracht van bijeenkomst 1 en 2 er waarschijnlijk uit. Het kasteelspel dat studenten moesten programmeren was bedoeld om hun vaardigheden opgedaan in de MOOC te oefenen en te bestendigen maar stond een snelle vertaling naar de stage in de weg. En daar zaten studenten vooral op te wachten: hoe bieden we het aan. Het artikel van Lee et al. (2011) biedt een mooi houvast om lessen vorm te geven. Ik merkte dat het voor studenten belangrijk was om dit een aantal malen te herhalen. Dat moeten we volgend jaar dus direct doen. Daarbij komt dat we dan meer de mogelijkheid hebben om duidelijk te maken hoe computational thinking in de praktijk er dan uit zal zien als het geïntegreerd is in een les. Nu boden we verschillende voorbeelden aan van computational thinking maar stond dit nog los van de les die ze moesten geven. Die koppeling moet dus ook strakker.
Een tweede belangrijke verandering zal zijn dat we de koppeling met de vakken meer centraal gaan zetten. Nu hebben we dat in de voorbeeldles in les drie gedaan maar dat kunnen we dus ook meer benadrukken. Koppelen met beeldend en Nederlands kan de creatieve toolbox van leerlingen en studenten vergroten. Leerlingen kunnen bijvoorbeeld op nog meer manieren zich op een beeldende manier uitdrukken. Leerlingen kunnen op nog meer manieren hun tekstuele (of multimodale) boodschap overbrengen. Koppelen met het vak rekenen zou de analytische toolbox kunnen vergroten. Koppelen met natuur en techniek zou hun inzicht (systemen om mij heen zijn geprogrammeerd) in de wereld om hen heen kunnen vergroten.
Verder zijn er nog een paar meer procesmatige beoordelingszaken die we nog kunnen verbeteren. Bijvoorbeeld wat we precies verstaan onder een lessenserie, en hoe het een ander beschreven moeten worden.

Waar ik zelf erg blij mee ben zijn de video’s die we de studenten hebben laten maken. We zien hoe ze bezig zijn geweest en waar ze tegen aanlopen. Zo was in de eerste les bijvoorbeeld heel opvallend dat veel studenten nog moeite hadden met de X-as en Y-as en het bewegen hierover. In de MOOC was dit nog niet uitgelegd en voor studenten leverde dit dus problemen op.
Ook was ik erg tevreden over de gekozen alternatieve programmeeromgevingen. Deze boden net als Scratch genoeg mogelijkheden om eigen projecten in te maken. Via Twitter vroeg ik nog welke andere alternatieve programmeeromgevingen we ook nog hadden kunnen opnemen. Antwoorden daarop waren: Swift Playgrounds, Tynker, Hopscotch, Kodable, The Foos, Bee-Bot / Blue-Bot, Teach2Code / Ozobot, Osmo en Bomberbot, Arduino Uno en Mendix. We gaan kijken of we volgend jaar daar nog gebruik van maken!

Ik vond het een spannende onderwijseenheid om te geven. Ik ben benieuwd naar de verslagen van de studenten! Hoor graag van andere Pabo’s die soortgelijke ervaringen hebben opgedaan of opdoen!

Vandaag was al weer de derde bijeenkomst rondom computational thinking en programmeren met de tweedejaars studenten van de Pabo van Hogeschool Utrecht. Deze keer gaven we een voorbeeldles en lieten we 5 unplugged activiteiten ervaren rondom de verschillende programmeerconcepten zoals die genoemd zijn in het Engelse computingonderwijs. Over deze les was ik wat betreft invulling tevreden. Wat betreft plek in de lessenserie nog niet. Deze had als eerste of tweede gemoeten. Dat gaan we volgend jaar anders doen.



Voorbeeldles

We begonnen met een voorbeeldles, gebaseerd op de theorie zoals we die in de vorige bijeenkomst hadden behandeld.

schermafbeelding-2018-05-23-om-12-10-17

Dat wil zeggen: eerst een bestaand project bekijken, het project aanpassen en dan pas een nieuwe activiteit doen. Deze opzet combineerden we met het feit dat we graag een pakkende introductie op de les wilden zien (in dit geval een gesprek over het Gilde in Amersfoort) en een unplugged activiteit over het programmeerconcept dat centraal staat in de les (in dit geval variabele en selectie (ALS DAN).

Wat opviel bij het doen van de les was dat studenten van te voren nog niet zo’n goed beeld hadden van het onderscheid tussen introductie en unplugged activiteit. Dat was na afloop wel direct duidelijk. Een van de studenten gaf aan dat we het beter het opwekken van de belangstelling hadden kunnen noemen.

Voor de unplugged activiteit had ik gebruik gemaakt van het voorbeeld van Paul Curzon van Teaching London Computing. Van te voren wist is al dat het begrip “variabele” lastig is om te doorgronden. Dat bleek ook wel in de les. Het woord “variabele” is verwarrend. Want wat variabel is, is de waarde van de variabele. De variabele zelf blijft “constant”.

In het plugged gedeelte van de les hadden we drie fasen ingebouwd (bekijken, veranderen en nieuw). Als plugged activiteit stond het maken van een rondleiding centraal. De activiteit is gebaseerd op het startersproject de rondleiding van MIT> Het voorbeeld van MIT vond ik zelf wat rommelig. Wel makkelijker omdat het vooral om sequentie gaat daar en niet om variabelen en selectie. Ben benieuwd wat anderen van deze keuze vonden. Studenten vonden het eerst nog wel lastig om te benoemen wat de variabele in de code was.

schermafbeelding-2018-05-23-om-12-44-08

Unplugged activiteiten

Na de voorbeeldles deden we 5 unplugged activiteiten. De activiteiten behandelden alle programmeerconcepten zoals die in het Engelse Computingonderwijs genoemd worden: sequentie, herhaling, algoritme, debuggen en selectie. De unplugged activiteit rondom variabele hadden we al gedaan in de voorbeeldles.

Bij sequentie hadden we als voorbeeld het Robot Turtle spel gekozen. We hadden een parkoer uitgezet op het bord waarbij ze de code moesten opschrijven.

Bij herhaling hadden we een voorbeeld van code.org gehaald over een dansje (Getting Loopy). Die was helder en eenvoudig uit te voeren.

Erg leuk vond ik de oefening met het “Intelligente Papier” om een algoritme uit te leggen. Daarbij gaat het om het volgen van de regels van het algoritme om ervoor te zorgen dat je nooit een spel boter kaas en eieren kunt verliezen.

Ook voor debuggen hadden we een activiteit: Parity Magic. Deze vond ik om twee redenen wat lastiger. We behandelden debuggen omdat het een onderdeel is van het Engelse Computing maar we benoemen het ook als computational thinkingstrategie. Een beetje dubbelop dus. Ten tweede omdat deze oefening vooral betrekking heeft op Internet en data. Dat valt enigszins buiten het bereik waar we met de studenten mee bezig zijn. De opdracht ging op zich goed en was goed te volgen voor de studenten.

Tot slot het sorteernetwerk als een selectie-oefening (ALS DAN). Een leuke oefening waarbij snel de link werd gemaakt naar rekenen en de getallenlijn.

Tot slot
Volgend jaar moet deze les naar voren geschoven worden in de lessenserie. Studenten waren hier meer mee geholpen dan de opdracht ter verdieping van de eigen vaardigheden. Zeker na het volgen van de MOOC van de TUDelft.
Een aantal studenten geeft aan dat Scratch vastloopt. Zeker als ze heen en weer switchen tussen twee schermen (MOOC en Scratch-editor). Iemand anders hier ervaring mee? Ook in verschillende browsers hebben sommige studenten dit.
Volgende keer gaan we aan de slag met alternatieve programmeeromgevingen. De studenten krijgen hierin opdrachten die ze in de les moeten maken. Waarschijnlijk gaan we onder andere aan de slag met Lego WeDo en ScratchJR. Iemand anders nog aanraders? Dan hoor ik dat graag!