Gerard Dummer

Alles over Onderwijs en ICT.

Browsing Posts tagged programmeren

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!

Deze week hebben we de tweede bijeenkomst gehad met onze tweedejaars studenten van de Pabo van Hogeschool Utrecht in Utrecht en Amersfoort rondom Computational Thinking en Programmeren. In deze bijeenkomst stond de didactiek centraal van programmeren. Hieronder de presentatie die we hebben gebruikt in de les.



Na afloop was ik nog niet echt tevreden en dacht ik: dat moeten we volgend jaar anders aanpakken. Waar zat dat in?

De opzet van de bijeenkomst was als volgt: achtergronden geven over programmeerdidactiek, een verdiepingsopdracht geven op basis van de MOOC die studenten volgen, praktische tips geven in de klas, een voorbeeld geven van een lesidee, bronnen geven van lesideeën en nog een keer een unplugged activiteit.

Op papier klinkt die opzet heel aannemelijk. Maar de studenten begonnen zenuwachtig te worden over de les die ze moeten gaan geven op de basisschool. Veel van hen willen graag in de stageweek (volgende week) met de les aan de slag. En ze voelen zich nog onzeker over de manier waarop ze die les zouden moeten geven. Liever hadden ze meer tijd willen hebben voor het uitwerken van de lesideeën tot lessen waarin ze voldoen aan de uitgangspunten van goed programmeeronderwijs waarbij ze aandacht besteden aan computational thinking.

Zelf was ik ook nog niet tevreden omdat ik achteraf dacht: de link die we leggen met de andere vakken had veel beter gemoeten. Sterker nog: als we zeggen dat creative computing het uitgangspunt is (en dat zou bij deze onderwijseenheid heel goed passen) dan moeten de vakken waarin we die creativiteit willen stimuleren veel meer centraal staan. Bijvoorbeeld het vak Nederlands als het gaat over het stelonderwijs, Beeldende vorming als het gaat over Interactieve Kunst of Muziek als het gaat over muziek maken.

Dan draaien we de lessen veel meer om. Dan gaan we aan de slag met een stelopdracht voor Nederlands, waarbij we programmeren als middel gebruiken en computational thinking inzetten als denkstrategie. Heel concreet zou je dan bijvoorbeeld kunnen denken aan laten maken van een interactieve rondleiding. Het doel van de les is het maken van de interactieve rondleiding, de toolbox die je inzet zijn je programmeervaardigheden (waarbij je in de les heel specifiek aandacht besteed aan een programmeerconcept zoals bijvoorbeeld genoemd in het Computing Onderwijs) en waarbij Computational Thinking wordt ingezet om het denkproces hierbij te ondersteunen.

Ik ben erg benieuwd hoe andere Pabo’s hier mee aan de slag zijn! Hoor het graag!

Vorige week zijn we (samen met Don Zuiderman) op de Pabo van Hogeschool Utrecht in Utrecht en Amersfoort begonnen met de module waarin we met tweedejaars studenten aan de slag zijn met Computational Thinking en programmeren. Studenten moeten in de bovenbouw een unplugged les programmeren en een plugged les programmeren geven (met Scratch). In de programmeerles passen studenten Computational Thinking (CT) denkstrategieën toe met leerlingen. Vorige week was de introductie en hebben studenten een start gemaakt met het volgen van de MOOC van de TU Delft over programmeren met Scratch. Deze week hebben de studenten een werkcollege gekregen over de achtergronden van CT en was er een programmeervervolgopdracht.
Het was de eerste keer dat we de module gaven en dus spannend om te kijken hoe studenten zich hiermee konden redden. Iedereen is het gelukt om de eerste week van de MOOC af te ronden en in het werkcollege met goede moed de nieuwe programmeerproblemen aan te pakken.

In de volgende les gaan we verder in op de didactiek van de programmeerles en krijgen studenten nieuwe programmeeropdrachten op basis van week 2 en week 3 van de MOOC.

De presentatie van de bijeenkomst van vandaag vind je hieronder:



Ook ervaringen op de Pabo met programmeren en CT? Dan hoor ik dat graag. Benieuwd wat jullie allemaal tegenkomen!

Een laagdrempelige uitleg van logische poorten met behulp van mijn oom en tante die naar een feestje gaan. Of niet. Of juist beide. Of…

