Gerard Dummer

Alles over Onderwijs en ICT.

Browsing Posts published in 2017

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.

Dat is de titel van een artikel van Weintrop et al (2016) waarin ze een opzet geven voor het integreren van computational thinking (CT) in het wiskunde en science onderwijs. Een interessant artikel omdat dit een beeld geeft hoe je aandacht kunt besteden aan CT buiten het vakgebied computer science. De opzet die ze kiezen voor het integreren van CT is een taxonomie van doelen toegespitst op wiskunde en science. Op basis van eigen onderzoek komen ze uiteindelijk tot 4 categorieën: data practices, modeling and simulation practices, computational problem solving practices en system thinking practices. Belangrijkste reden voor de auteurs om CT te integreren binnen wiskunde en science is dat deze vakken daarmee beter aansluiten op de werkelijkheid van de wetenschap van nu. Daarnaast, geven de auteurs aan, kan het gebruik van computational tools en vaardigheden het begrip van wiskunde en science vergroten.

In het artikel gaan ze verder in op CT zelf, CT in K12 education, de steeds groter wordende rol van computation in wiskunde en science en de methode die ze gebruikt hebben om te komen tot hun taxonomie. Over de steeds groter wordende rol van computational methodes geven ze aan dat door de toegenomen rekenkracht steeds ingewikkeldere problemen kunnen worden opgelost, dat daardoor de wetenschap verandert en dat leerlingen daarop moeten worden voorbereid.

De Taxonomie

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

Zoals gezegd bestaat de taxonomie uit vier categorieën. Elke categorie is weer onderverdeeld in een aantal practices. Ik weet niet hoe practices zich het beste laat vertalen aangezien de auteurs zelf daar een apart punt van maken. In eerste instantie spreken ze over skills (vaardigheden) maar…

but concerns were raised, such as a request we move from the terms skills to the broader and more actionable practices to reinforce what it means to use these concepts as well as to reflect larger changes in the mathematics and science standards landscape.

Misschien dat werkwijze, praktijken of competenties een vertaling hiervoor zou kunnen zijn. Voor nu laat ik het maar even bij practices.

In het artikel lichten ze elke practice toe en daarna per practice alle onderdelen. Ik zal daarvan een korte samenvatting geven.

1. Data-practice

Data, zo geven de auteurs aan, is de kern van wetenschappelijk en wiskundige bezigheden. De manier waarop data wordt verzameld, gemaakt, geanalyseerd, gemanipuleerd en gevisualiseerd verandert snel. Leerlingen moeten leren dat data niet is geordend in structuren maar dat je die zelf nog moet aanbrengen.

1a. Collecting Data (dataverzamelen)
Door het observeren en meten kan data worden verzameld. Computational tools kunnen worden ingezet om data te verzamelen. Aan het eind van het artikel noemen de auteurs een voorbeeld van zo’n computational tool: De Tracker Video:

1b. Creating Data (Data maken)
Met behulp van computersimulaties kunnen wetenschappers data maken. Bijvoorbeeld om de evolutie van een melkwegstelsel te onderzoeken. Deze data is anders niet beschikbaar omdat dit soort processen bijvoorbeeld te lang zouden duren zonder simulaties.

1c. Manipulating Data (Data manipuleren)
Met data manipuleren wordt bedoeld het kunnen sorteren van data, filteren, opschonen, normaliseren en datasets kunnen samenvoegen. Hierbij moet ik denken aan het kunnen werken met Excel bijvoorbeeld. De auteurs noemen elders in het artikel nog tools zoals Tinkerplot, Fathom en SimCalc.

1d. Analyzing Data (Data analyseren)
Bij data analyseren gaat het er om dat je op zoek gaat naar patronen, afwijkingen, regels kunt definiëren om data te categoriseren, trends kunt vaststellen en verbanden kunt leggen. Nu er zoveel data beschikbaar is (big data) is het belangrijk dat je computational tools kunt gebruiken om de data te analyseren.

1e. Visualizing data (data visualiseren)
Computational tools kunnen helpen om data te visualiseren zodat je er ook met anderen over kunt praten. Denk hierbij aan diagrammen en grafieken. Maar ook aan dynamische, interactieve visualisaties.

2. Modeling and simulation practices (modellen en simulaties)

