Voor wie
Leerlingen havo en vwo, 5e of 6e klas.
Beschikbaarheid
Sinds maart 2020
Waarschijnlijk heb je al een beetje leren programmeren. In deze module leer je op een heel andere manier programmeren: namelijk functioneel. Het mooie van functioneel programmeren is dat je sommige problemen relatief makkelijk kunt oplossen. Denk bijvoorbeeld aan het sorteren van een rij namen. En misschien ken je het probleem van de torens van Hanoi wel: je moet de schrijven verplaatsen van pilaar 1 naar pilaar 3. Je mag echter maar één schijf per keer verplaatsen en een grotere schijf mag nooit op een kleinere schijf. Hoe pak je dat aan? Met functioneel programmeren kun je dit probleem snel oplossen.
Recursie speelt een belangrijke rol bij functioneel programmeren. Dat betekent dat je programmaatjes maakt die weer gebruik maken van het programmaatje zelf. Dat klinkt misschien wat vaag, in de module krijg je allerlei voorbeelden.
Met slechts één regel code kun je een programma maken waarmee je de Rij van Fibonnaci kunt bepalen: elk getal is de som van de vorige twee getallen:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, …
Je kunt er ook recursieve figuren mee maken, zoals de onderstaande kristal. Misschien zie je al op wat voor manier recursie is gebruikt bij het maken van deze kristal.
De module vertelt je ook welke andere vormen van programmeren er nog meer zijn. Dus als je je programmeerkennis wilt verbreden, dan is deze module wat voor jou.
Activiteiten
Dit zijn de belangrijkste activiteiten binnen de module.
- De module neemt je stap voor stap mee in het functioneel programmeren.
- Je moet steeds gelijk toepassen wat je leert.
- In de module staan allerlei voorbeelden van programma’s.
- Aan het eind van de module maak je een wat uitgebreider programma.
Locatie materiaal
De module functioneel programmeren voor leerlingen hier te vinden
Het bronmateriaal is te vinden op GitHub Keuzethemas Funtioneel Elm.
Voor de docent
Opbouw
De module bestaat uit de volgende hoofdstukken:
- Programmeerparadigma’s: een inleiding in de verschillende manieren van programmeren die er zijn.
- Recursie: met allerlei voorbeelden en oefenopgaven om problemen op te lossen met recursie
- Basis van ELM: introductie in de functionele programmeertaal ELM
- Toepassingen: je maakt één of meerdere uitgebreidere toepassingen
Vereiste hard- en software
De online omgeving draait op software van Jupyter Notebook. Een voorbeeld is in te zien via het lesmateriaal. Het wordt echter aanbevolen om een eigen installatie te maken.
De leerlingen hebben een GitHub account nodig. Ze kunnen dan in de browser direct programmeren in de taal ELM.
Voorkennis
We gaan er vanuit dat je al wel een basis hebt in programmeren en bekend bent met variabelen, keuze, herhaling en functies.
Belangrijkste begrippen
De belangrijkste begrippen bij deze module zijn Programmeerparadigma’s, functioneel, recursie, staartrecursie, wederzijdse recursie, functies, lijsten, generaties programmeertalen, imperatief vs declaratief programmeren, procedureel programmeren, object georiënteerd programmeren, logisch programmeren.
Keuze en verdieping
Met de toepassingen aan het eind van de module kunnen leerlingen zich verder verdiepen.
Wijze van beoordelen
De module bevat geen toets. Beoordeling kan eventueel op basis van het afronden van één van de toepassingen aan het eind van de module.
Omvang
De module is ongeveer 40 SLU.
Docentenhandleiding
De docentenhandleiding is op aanvraag verkrijgbaar.