Logische Poorten Van Mijn Oom en Tante by Gerard Dummer on Scribd

Afgelopen woensdag mocht ik op de W&T-academie een workshop verzorgen met de titel Programmeer de wereld om je heen. In een klein uurtje moesten de deelnemers een slagboom programmeren met behulp van de Makey Makey, Scratch en Lego WeDo. Het leuk om te zien hoe de deelnemers op verschillende manieren aan de slag gingen met de opdracht. Ook goed om te zien wat er nog aangepast moet worden voor een volgende keer.



De afgelopen dagen heb ik nagedacht over hoe je computational thinking kunt integreren binnen een concreet project rondom onderzoekend leren. Daarbij wilde ik als uitgangspunt het artikel van Weintrop et al (2016) nemen dat een voorstel doet om computational thinking te integreren binnen science. Dit artikel richt zich niet zozeer op het basisonderwijs maar ik was benieuwd of ik hier een vertaling van zou kunnen maken naar het basisonderwijs. Ik zal mijn werkwijze en bevindingen in deze blogpost beschrijven.

Onderwerp voor het project
Als eerste heb ik een onderwerp voor het onderzoekend leren project gezocht. Ik heb hierbij de ideeën over crosscutting concepts als uitgangspunt genomen. Crosscutting concepts zijn concepten die binnen onderzoek een wezenlijke rol spelen. Paul Anderson zet deze concepten in een videoreeks op YouTube mooi op een rijtje:


Op een rijtje zijn de concepten:

  1. Patronen
  2. Oorzaak en gevolg
  3. Hoeveelheid en proportie
  4. Systemen
  5. Energie
  6. Structuur en functie
  7. Veranderingen

Bij elk crosscutting concept noemt Anderson voorbeelden waarmee je hier aandacht aan zou kunnen besteden. Zo noemt hij bij patronen bijvoorbeeld de seizoenen en bij oorzaak en gevolg als voorbeeld het groeien van planten. Voorbeelden die hij noemt zijn ook onderwerpen die je terugvindt in de kerndoelen van de SLO.

Seizoenen als onderwerp sprak mij aan. Hierbij kun je namelijk aandacht besteden aan patronen, oorzaak en gevolg, hoeveelheid en proportie, systemen, energie en verandering. Seizoenen als onderwerp an sich is natuurlijk nog erg breed.

Naast crosscutting concepts moet het onderwerp zich lenen voor de uitgangspunten zoals Weintrop et al (2016) die formuleren.

screen-shot-2017-03-17-at-10-14-34

Dus het onderwerp zou zich moeten lenen om aandacht te besteden aan:

  • data practices
  • modelling and simulation practices
  • computational solving problem practices
  • system thinking practices

Bij het onderwerp dat ik kies moet dus data verzameld kunnen worden, moet er nagedacht kunnen worden aan de hand van modellen en simulaties, moet er probleemoplossend kunnen worden nagedacht en moeten systemen kunnen worden onderzocht.

Tot slot vind ik het belangrijk dat als ik aandacht besteed aan computational thinking het kinderen meer inzicht geeft in de wereld om hen heen.

Doorbordurend op het onderwerp seizoenen kwam ik uit op het onderwerp weer en specifiek daarbinnen het samenstellen van een weerbericht. Het dagelijks weerbericht biedt volgens mij mooie aanknopingspunten om met onderzoekend leren aan de slag te gaan en aandacht te besteden aan computational thinking zoals Weintrop et al dat formuleren. In het weerbericht maken meteorologen namelijk gebruik van allerlei weermodellen om het weer te voorspellen. Modellen die gezamenlijk enigszins een beeld geven van wat voor weer we kunnen verwachten. Een mooi voorbeeld waarin een weerman hierover iets uitlegt is te zien in onderstaande video:


Verkenning
Om me het onderwerp weersverwachting iets meer eigen te maken heb ik een artikel gelezen van Peter Lynch (2007) waarin hij schrijft over de ontwikkeling van het weerbericht en de rol die computers en computational thinking daarin spelen. Uit het artikel haal ik verschillende aspecten naar voren die van belang zijn voor het samenstellen van project rondom onderzoekend leren waarin computational thinking is verwerkt. Als eerste de zoektocht van de wetenschappers naar het gebruik van modellen die de weersveranderingen het beste in beeld brengen. En ten tweede de rekenkracht die nodig is om alle data die als input wordt gebruikt op tijd te verwerken.

