Programmeren in het PO

Programmeren in het PO

Inleiding

Welkom bij de leerlijn programmeren in het basisonderwijs.

Deze leerlijn programmeren is bedoeld voor onderbouw, middenbouw, bovenbouw in het basisonderwijs. In de leerlijn komen begrippen en principes aan de orde die horen bij programmeren. Het bestaat uit uitleg over basisbegrippen van programmeren, doelen en activiteiten voor in de klas voor de leerlingen.

Begrippen, doelen en activiteiten

De activiteiten die bij de begrippen staan zijn laagdrempelig en grotendeels zogenaamde “unplugged” activiteiten. Dat wil zeggen dat deze activiteiten geen gebruik maken van ICT en devices. Ze bieden een introductie tot de begrippen en in de hogere leerjaren worden ze verder uitgediept.

De activiteiten zijn suggesties en voorbeelden van activiteiten om aan de doelen te werken die bij het begrip horen. Je kunt uiteraard ook andere en aanvullende activiteiten en doen dan deze doen om aan de begrippen te werken.

Workshop

Kennisnet heeft een workshop voor leraren gemaakt om bekend te raken met programmeren en
computational thinking. Deze workshop is hier te vinden:

http://maken.wikiwijs.nl/70012/Workshop_Computational_thinking#!page-1652293

Computational thinking

De activiteiten zijn gericht op programmeren en bevorderen computational thinking en het probleemoplossend vermogen bij leerlingen. De definitie van SLO van computational thinking is:

“Computational thinking is het procesmatig (her)formuleren van problemen op een zodanige manier dat het mogelijk wordt om met computertechnologie het probleem op te lossen. Het gaat daarbij om een verzameling van denkprocessen waarbij probleemformulering, gegevensorganisatie, -analyse en -representatie worden gebruikt voor het oplossen van problemen met behulp van ICT-technieken en -gereedschappen.”

Computational thinking is onderdeel geworden van de 21e eeuwse vaardigheden. Programmeren is een manier waarop leerlingen aan hun computational thinking vaardigheden kunnen werken.

Meer informatie over computational thinking is te vinden op de website Curriculum van de Toekomst van SLO:

http://curriculumvandetoekomst.slo.nl/21e-eeuwse-vaardigheden/computational-thinking

Bij programmeren komen ook andere 21e eeuwse vaardigheden aan de orde. Creatief denken en handelen, ICT-basisvaardigheden, kritisch denken, mediawijsheid, probleemoplossend denken en handelen zijn vaardigheden die hieraan relateren. In de leerlijn richten we ons echter op computational thinking, geoperationaliseerd middels programmeren.

Deze leerlijn is tot stand gekomen vanuit een versnellingsvraag van het PO Doorbraakproject Slimmer Leren met ICT en is tot stand gekomen door de inzet van de besturen Oponoa en FIER, met hulp van SLO en met ondersteuning van Kennisnet.

Verantwoording

Verantwoording Leerlijn programmeren, Wikiwijs arrangement  

Deze leerlijn is tot stand gekomen vanuit een versnellingsvraag van het PO Doorbraakproject Slimmer Leren met ICT 2015-2016. Dankzij de inzet van de besturen OPONOA (Gelderland) en onderwijsgroep FIER (Friesland), met hulp van SLO en met ondersteuning van Kennisnet.

Bij de totstandkoming van deze leerlijn stonden de besturen aan het roer. Op deze pagina wordt een aantal van de belangrijkste keuzes beschreven die zijn gemaakt tijdens het inhoudelijke proces om te komen tot een gestructureerd aanbod.

Met als doel: iedereen kan aan de slag met programmeren in de klas!

Leerlijn programmeren als arrangement, startpunt of eindpunt

Deze leerlijn is als Wikiwijs arrangement beschikbaar gesteld. Dat stelt iedereen die dat maar wil in de gelegenheid om een eigen invulling te geven aan de lijn. En waar dat wenselijk is, aan te vullen, uit te breiden etc. Iedere school kan hierin eigen keuzes maken.

De activiteiten dienen als voorbeeld en inspiratie. Het arrangement is een verzameling begrippen, doelen en activiteiten en biedt de mogelijkheid om uit te breiden, met andere activiteiten en met online tools en software. Dit aanbod groeit dagelijks.

Iedere  school kan hiermee eigen keuzes maken, afhankelijk van aanwezige voorkennis over programmeren, infrastructuur, devices en ambities. Bij tools en activiteiten kun je kijken welke elementen uit de leerlijn in de tools aan bod komen, om zo tot zonder enige verplichting tot een eigen invulling te kunnen komen.

Computational thinking

SLO definieert computational thinking als volgt:

“Computational thinking is het procesmatig (her)formuleren van problemen op een zodanige manier dat het mogelijk wordt om met computertechnologie het probleem op te lossen. Het gaat daarbij om een verzameling van denkprocessen waarbij probleemformulering, gegevensorganisatie, -analyse en -representatie worden gebruikt voor het oplossen van problemen met behulp van ICT-technieken en -gereedschappen.”

In het zgn. voorbeeldmatig leerplankader van SLO is een verdere, voorbeeldmatige uitwerking te vinden van de begrippen en doelen voor computational thinking. Deze is te vinden op:

http://curriculumvandetoekomst.slo.nl/21e-eeuwse-vaardigheden/computational-thinking/voorbeeldmatig-leerplankader

Voor de leerlijn is gekozen om niet deze begrippen te kopiëren, maar om “eigen” begrippen te gebruiken. Deze keuze komt voort uit de gedachte om de leerlijn goed praktisch toepasbaar te maken voor leerkrachten, met eenduidige en herkenbare begrippen.

Wel hebben we bij elk begrip een verbinding proberen te leggen met de SLO computational thinking doelen. Programmeren is hier een onderdeel van. Bij elk begrip dat we behandelen is een pagina opgenomen waarin we aangeven welke computational thinking doelen verbonden zijn aan het begrip. Zo werken leerlingen ook aan die begrippen en doelen, maar hanteert de leerlijn een eigen set begrippen toegespitst op programmeren.

Begrippen

De leerlijn programmeren is opgebouwd aan de hand van tien begrippen. Deze begrippen zien we als de “grammatica” van het programmeren. Met kennis en ervaring over deze concepten kun je met programmeren aan de slag. Bij elk begrip staat een korte toelichting ter verduidelijking van wat het begrip in houdt.

We hebben daarbij nagedacht over de volgorde van de begrippen. De begrippen nemen qua complexiteit toe, onder andere door toenemende abstractie en doordat de begrippen meer en meer met elkaar in verbinding komen te staan.

Doelen

Voor de tien begrippen zijn doelen geformuleerd. De onderverdeling die daarbij is gehanteerd: onderbouw, middenbouw en bovenbouw. Per domein zijn waar relevant door ons specifieke doelen geformuleerd. Deze doelen borduren voort op de voorgaande doelen per begrip en per “bouw”.

Na onderbouw is het logisch om de doelen voor respectievelijk midden- en bovenbouw te behandelen. In de volgorde van de begrippen is gekeken of verdieping nodig is in elke “bouw” Voor sommige begrippen belichten we uitsluitend doelen voor bijvoorbeeld onderbouw en middenbouw. Of alleen middenbouw-bovenbouw. Dit komt voort uit het idee dat sommige begrippen aan de orde komen bij andere doelen of geen verdieping meer behoeven. Decompositie bijvoorbeeld is een begrip dat vaker aan de orde zal komen bij de behandeling van de andere begrippen.

Uiteraard staat het iedereen vrij om hier eigen keuzes in te maken, door bijvoorbeeld te kiezen om in de onderbouw de activiteiten rond programmeren nog niet aan te bieden. En deze door te schuiven naar de middenbouw. Of om ervoor te kiezen om met leerlingen uit de middenbouw die meer willen doen eerder te gaan werken aan bovenbouw doelen.

Activiteiten

Bij de verschillende doelen en leeftijdsgroepen (onderbouw, middenbouw en bovenbouw) staan voorbeeldactiviteiten waarmee je werkt aan de geformuleerde doelen. Deze voorbeeldactiviteiten zijn zogenaamde “unplugged” activiteiten, waarmee je kunt werken aan het leren programmeren/computational thinking zonder daarbij veel voorkennis, bepaalde hardware, software en infrastructuur bij nodig te hebben.

Hierdoor zijn ze door iedereen te gebruiken met zo min mogelijk drempels.

Met dit materiaal leg je de basis voor programmeren, ongeacht welke programmeertaal of –tool men hierna zou willen gebruiken. De ontwikkelingen gaan snel: wat nu nog beschikbaar is, zou morgen bijvoorbeeld achterhaald en niet meer beschikbaar kunnen zijn.

Veel van deze voorbeeldactiviteiten zijn afkomstig van het code.org platform, een Amerikaanse website met activiteiten die beschikbaar zijn gesteld onder een CC-BY-NC-SA 4.0 licentie en zijn vertaald naar het Nederlands. Bij sommige activiteiten zijn aanpassingen gedaan om ze aan te passen aan de Nederlandse context, zoals bijvoorbeeld liedjes die gebruikt worden in een activiteit.

1. Algoritmes

Omschrijving

Een reeks instructies, die wanneer deze stap voor stap in de juiste volgorde uitgevoerd worden, tot een vooraf vastgesteld doel leiden.

 

Koppeling met doelen SLO:

Algoritmes en procedures ​ ​

  • Kan door algoritmisch redeneren oplossingen genereren
  • Kan oplossingen automatiseren door middel van algoritmisch denken
  • Kan een computerprogramma schrijven in code
  • Kan een proces om problemen op te lossen generaliseren, zodat het ook bij andere problemen toegepast kan worden

Problemen (her)fomuleren

  • Kan mogelijke oplossingen analyseren om de meest kansrijke richting te bepalen

Probleem decompositie   

  • Kan een taak opdelen in kleinere taken

Abstractie  

  • Kan complexiteit reduceren en algemene concepten overbrengen

Automatisering   ​ ​

  • Kan door het opstellen van een serie van geordende stappen een probleem oplossen of een bepaald doel bereiken
  • Kan effectieve en efficiënte stappen zetten en bronnen gebruiken om tot een uiteindelijke oplossing te komen
  • Kan mogelijke oplossingen identificeren, analyseren en implementeren met als doel de meest effectieve en efficiënte oplossing te vinden

 

Onderbouw

Doelen voor de onderbouw


- Leert het begrip algoritme kennen
- Leert dat een algoritme een lijst van instructies is die leiden tot bepaald resultaat.
- Leren een simpel algoritme te maken in een concrete situatie met een vaste, van te voren bepaalde set instructies.
- Leert dat je een algoritme om kunt zetten naar code zodat het een programma wordt dat een computer uit kan voeren..

Mogelijke activiteiten

1: De goede weg (unplugged)

Welke kant moet de Flurb op om bij het fruit de komen?

(unplugged)

 

 

 

 

 

 

2: Stappenplan (unplugged)

Help de Flurb bij haar bloemen te komen!

 

 

 

 

 

 

Middenbouw

Doelen voor de middenbouw


- Leert hoe complex het is om echte problemen om te zetten in programma's.
- Leert dat ideëen helder kunnen lijken, maar wellicht nog steeds verkeerd "begrepen" kunnen worden door een computer.
- Oefent hoe ideëen gecommuniceerd kunnen worden middels codes en symbolen.
- Leert het begrip algoritme te verbinden met alledaagse situaties.
- Leert grote activiteiten op te delen in deelopdrachten.
- Leert hoe deelopdrachten in een logische volgorde geplaatst kunnen worden.

Mogelijke activiteiten

1: Programmeren op ruitjes-papier (unplugged)

Volg de instructies op en maak een tekening op ruitjespapier.

 

 

 

2: Papieren vliegtuig
(unplugged)

Vol de instructies en maak een vliegtuig.

 

 

 

 

Bovenbouw

Doelen voor de bovenbouw

- Leert een algoritme te maken dat hergebruikt kan worden.
- Leert verschillende algoritmes te evalueren.
- Leert een probleem op te lossen door een eigen set instructies te formuleren.

Mogelijke activiteiten

1. Dobbelstenenrace (unplugged)

Denk als een computer tijdens een spelletje dobbelen.

 

 

 

2. Algoritmes
(unplugged)

Leg een figuur op basis van aanwijzingen van je klasgenoot.

 

 

 

 

 

 

 

 

2. Decompositie

Omschrijving

Een probleem onderzoeken en uitsplitsen in deelproblemen om het op te kunnen lossen. (Stappenplan met kleine probleempjes oplossen.)

 

Koppeling met doelen SLO:

Algoritmes en procedures ​ ​ ​

  • Kan door algoritmisch redeneren oplossingen genereren
  • Kan een proces om problemen op te lossen generaliseren, zodat het ook bij andere problemen toegepast kan worden

Automatisering   ​ ​

  • Kan mogelijke oplossingen identificeren, analyseren en implementeren met als doel de meest effectieve en efficiënte oplossing te vinden

Probleem decompositie   

  • Kan een taak opdelen in kleinere taken
  • Kan een lange lijst met opdrachten opdelen in subcategorieën

 

Onderbouw

Doelen voor de onderbouw


- Leert een simpele activiteit op te delen in deelopdrachten.
- Leert hoe deelopdrachten in een logische volgorde geplaatst kunnen worden.

Mogelijke activiteiten

Een zaadje planten (unplugged)

Help elkaar om zaadjes te planten

 

 

 

 

 

 

 

 

Middenbouw

Doelen voor de middenbouw

- Leert een grote activiteit op te delen in deelopdrachten,
- Leert een concreet probleem op te delen in deelopdrachten
- Leert deze deelopdrachten in een logische volgorde te plaatsen, in een algoritme te vertalen

 

Knikkerbaan (unplugged)

Uit welke regels en ontwerpkeuzes bestaat een knikkerbaan?

 

 

 

 

 

 

 

 

 

3. Patronen

Omschrijving