In de wetenschap is het maken, verfijnen en gebruik van modellen over fenomenen een belangrijk uitgangspunt. Je kunt hierbij denken aan stroomschema’s, diagrammen, vergelijkingen, chemische formules, computersimulaties en fysische modellen. Modellen kunnen worden gebruikt om te voorspellen hoe iets in de werkelijkheid zal gaan. De auteurs noemen hierbij specifiek niet statische representaties van fenomenen die gesimuleerd kunnen worden door de computer. Modellen maken het mogelijk om vragen te onderzoeken en hypotheses te testen die anders te duur, te gevaarlijk, te moeilijk of onmogelijk zijn uit te voeren.

2a. Using computational models to understand a concept (Computationele modellen gebruiken om een concept te begrijpen.
Een computational tool kan een goed leermiddel zijn om een concept te begrijpen zoals de afhankelijkheden in een ecosysteem en hoe objecten in een wrijfingsloze omgeving zich gedragen. Op zoek naar voorbeelden kwam ik op Wikipedia deze uitgebreide lijst tegen met computational models. Maar ik moest ook denken aan de GoLabs zoals Ton de Jong die beschrijft en de onderzoeken naar simulaties van Wouter van Joolingen met bijvoorbeeld SkimSketch.

screen-shot-2017-03-17-at-11-30-10

2b. Using computational models to find and test solutions (computational modellen gebruiken om oplossingen te vinden en testen)
Verschillende hypothesen testen zonder dat het teveel geld en tijd kost.

2c. Assessing computational models (computationals models beoordelen)
Hoe verhoudt het fenomeen zich tot de werkelijkheid? Welke abstracties zijn in het model ingebouwd? En welke invloed hebben de abstracties op de betrouwbaarheid van het model?

2d. Designing computational models (computational modellen ontwerpen)

Hierbij moeten technologische, methodologische en conceptuele beslissingen worden genomen. Hierbij gaat het om een ontwerpproces nog op papier.

2e. Constructing computational models (het construeren/ bouwen van computational modellen)
Hierbij gaat het echt om het bouwen van computational models. Hiervoor is programmeerkennis nodig.

3. Computational problem solving practice (computationeel probleemoplossend vermogen)

Het gaat hierbij om de toegepaste informatica die helpt om de wetenschap verder te helpen. Als leerlingen programmeren, algoritmes ontwikkelen en computationele abstracties maken kan dit een positief effect hebben op het bestuderen van wiskundige en wetenschappelijke fenomenen.

3.a Preparing problems for computational solutions (problemen zo formuleren dat ze computationeel kunnen worden opgelost)
Problemen lenen zich niet altijd automatisch om door een computerprogramma te worden opgelost. De kunst is om het probleem zo te formuleren dat het geschikt is om er met een computational tool mee aan de slag te gaan.

3b. Computer programming (programmeren)
Het gaat hierbij om het kunnen begrijpen van computerprogramma’s van anderen en zelf programma’s schrijven. Programmeerconcepten die hierbij belangrijk zijn: conditionele logica, iteratieve logica, herhaling, abstracties (waaronder subroutines en datastructuren). Niet iedereen hoeft een programmeur te worden, geven de auteurs aan, maar een basiskennis is wel belangrijk.

3c. Choosing effective computational tools (effectieve computationele middelen kiezen)
Het gaat hierbij om de vraag welk programma het beste past bij het probleem dat je hebt. Wat zijn de mogelijkheden en wat zijn de beperkingen?

3d. Assessing different approaches/ solutions to a problem (aanpakken en oplossingen beoordelen)
Als er meer mogelijkheden zijn om iets te doen dan is het belangrijk dat je de juiste keuze kunt maken. Je kunt denken aan de kosten, de tijd, duurzaamheid, herbruikbaarheid en flexibiliteit.

3e. Developing modular computational solutions (modulaire computationele oplossingen ontwikkelen)
Het gaat om het in stappen of stukjes op kunnen knippen van een proces. Zodanig dat ze gemakkelijk kunnen worden hergebruikt, voor andere doeleinden kunnen worden ingezet en fouten makkelijker kunnen worden opgespoord.

3f Creating computational abstractions (in staat zijn om abstracties te maken)
Vaststellen wat de hoofdlijnen zijn en wat de details. Dit helpt bij het schrijven van een computerprogramma, generaliseren, visualiseren van data en het vaststellen van de reikwijdte of schaal van een probleem.

3g. Troubleshooting and debugging (probleemoplossing en debuggen)
Bij het oplossen van problemen gaat het om het vaststellen van het probleem, het systematisch testen van het systeem om het probleem te isoleren en het reproduceren van het probleem om mogelijke oplossingen te testen.

4. System thinking practices (systeemdenken)

Er zijn problemen die je alleen op kunt lossen als je kijkt naar het systeem in het geheel en niet naar de afzonderlijke onderdelen. Systeemdenken is daarom een belangrijke vaardigheid. Voorbeelden van systemen die je in z’n geheel zou moeten bestuderen zijn natuurlijke selectie en populatieveranderingen in de natuur, het menselijk ademhalingssysteem en de algemene gaswetten. Ze benoemen daarbij ook de term cross-cutting concepts die ook al een keer was tegengekomen bij theorie over Wetenschap & Technologie. Computationele middelen kunnen een krachtig middel zijn om systemen te begrijpen.

4a. Investigating a complex system as a whole (een systeem als geheel bestuderen)
Soms is het effectiever om een systeem in het geheel te bestuderen in plaats van de afzonderlijke onderdelen. Dat betekent dat je sommige details moet kunnen weglaten. Computationele middelen zoals modellen en simulaties zijn hierbij handig om te gebruiken.

4b. Understanding the relationships within a system
Alhoewel het handig is om systemen als geheel te bestuderen is het ook handig om te weten hoe afzonderlijke onderdelen op elkaar reageren.

4c. Thinking in levels (in niveaus denken)
Het gaat hierbij om het kunnen onderscheiden van verschillende niveaus in een systeem en op basis daarvan onderzoek te doen.

4d. Communicating information about a system (communiceren over een systeem)
Als je een systeem onderzoekt is het de kunst om over de resultaten te kunnen communiceren. Visualisaties en infographics kunnen daarbij helpen. Belangrijk daarbij is de vraag wat je wel en niet presenteert.

4e. Defining systems en managing complexity (systemen definiëren en complexiteit managen)
Wat zijn de grenzen van het systeem dat je wilt gaan onderzoeken? Een systeem moet zo gedefinieerd zijn dat het bruikbaar is en productief.

De auteurs hebben een mooie opzet gemaakt waarin ze kijken hoe CT binnen wiskunde en science een rol kan spelen. Mijn idee is dat vooral science (onderzoekend leren) hierbij leidend is geweest. Ik heb tenminste het idee dat de opbouw zich als geheel vooral leent voor onderzoekend leren. De afzonderlijke onderdelen zouden naar mijn idee weer goed kunnen worden ingebed binnen rekenen-wiskunde. Rekenen-wiskunde is hierbij vooral een toepassing en niet zozeer het doel. In een volgende blogpost zal ik kijken of er op basis van bovenstaande ook vertalingen naar het basisonderwijs zijn te maken. En dan specifiek naar rekenen-wiskunde en wetenschap en technologie.

In het document K12 Computer Science Framework formuleren The Association for Computing Machinery, Code.org, Computer Science Teachers Association, Cyber Innovation Center, en National Math and Science Initiative de core concepts (kernconcepten) en core practices (kernpraktijken) van K12 Computer Science.

screen-shot-2017-03-14-at-14-02-09

Computational Thinking maakt in hun overzicht deel uit van de core practices. Daarnaast hanteren ze nog crosscutting concepts. De uitleg daarvan is dat:

These “crosscutting concepts” provide thematic connections across the core concepts. The criteria for selection of a crosscutting concept was that it should

  • apply across multiple core concepts,
  • illuminate connections between different core concepts of computer science,
  • build familiarity with fundamental themes in computer science through repetition in different
    contexts, and
  • create a richer understanding of a concept statement in which it is integrated

 
De Crosscutting Concepts zijn:

1. Abstraction
2. System Relationships
3. Human–Computer Interaction
4. Privacy and Security
5. Communication and Coordination

Zoals gezegd maakt Computational Thinking dus deel uit van de core practices.

1. Fostering an Inclusive Computing Culture
2. Collaborating Around Computing
3. Recognizing and Defining Computational Problems
4. Developing and Using Abstractions
5. Creating Computational Artifacts
6. Testing and Refining Computational Artifacts
7. Communicating About Computing

Ze geven de volgende uitleg over waarom CT op deze manier in de core practices staat:

Computational thinking plays a key role in the computer science practices of the framework as it encompasses practices 3, 4, 5, and 6. Practices 1, 2, and 7 are independent, general practices in computer science that complement computational thinking. Multiple research articles and documents informed the delineation of computational thinking practices, such as Operational Definition of Computational Thinking for K–12 Education (ISTE & CSTA, 2011) and Assessment Design Patterns for Computational Thinking Practices in Secondary Computer Science (Bienkowski, Snow, Rutstein, & Grover, 2015).

Interessant vind ik ook dat ze schrijven dat ze nog niet in staat zijn om die core practices per niveau te omschrijven:

The practice statements delineate specific expectations by the end of 12th grade and are followed by a narrative that describes the progression leading to those end points. This structure differs from the grade-band delineation of the core concepts because the current research base and practitioner experience with practices in computer science do not provide enough information to create clear, grade-banded expectations. The narratives describe the practice progressions in a manner that is less prescriptive about developmental appropriateness to emphasize flexible expectations.

In mijn eerdere post van vandaag verwijs ik naar de CSTA-standaarden waar de SLO zich op baseert als het gaat om Computational Thinking (CT). Deze standaarden zijn in 2011 geformuleerd. CT is een onderdeel van computer science (CS) en CS bestaat naast CT uit: Collaboration, Computer Practice and Programming, Computer and Communication Devices, Community, Global and Ethical Impacts.

In het document van 2011 beschrijven ze het belang van CT als volgt:

We believe that computational thinking (CT) can be used across all disciplines to solve problems, design systems, create new knowledge, and improve understanding of the power and limitations of computing in the modern age. The study of computational thinking enables all students to better conceptualize, analyze, and solve complex problems by selecting and applying appropriate strategies and tools, both virtually and in the real world.

In het document van 2016, dat nog in conceptversie online staat wordt computational thinking niet meer als een apart onderdeel genoemd. De indeling die in dit document wordt aangehouden is: Computing Systems, Networks and the Internet, Algorithms and Programming, Data and Analysis, and Impacts of Computing.

Over computational thinking wordt in deze versie gezegd:

We believe that computational thinking is a problem solving methodology that expands
the realm of computer science into all disciplines, providing a distinct means of
analyzing and developing solutions to problems that can be solved computationally.
With its focus on abstraction, automation, and analysis, computational thinking is a
core element of the broader discipline of computer science and for that reason it is
interwoven through these computer science standards at all levels of K–12 learning.

CSTA kiest hier dus voor de lijn om CT te integreren in CS. Ben benieuwd hoe SLO en Kennisnet tegen deze verandering aankijken…

In mijn blogpost van 16 februari 2017 over computational thinking benoem ik verschillende definities van computational thinking. Mijn eigen definitie voegde ik daar aan toe:

Het oplossen van problemen waarbij je gebruik maakt van de ideeën uit de informatica.

Later bedacht ik me nog dat dit nog niet compleet was want andersom geldt dit, zeker volgens uitgangspunt van Wing, ook. Wing het noemt dit het automatiseren van abstracties. Waarbij abstracties als het ware de denkkapstok is van de informatica. Als ik mijn eigen definite aanvul met dit uitgangspunt dan kom ik uit op:

Computational thinking is enerzijds het oplossen van problemen waarbij je gebruik maakt van de ideeën uit de informatica en anderzijds het gebruiken van informatica om problemen op te lossen.

Als ik het heb over ideeën dan bedoel ik zaken zoals algoritmes en patronen. Als ik het heb over problemen dan kan dat slaan op een zakelijke insteek (zoals het uitvoeren van een project) als een creatieve insteek (zoals het maken van een kunstwerk).

Een volgende stap die ik wil zetten in mijn denkproces/zoekproces is het volgende: de voorbeelden die rondom computational thinking worden gegeven vind ik nogal hap-snap. Ik zie nog geen duidelijke lijn in de opbouw van computational thinking. Websites zoals CSunplugged bieden allerlei activiteiten aan maar die staan naar mijn idee nog niet in een lijn. Dat komt misschien omdat ik nog niet goed heb gekeken of mijn kennis nog niet groot genoeg is rondom dit onderwerp. Ik weet bijvoorbeeld ook nog niet of dit überhaupt moet of niet.

Als ik een vergelijking zou maken met rekenen-wiskunde dan lijkt het of de activiteiten die benoemd worden de ene keer gaan over sommen als 3 + 4 dan weer over 34 x 35 en dan weer over de vraag hoeveel seconden er in een dag zitten. Sommen die komen uit verschillende plekken van de leerlijn of zelfs uit verschillende leerlijnen.

De website van Kennisnet en de SLO over de leerlijn programmeren komt al meer in de richting. Zij hebben zich gebaseerd op de SLO die zich weer heeft laten inspireren door ISTE en CSTA. Tijd om me daar verder in te verdiepen.

Een idee dat ik ook heb over CT is om te kijken in hoeverre het zinvol is om dit te koppelen aan een taxonomie zoals die van Bloom. Omdat in de stukken die ik tot nu toe lees het vooral gaat over het onderdeel Computational en nog niet zozeer over het onderdeel Thinking. Een idee dat verder wordt ingegeven door het feit dat ik denk dat je eerst aspecten van computational thinking zou moeten herkennen voordat je in staat bent om er iets mee te doen. En dat idee wordt weer getriggerd doordat ik me in de afgelopen jaren ook bezig heb gehouden met de invoering van Wetenschap en Technologie (W&T) op onze Pabo. Een mooi document dat daarin een belangrijke rol speelt is die van Hanno van Keulen waarin hij laat zien hoeveel W&T in ons dagelijks leven een rol speelt. Bij veel voorbeelden die hij noemt is naar mijn idee moeiteloos CT te koppelen. Dat doet hij in zijn publicatie niet. Daarom ter afsluiting Linda Liukas die dat wel doet 🙂

Op 15 februari 2017 mocht ik een workshop verzorgen over computational thinking voor de basisscholen die mee hebben gedaan aan het traject Leren in de 21ste eeuw. In mijn workshop ben ik ingegaan op de vragen: wat is computational thinking, uit welke aspecten bestaat CT, waarom is het belangrijk en zijn we ook praktisch aan de slag gegaan hiermee. En dat alles in 50 minuten. Dat was dus wel keuzes maken. Hieronder de presentatie die ik voor de bijeenkomst gebruikt heb.



Waar ik tijdens de presentatie zelf achter kwam (had ik dus willen toevoegen) was dat er een mooi overzicht van Beat Döbeli Honegger ontbrak die computerscience (en indirect vind ik ook CT) mooi plaatst in een oplopend rijtje (zie dia 5) en die de redenen om met computerscience (en indirect vind ik dus nogmaals met CT) aan de slag te gaan (zie dia 16).

Op 23 maart zal ik nogmaals over CT praten, dan op het symposium ter gelegenheid van het afscheid van Dick de Wolff. Dan zal ik stilstaan bij de verschillende curricula die inmiddels zijn ontworpen rondom CT.

Het artikel van Wing (2006) is waarschijnlijk heet meest geciteerde artikel op dit moment als het gaat over het onderwerp computational thinking. Maar ook in 2008, 20110 en 2016 schrijft Wing over de ideeën en ontwikkelingen rondom computational thinking (CT).

Ik heb de verschillende artikelen van haar op een rijtje gezet en de (naar mijn idee) belangrijkste aspecten uitgehaald.

Definitie van computational thinking

Wing hanteert verschillende omschrijvingen om duidelijk te maken wat ze precies onder CT verstaat. In 2006 geeft ze aan dat CT te maken heeft met het oplossen van problemen, het ontwerpen van systemen en het begrijpen van menselijk gedrag door voor te borduren op de fundamentele concepten van computerscience (CS).

In 2010 omschrijft ze CT als het denkproces dat nodig is in het formuleren van problemen en hun oplossingen zodanig dat de oplossingen op zo’n manier worden weergegeven dat ze effectief uitgevoerd kunnen worden door een information-processing agent.

Informeel omschreven als de denkactiviteiten bij het formuleren van een probleem om te komen tot een computationele oplossing. De oplossing kan worden uitgevoerd door een persoon of een machine, of in de meeste gevallen door een combinatie van een persoon en machine.

Wing geeft aan dat CT het wiskundig en technisch denken combineert (Wing, 2006, 2008, 2010).

In mijn eigen woorden zou ik bovenstaande omschrijven als het oplossen van problemen waarbij je gebruik maakt van de ideeën uit de informatica.

Aspecten van CT

In het artikel van 2006 beschrijft Wing verschillende aspecten van CT die rechtstreeks voortkomen uit het programmeren zoals het herkennen van de voor- en nadelen van aliasing, de baten en kosten van indirect adressing en procedure call.

In het artikel van 2008 geeft ze aan dat de essentie van CT abstractie is. Dat komt terug in het artikel van 2010. De kern is om abstracties te kunnen definiëren waarbij gewerkt wordt met meerdere lagen en waarbij je de relatie tussen deze lagen ook moet kunnen begrijpen. Abstracties zijn de mentale gereedschappen van computing geeft Wing (2008) aan. En computing is het automatiseren van onze abstracties. In 2008 en 2010 geeft Wing aan dat abstractie gebruikt wordt om patronen te definiëren, te generaliseren op basis van gevallen en parameters. Het wordt gebruikt om de essentie weer te geven en irrelevante informatie weg te laten. Verschillende lagen van abstractie zorgt er voor dat we ons kunnen focussen op verschillende aspecten.

Er zijn een paar zaken die me hier bij opvallen. In 2006 zit Wing nog erg dicht aan tegen de concrete begrippen die gebruikt worden in de informatica. Een paar jaar later kiest ze als kapstok abstractie als belangrijkste aspect van CT. Alle andere aspecten worden hier van afgeleid. Wat ik hier opvallend aan vind is dat ik dit nu niet meer terugvind in de leerlijnen die nu worden geformuleerd rondom CT. Zo hanteert de leerlijn programmeren/ computational thinking van Kennisnet tien aspecten die zo op het eerste gezicht redelijk gelijk worden behandeld. Het eerste aspect (algoritmes) lijkt niet onder te doen van abstractie (begrip 7) of representatie (begrip 10).

Toepassingen in het onderwijs en wetenschap

Naar mijn idee het belangrijkste punt dat Wing noemt is de toepassingen van CT in onderwijs en wetenschap. Wing (2010, 2016) geeft aan dat computation erkent wordt als de derde pijler onder de wetenschap naast theorie en experimenten.
Ze noemt veel voorbeelden van disciplines die veranderd zijn en waarbij CT een belangrijke rol speelt: statistiek, biologie (onder andere doorzoeken van enorme hoeveelheid data op zoek naar patronen. Deze patronen worden dan weer gebruikt voor nieuw onderzoek bijvoorbeeld bij het ordenen van het menselijk DNA), economie (door computational gametheorieën), nanocomputing beïnvloedt de scheikunde en quantumcomputers beïnvloeden natuurkundigen (Wing, 2006), algoritmische geneeskunde, computational archeologie, financiën, journalistiek, recht, sociale wetenschappen, fotografie, digitale geesteswetenschappen, computermuziek (Wing, 2010).

In het artikel van 2016 geeft Wing aan dat CS-cursussen ook gegeven worden aan studenten die niet afstuderen in CS zelf. Deze cursussen focussen op de kernconcepten van CS. Wing (2016) vind het verrassend en verheugend om te zien dat ook in het middelbaar en basisonderwijs initiatieven zijn ontstaan. Ze noemt daarbij de ontwikkelingen in Engeland (CAS) en het opstarten van code.org in 2013. Als derde noemt Wing de snel toenemende belangstelling in het onderwijzen van CS op de basis- en middelbare school in Australië, Israël, Singapore en Zuid-Korea.

Computational Thinking in het dagelijks leven

Het minst sterk (maar misschien wel meest herkenbaar) vind ik de relatie die Wing legt met CT in het dagelijks leven. Bijvoorbeeld (Wing, 2006) bij het inpakken van een rugzak (prefetching and caching), het terugvinden van verloren handschoenen (back- tracking), het nadenken over huren of kopen van ski’s (online algoritmes), het kiezen van een rij in de supermarkt (performance modeling voor multi-server systemen), het blijven werken van je telefoon gedurende een stroomuitval (independence of failure en redundancy in design), doostroming van geslaagden op een dipoma-uitreiking (Wing, 2010) als voorbeeld van pipelining en het opbergen van LEGO-blokjes zodat je gemakkelijk een specifiek blokje terug kunt vinden (hashing).

Hoe moet je computational thinking aanleren?
Deze vraag stelt Wing (2008 en 2016) zichzelf. Ze vraagt zich af wat effectieve manieren zijn om CT aan te leren bij kinderen, wat de basisconcepten zouden moeten zijn (Wing, 2008, 2016), in welke volgorde moeten de concepten worden aangeboden, verschilt dit per leerling, welke tools (waaronder computers) zijn het meest bruikbaar voor het aanleren van concepten, wanneer zetten we deze tools in, hoe verhoudt informeel en formeel leren zich tot elkaar bij het aanleren van de concepten.

Ze verwijst hierbij vooral naar andere initiatieven zoals http://csprinciples.org, een serie workshops van de National Academies’ Computer Science and Telecommunications Board, CE21 van de NSF, Computing At School (CAS) in Groot-Brittannië, CS4HS, Carnegie Mellon Center for Computational Thinking, Exploring Computational Thinking van Google, Computer Science Unplugged en CSTA.

Voor de precieze uitwerking van computational thinking in het onderwijs moet je dus niet bij Wing zelf zijn maar bij alle andere de initiatieven die ze noemt. Nog maar eens verder kijken dus!

Studente Suzanne Wierstra van de pabo van Hogeschool Utrecht heeft voor haar project Wetenschap en Technologie (onderzoekend en ontwerpend leren) bij de kleuters onder andere de BeeBot ingezet. De BeeBot had op haar kleuters een grote aantrekkingskracht. Ze zijn volop aan het experimenteren geweest en aan het ontwerpen.

Zo maakten de kleuters allerlei parcouren voor de BeeBot om af te leggen.


BeeBot_kleuters_onderzoekend_ontwerpend_leren

BeeBot_kleuters_onderzoekend_ontwerpend_leren

BeeBot_kleuters_onderzoekend_ontwerpend_leren

Maakten ze allerlei bouwwerken waar ze de BeeBot overheen konden laten gaan.

BeeBot_kleuters_onderzoekend_ontwerpend_leren

BeeBot_kleuters_onderzoekend_ontwerpend_leren

BeeBot_kleuters_onderzoekend_ontwerpend_leren

En hebben ze getest hoe sterk de BeeBot was!

BeeBot_kleuters_onderzoekend_ontwerpend_leren

BeeBot_kleuters_onderzoekend_ontwerpend_leren

Al met al een creativiteit waar ik vrolijk van wordt!

Afgelopen weken hebben studenten van de Pabo van Hogeschool Utrecht hun Wetenschap en Technologie projecten gepresenteerd. De meest uiteenlopende onderwerpen kwamen langs voor de meest uiteenlopende doelgroepen. Ook ICT moest worden verwerkt in de projecten. Veel studenten hebben ICT ingezet ter ondersteuning van onderzoekend leren. Maar er zijn ook studenten geweest die in het kader van ontwerpend leren met ICT aan de slag zijn gegaan. Een paar presentaties ging over de inzet van de BeeBot. Zo is Emily van Hees bij de kleuters aan de slag gegaan met de BeeBot. Zij heeft in vier lessen de leerlingen de basisvaardigheden van programmeren gelegd.

Eerst het principe uitgelegd met hoepels in de speelzaal, daarna op de computer een spelletje over hetzelfde onderwerp, in les 3 werd er geoefend met de BeeBot zelf en in les 4 werd er getest en bijgesteld. In de presentatie zelf zijn verschillende verantwoordingen te vinden over het hoe en waarom van deze opzet.

Ik vind dat ze in deze opzet unplugged activiteiten, ontwerpactiviteiten en computational thinking mooi met elkaar heeft verweven.

De afgelopen maanden hebben vierdejaars studenten van de Pabo van Hogeschool Utrecht die mee hebben gedaan aan de minor Wereldvakken gewerkt aan het maken van een educatieve documentaire. Gisteren hebben we met studenten en collega’s een documentairefestival gehouden om elkaars werk te bewonderen. We hebben er van genoten. Onder het genot van popcorn en cola (of voor de gezonde variant: worteltjes en perensap) kwamen onderwerpen langs als Kamp Amersfoort, De Nieuwe Hollandse Waterlinie, Spookverhalen in Hilversum en Schuilkerken in Utrecht.

Je kunt ze allemaal bekijken in de afspeellijst hieronder! Veel plezier.

Tips die ik voor volgend jaar meeneem trouwens bij deze opdracht is om aandacht te besteden aan plaatsbepaling in de documentaires. Dus waar speelt iets zich af. Dat kwam nu nog niet goed uit de verf. Ook wil ik nog meer aandacht besteden aan storytelling. Dat was nu al goed maar kan volgens mij nog meer uitgebuit worden.