Modellen
Bij de modellen gaat het om wiskundige vergelijkingen die uitdrukking geven aan verschillende aspecten die het weer en klimaat beïnvloeden. In het artikel worden verschillende modellen behandeld die elkaar opvolgen en elkaar beïnvloeden. Deze modellen maken gebruik van vergelijkingen die het basisschoolniveau ver te boven gaan. Voorbeelden hiervan zijn:

En zo worden in het artikel wel ruim 30 vergelijkingen genoemd die van belang zijn.

Het heeft naar mijn idee weinig zin om die modellen specifiek te behandelen omdat die niet aansluiten bij de beginsituatie van de leerlingen. Wat naar mijn idee wel zinvol is, is om leerlingen duidelijk te maken dat wetenschappers geprobeerd hebben om door middel van modellen het weer zo goed te voorspellen. En het is naar mijn idee ook zinvol om duidelijk te maken dat er niet één model is dat al het weer over de hele wereld kan voorspellen maar dat modellen met elkaar gecombineerd worden om tot een betrouwbare voorspelling te komen. Het is naar mijn idee ook zinvol om duidelijk te maken dat die modellen naar verschillende aspecten kijken van het weer: hoe lucht en water stromen, wat de luchtdruk is, hoe hoog de temperatuur, luchtdichtheid en vochtigheid is. En dat ze rekening moeten houden of lucht of land of over water stroomt. Ook vind ik het van belang dat leerlingen weten dat de atmosferische circulatie chaotisch is. En dat het dus weinig zin heeft om voorspellingen over de langere termijn te doen. Ander belangrijk aspect is dat die modellen niet vanuit het niets beginnen. Maar zich baseren op een uitgangspositie van het weer. Die uitgangspositie worden door waarnemingen van mensen en apparaten duidelijk gemaakt.

Rekenkracht
Om het weer te voorspellen is veel rekenkracht nodig. Lynch haalt in zijn artikel een wetenschapper, Richardson, aan die begin twintigste eeuw droomt over een weerverwachtingsfabriek. Om de atmosfeer bij te houden voor de weersvoorspelling, zegt Richardson, zouden zo’n 64.000 mensen nodig zijn. 64.000 mensen die alle data die binnenkomt verwerkt en doorgeeft zodat er uiteindelijk een weersvoorspelling uitkomt. Waarom is er zoveel rekenkracht nodig? Omdat de modellen starten met de waarnemingen. En om een betrouwbare uitgangspositie te krijgen moeten er veel waarnemingen worden gedaan. Waarnemingen op het land, op zee maar ook op verschillende hoogtes in de lucht. Waarnemingen op gebied van luchtdruk, windsnelheid, zonnekracht, luchtvochtigheid. Dat vraagt zoveel rekenkracht dat de eerste computer (de ENIAC) er 24 uur over deed om een weersvoorspelling te maken die precies 24 uur vooruit kon kijken.

schermafbeelding-2017-03-31-om-15-16-35

Tegenwoordig zijn de supercomputers zo snel geworden dat de data binnen afzienbare tijd verwerkt is tot bruikbare weersverwachtingen.

Zo gebruikt de KNMI een supercomputer die een rekenkracht heeft van 58,2 terraflops. Dat wil zeggen 58,2 biljoen (een miljoen x een miljoen) berekeningen per seconde.


Samengevat komt het op de volgende stappen neer: Mensen doen samen met instrumenten weerswaarnemingen, die zijn het startpunt voor rekenmodellen, deze rekenmodellen worden uitgevoerd door krachtige computers en daaruit komen de weersverwachtingen.

In het project zouden daarom ook deze stappen opgenomen moeten worden. Dus de realisatie dat het een keten is die er voor zorgt dat we een weersverwachting kunnen doen.

model voor weersverwachting

Het project zelf

Wat betekent dit voor het project zelf? In het project kun je aandacht besteden aan de modellen (of modelmatig werken) die wetenschappers gebruiken en de rekenkracht van de computers.

