Hoe zet je de module in?
De onderdelen kunnen deels los van elkaar ingezet worden:
- Introductie in paradigma’s: Algemene introductie, theoretisch kader. Als voorkennis is het handig al geprogrammeerd te hebben in een imperatieve of object oriented taal. Kan los van de rest ingezet worden, bijvoorbeeld als er naar een ander paradigma gekeken wordt.
- Recursie: belangrijk maar voor leerlingen vaak een lastig te begrijpen concept! Aangezien er in functionele programmeertalen geen loops bestaan is recursie bij functioneel programmeren extra belangrijk. Maar is ook los te gebruiken aan de hand van een imperatieve taal.
- Functioneel programmeren in Elm: Hiervoor is het wel nodig enige voorkennis te hebben over paradigma’s in het algemeen en het functionele paradigma in het bijzonder. Vanwege het ontbreken van loops is het belangrijk iets van recursie te weten. Zodoende is het goed eerst deel 1 en 2 door te werken.
Het materiaal is zoveel mogelijk opgezet zodat een leerling dit zelfstandig kan doorwerken. Anderzijds is dit vanwege de theoretische aard en de wiskundigheid niet geschikt voor elke leerling.
Het is daarom belangrijk dat de docent enige affiniteit met het onderwerp heeft, zodat de leerling ergens terecht kan als hij/zij vast komt te hangen. Als de leerling vragen heeft als ‘Waarom kan ik dit niet “gewoon” in [eenNietFunctioneleProgrammeertaal] doen?’ (bijvoorbeeld ‘javascript’, of ‘C#’) is het natuurlijk prettig als de docent zelf voldoende achtergrondkennis heeft om uit te leggen dat dat deels wel mogelijk is, maar dat in functionele programmeertalen geen acties beschreven worden maar dat het eindresultaat van een functie beschreven wordt, en dat dat juist de kern van het functionele paradigma is.
Er is een duidelijk verband tussen het functie-begrip, dat een centrale rol speelt in het wiskundecurriculum van HAVO en VWO, en de basisprincipes achter functioneel programmeren. Ook hier speelt een rol dat het programmeren in een functionele taal niet gaat om acties die in een bepaalde volgorde worden uitgevoerd, maar om het beschrijven van het eindresultaat. Hoewel het in elke programmeertaal tot bepaalde hoogte mogelijk is om principes uit functionele talen te gebruiken, is het goed als de docent doordrongen is van dit fundamentele verschil.