Fase 1 Confrontatie
In de confrontatiefase is het de bedoeling dat kinderen zich gaan verwonderen over het feit dat we weersvoorspellingen kunnen doen. Het weerbericht is zo’n alledaags verschijnsel dat dit waarschijnlijk eerst geproblematiseerd zou moeten worden: hoe kan een weerman nu weten wat voor weer het wordt? Glazen bollen waarmee je in de toekomst kunt kijken bestaan immers niet. En toch is dat wat een weerman doet: in de toekomst kijken. Hoe zou hij dat doen? Het bovenstaande filmpje over de weerman die verschillende weermodellen presenteert zou hierbij ook getoond kunnen worden.

Fase 2 Verkenning
In de tweede fase heb ik als mogelijke invullingen van onderzoekend leren op basis van Weintrop et al de volgende punten genoemd:

2a. Using computational models to understand a concept
4a. Investigating a complex system as a whole
4b. Understanding the relationships within a system
4c. Thinking in levels

2a. Using computational models to understand a concept
Er zijn mooie computational models over het weer maar die zijn lang niet allemaal geschikt om met basisschoolleerlingen te behandelen. Zo is er op de website BetaSimulaties een simulatie over wolken waarmee leerlingen aan de slag kunnen met academische modellen. SimSketch die ik een vorige blogpost noemde lijkt ook niet geschikt om met het onderwerp weer aan de slag te kunnen gaan. Die kan namelijk niets met lucht- en waterstromen, luchtdruk, temperatuur, luchtdichtheid en luchtvochtigheid. Een zoektocht op het web naar andere simulaties brengt me onder andere bij de animaties van de bibliotheek waar op een paar aspecten van het weer wordt ingegaan. Bijvoorbeeld hoe een regenboog ontstaat, schaduwen gedurende een dag en de waterkringloop. Het zijn leuke animaties maar ze leggen nog niet echt iets uit over het weer. Een verdere zoektocht brengt me bij CurriculumBits die een paar pagina’s hebben over aardrijkskunde. Hier wordt onder andere verschillende typen regen uitgelegd en depressies. Nadeel van deze animaties is dat je er zelf weinig invloed op uit kunt oefenen (variabelen kunt manipuleren). Nadeel is ook dat ze soms in het Engels zijn. Je zou leerlingen ook video’s kunnen laten zien van bijvoorbeeld SchoolTV maar ook daar is geen mogelijkheid tot manipuleren.

Een andere manier misschien om aan de slag te gaan met een computational model is door er een unplugged activiteit van te maken. Waarbij leerlingen zelf variabelen zijn die van invloed zijn op het weer. Klinkt leuk maar het idee van computational models is dat je iets met behulp van de computer kunt simuleren dat anders niet kan (geld, tijd of te gevaarlijk).

Computational models die wel geschikt zijn naar mijn idee zijn die van CIMSS (animaties).

Weeranimaties CIMSS

Hiermee kun je bijvoorbeeld spelen met het type neerslag dat valt als je luchttemperatuur en de natteboltemperatuur verandert.

schermafbeelding-2017-04-13-om-16-17-30

Wil dit effectief zijn dan moet je daar gerichte opdrachten bij geven en moeten leerlingen kennis hebben van de begrippen die hierin worden behandeld.

Kortom: Er zijn modellen waarmee je in stap 2 leerlingen aan het verkennen kunt zetten maar je moet daarbij goed opletten of die modellen ook dat doen wat je wilt bereiken. .

4a. Investigating a complex system as a whole
4b. Understanding the relationships within a system
4c. Thinking in levels

De bovenstaande stappen neem ik even samen aangezien die prima in samenhang uitgevoerd kunnen worden. Om een complex systeem zoals het weer te begrijpen en te verkennen bied je informatie aan (of laat je leerlingen die opzoeken) en doe je proefjes die de verschillende aspecten van het weer behandelen.

Fase 3 Opzetten experiment
Bij fase 3 heb ik verschillende aspecten genoemd die aan bod zouden kunnen komen bij onderzoekend leren. Ik behandel ze per domein. Als eerste de aspecten van modelling and simulation practices.

Modelling and simulation practices
De volgende punten noemde ik als voorbeeld die bij het opzetten van een experiment gedaan zouden kunnen worden:
2b. Using computational models to find and test solutions
2d. Designing computational models
2e. Constructing computational models

Bij het opzetten van een experiment gaat het om het bedenken en plannen van een experiment. Bij het bedenken van een experiment met behulp van een computational model (punt 2b) zoals dat over neerslagtypes kun je van te voren bedenken wat er zou gaan gebeuren als je variabelen op een bepaalde manier instelt. Het testen zou dan vallen onder fase 4 (uitvoeren van experiment) en je kunt daarna direct conclusies trekken (fase 5) en dat communiceren (fase 6).

Het zelf kunnen ontwerpen van een computational model en het bouwen lijken me op basis van het weer een te complexe opdracht. Je zou het met de leerlingen wel kunnen hebben over de keten die nodig is om te komen tot een weerverwachting. Daarmee heb je het naar mijn idee over decomposition. Een vaardigheid die veel genoemd wordt binnen computational thinking.

Computational problem solving practices
Aspecten van dit domein die geschikt zijn voor fase 3 zijn naar mijn idee:

3a. Preparing problems for computational solutions
3b. Computer programming
3c. Choosing effective computational tools
3d. Assessing different approaches/ solutions to a problem
3e. Developing modular computational solutions
3f Creating computational abstractions

Bij computational solutions denk ik aan de ondersteuning die de computer kan bieden om weerwaarnemingen van leerlingen te registreren en daarmee te rekenen. Bijvoorbeeld het gebruik van spreadsheetprogramma om de gemiddelde windsnelheid uit te laten rekenen. Als je dat wilt doen dan doorloop je stap a (hoe noteren we de gegevens in een spreadsheetprogramma), c, (welke tools is het meest effectief), b (het programmeren van functies in Excel (en die ook ook doorgronden)) en d (kunnen we dit ook nog op een andere manier berekenen). Hierbij kun je ook aandacht besteden (of stil staan bij) aan het feit hoe snel zo’n spreadsheetprogramma dit voor je kan uitrekenen. Veel sneller dan wij kunnen rekenen. Zeker als het aantal waarnemingen zo groot worden. Misschien kun je een wedstrijdje houden wie het snelst is: de computer of een snelle rekenleerling.

3e is naar mijn idee het beseffen dat je een probleem in stukjes kunt oplossen. Dus als het gaat om het weer dat je dan kunt kijken naar verschillende aspecten: wind, luchtdruk, etc. Punt f gaat volgens mij vooral op als je samen met de leerlingen het hebt over de manier van werken zoals je die hebt toegepast en kijkt of je die kunt toepassen op een ander aspect. In dit geval: we hebben Excel laten uitrekenen wat de gemiddelde windsnelheid is; zouden we dat ook kunnen doen voor de gemiddelde neerslag?

System thinking practices
Tot slot heb ik aan fase 3 het volgende toegevoegd:
4e. Defining systems and managing complexity

Dit gaat zeker op voor zo’n complex onderwerp als het weer. De vraag hierbij is: wat gaan we onderzoeken en tot op welke hoogte kunnen we hier antwoorden op vinden? Dit lijkt me vooral een rol voor de leerkracht die de kaders aangeeft.

Fase 4 Uitvoeren experiment
Onder fase 4 voegde ik de volgende stappen toe:
1a. Collecting Data
1b. Creating Data
3g. Troubleshooting and debugging

Stappen 1a en 1b. Dat lijkt me met het onderwerp weer/ weersverwachting niet moeilijk. Je kunt allerlei meetinstrumenten maken en gebruiken waarmee je data kunt verzamelen. Denk maar aan een thermometer, barometer en snelheidsmeter. Op een pagina van de SLO vind je hiervoor mooie voorbeelden. En als je weerinstrumenten zelf maakt dan kun je natuurlijk ook eerst kijken in hoeverre de instrumenten dezelfde gegevens opleveren. Dus hoe betrouwbaar zijn ze? En kunnen we ze ook betrouwbaarder maken?

Fase 5: Concluderen
Bij fase 5 heb ik de volgende aspecten toegevoegd:

1c. Manipulating Data
1d. Analyzing Data

Weerdata kan op verschillende manieren worden gemanipuleerd en geanalyseerd. Het ligt voor de hand om de data te koppelen aan kaarten of luchtfoto’s van de omgeving. Hoe nauwkeuriger de kaarten en/of foto’s hoe beter je de analyse kunt doen. Afhankelijk van je experiment kun je verschillende conclusies trekken. Bijvoorbeeld dat de windsnelheid op de ene plek groter is dan op de andere plek en de temperatuur hoger is op de ene plek dan op de andere plek.

Fase 6 Communiceren
Onder fase 6 voegde ik de volgende aspecten toe:
1e. Visualizing data
4d. Communicating information about a system

Ook dit lijkt me met het weerbericht goed te doen. Bijvoorbeeld door het maken van weerkaartjes (1e) en op basis daarvan een weerbericht maken (4d).

Fase 7: Verdiepen
Als mogelijkheid voor fase 7 noemde ik:
2c. Assessing computational models

Als het gaat over het weer en de weersverwachting kun je het hebben met de leerlingen over de betrouwbaarheid van de voorspellingen. Specifiek zou je het kunnen hebben over de weerpluim. Die laat zien dat naar mate de voorspelling verder in de toekomst ligt de onzekerheid toeneemt. Die onderzekerheid heeft te maken met feit dat de atmosfeer een chaotisch systeem is. Kleine invloeden kunnen grote gevolgen hebben.

weerpluim

Conclusie
Lukt het om voor een concreet onderwerp een onderzoekend leren project te beschrijven waarin de verschillende aspecten van computational thinking zoals geformuleerd door Weintrop et al zijn opgenomen? Antwoord: ja. Maar wel met een slag om de arm. De meeste onderdelen gaan prima. Maar Modelling and simulation practices is lastiger. Je bent daarbij als leerkracht vooral afhankelijk van bestaande modellen die je zou kunnen gebruiken. Modellen die recht doen aan de complexiteit van het onderwerp en tegelijkertijd zijn afgestemd om de doelgroep. Een niet eenvoudige opdracht. Ook niet onmogelijk trouwens. Want dit is precies van Pixar in a box doet.

De invulling van computational thinking zoals ik heb beschreven in dit artikel wijkt behoorlijk af van de manier waarop computational thinking normaal gesproken wordt ingevuld. De invulling zoals je die nu veel ziet is vooral gericht op verschillende aspecten die voortkomen uit programmeren. Dat is ook de manier waarop het IT-bedrijfsleven computational thinking propagandeert en waarvan de PO-raad zegt dat ze dit niet verplicht aan alle scholen wil opleggen. Ik ben benieuwd hoe anderen tegen deze invulling van computational thinking aankijken.

Tot slot
Voor de goede orde: ik heb ik dit artikel vooral gekeken naar de mogelijkheden van computational thinking binnen onderzoekend leren. De invulling van een onderzoekend leren project (rondom het weer) kan natuurlijk veel rijker zijn dan ik nu heb beschreven.

Ik heb in dit artikel ook nog geen specifieke groep benoemd waarvoor deze invulling van computational thinking geschikt is. Zelf denk ik aan een groep 8. Daarmee zou je ook direct na kunnen denken over de manier waarop deze invulling van computational thinking in de andere groepen vorm zou kunnen krijgen.

 

 

In mijn vorige blogpost vatte ik het artikel van Weintrop et al over Computational Thinking (CT) binnen Science en Math samen om een overzicht te krijgen hoe zij de verbinding zien tussen CT en deze vakgebieden. Ik concludeerde dat zij vooral Science als leidend uitgangspunt hebben genomen. Rekenen-wiskunde wordt vooral in de toepassingssfeer genoemd. Dat hoeft misschien niet altijd zo te zijn maar in dit artikel stond (naar mijn idee) science toch vooral centraal.

Ik gaf ook aan dat ik wilde kijken op welke manier er een vertaling gemaakt zou kunnen worden naar het basisonderwijs en dan specifiek naar rekenen-wiskunde en wetenschap en technologie (W&T). Ik wil met dat laatste beginnen. En dan van de W&T in eerste instantie de W, die ik kort door de bocht vertaal met onderzoekend leren. De vraag die ik daarbij vooral wil beantwoorden is:

Hoe kan CT zoals genoemd in het artikel van Weintrop et al ingebed worden in de cyclus van onderzoekend leren?

Cyclus van onderzoekend leren
Vooropgesteld dat onderzoekend leren meer inhoudt dan een cyclus en dat het al helemaal meer inhoudt dan het afwerken van een cyclus, wil ik kijken op welke manier de verschillende aspecten van CT gekoppeld kunnen worden aan de cyclus van onderzoekend leren. Ik gebruik hiervoor de cyclus zoals wij die op de HU Pabo aanbieden aan onze studenten. Dat is deze cyclus (afkomstig van Universiteit Utrecht):

onderzoekend_leren_klein

1. Confrontatie.

In de fase van Confrontatie (verwonderen, afvragen) zie ik niet direct linken met de invulling van CT zoals Weintrop et al die geven. Ik zie die wel buiten dit model om, omdat de leefwereld van kinderen vol zit met computational practices. De publicatie van Hanno van Keulen, Wetenschap en Techniek, ijkpunten voor een domein in ontwikkeling, beschrijft de mogelijkheden van W&T in het dagelijks leven van kinderen. Deze zou gemakkelijk aangevuld, aangescherpt kunnen worden met CT.

2. Verkennen

In de fase van Verkennen zie ik verschillende mogelijkheden om met CT aan de slag te gaan. Mogelijkheden vanuit het model van Weintrop et al zijn naar mijn idee:

  • 2a. Using computational models to understand a concept
  • 4a. Investigating a complex system as a whole
  • 4b. Understanding the relationships within a system
  • 4c. Thinking in levels

Kinderen kunnen door middel van een computational model kennis maken met een bepaald concept. Met voorgeschreven opdrachten verkennen leerlingen dan dit concept. Kinderen kunnen kennis maken met verschillende systemen en proberen hier inzicht in te krijgen. Daarbij zouden gerichte opdrachten helpen om de relaties binnen een systeem duidelijk te maken en zouden ze uitgedaagd kunnen worden om de denken in verschillende niveaus.

3. Opzetten experiment

Bij het opzetten van een experiment (bedenken en plannen) zouden de volgende punten aan bod kunnen komen:

  • 2b. Using computational models to find and test solutions
  • 2d. Designing computational models
  • 2e. Constructing computational models
  • 3a. Preparing problems for computational solutions
  • 3b. Computer programming
  • 3c. Choosing effective computational tools
  • 3d. Assessing different approaches/ solutions to a problem
  • 3e. Developing modular computational solutions
  • 3f Creating computational abstractions
  • 4e. Defining systems and managing complexity

Het gaat bij alle punten om het voorbereiden van een experiment waarbij je bestaande tools gaat inzetten of zelf iets gaat maken. Het laatste punt (defining systems and managing complexity) gaat over de vraag, naar mijn idee, naar het afbakenen van je onderzoeksterrein.

4. Uitvoeren van het experiment

Bij het uitvoeren van het experiment (experiment doen en resulaten noteren) zouden de volgende punten aan bod kunnen komen:

  • 1a. Collecting Data
  • 1b. Creating Data
  • 3g. Troubleshooting and debugging

Uit een experiment dat je doet komt namelijk data (in welke vorm dan ook) en kun je tegen problemen aanlopen die je moet oplossen.

5. Concluderen

Bij het onderdeel concluderen (beantwoord je onderzoeksvraag) zouden de volgende punten aan bod kunnen komen:

  • 1c. Manipulating Data
  • 1d. Analyzing Data

De data die je hebt gekregen uit je experiment moet je namelijk interpreteren. Daarvoor kan het noodzakelijk zijn om je data te manipuleren zodat je het gemakkelijker kunt analyseren.

6. Communiceren

Bij het onderdeel Communiceren (presenteren, discussiëren en vergelijken) zouden de volgende punten aan bod kunnen komen:

  • 1e. Visualizing data
  • 4d. Communicating information about a system

De data die je hebt genanalyseerd ga je tijdens de communicatiefase visualiseren zodat je ze kunt presenteren. Dat geldt ook voor punt 4d.

7. Verdiepen

Bij het onderdeel Verdiepen (verbreding, verdieping) het volgende punt kunnen passen:

  • 2c. Assessing computational models

Als een soort discussie op je eigen onderzoek kun je terugkijken in hoeverre de gebruikte modellen iets zeggen over de werkelijkheid.

Conclusie

Naar mijn idee is het goed mogelijk om in de verschillende fasen van onderzoekend leren CT te integreren. Hoe dit er concreet in het basisonderwijs uit kan zien wil ik beschrijven in een volgende post. Ik kan me voorstellen dat niet alles aan bod hoeft te komen in één project. Ik kan me ook voorstellen dat in de onderbouw van het basisonderwijs de mogelijkheden beperkter zijn dan in de bovenbouw van het basisonderwijs. En ik kan me voorstellen dat leerlingen die meer ervaring hebben met onderzoekend leren of met CT weer meer aankunnen dan leerlingen die daar nog nooit mee gewerkt hebben.