Een programmeerparadigma is een fundamentele manier van denken over en structureren van een programma. Dit keuzethema behandelt het imperatieve en objectgeoriënteerde paradigma (opdrachten en objecten), het functionele paradigma (functies zonder neveneffecten, recursie) en het logische/declaratieve paradigma (feiten en regels, ‘beschrijf wat, niet hoe’). Het leert je paradigma’s herkennen, vergelijken en het passende kiezen bij een probleem. Verdieping binnen het schoolexamen, bovenop het programmeren van domein D.
4 Onderdelen~13 min leestijd4 VaardighedenNiveau Basis 1 · Standaard 2 · Verdieping 1
basisniveau
Het onderscheid tussen ‘hoe’ (imperatief) en ‘wat’ (declaratief) en het begrip recursie vormen de kern.
verhoogd niveau
Pure functies, de recursieboom en declaratieve afleiding horen bij de verdieping.
Leesdiepte: Verdieping
Tekstgrootte: Standaard
Aanroepgraaf van een programma
Beschrijf de aanpak van ‘tel de woorden in een tekst’ in het imperatieve en het objectgeoriënteerde paradigma.
Houd een teller bij; doorloop de tekst woord voor woord met een lus en verhoog de teller — een reeks opdrachten die een variabele veranderen.
Maak een object Tekst met een methode telWoorden(); het object bundelt de gegevens (de tekst) met het gedrag (tellen).
Beide rekenen hetzelfde uit; het imperatieve draait om de stappen, het OO om het object dat de taak bezit.
Resultaat: Dezelfde taak, twee structuren: een reeks toestandsveranderende opdrachten versus een object met bijbehorend gedrag.
Veelgemaakte fouten
Actieve herhaling
Leg voor de taak ‘het gemiddelde cijfer van een klas berekenen’ uit hoe je die imperatief zou aanpakken en hoe objectgeoriënteerd. Benoem in beide gevallen de centrale bouwsteen.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica vwo — keuze J (imperatief en OO) (CvTE / Examenblad)
Recursieboom van fib(4)
Recursieve definitie van de faculteit
Het basisgeval 0! = 1 stopt de recursie; de stap brengt n! terug tot (n−1)!.
Bereken 4! met de recursieve definitie en laat zien hoe de aanroepen zich uitrollen en weer invullen.
4! = 4·3!; 3! = 3·2!; 2! = 2·1!; 1! = 1·0!; 0! = 1 (basisgeval, stop).
1! = 1·1 = 1; 2! = 2·1 = 2; 3! = 3·2 = 6; 4! = 4·6 = 24.
4! = 4·3·2·1 = 24, wat overeenkomt.
Resultaat: 4! = 24; de recursie rolt uit tot het basisgeval 0! = 1 en vult daarna van onder naar boven de waarden in.
Veelgemaakte fouten
Actieve herhaling
Definieer recursief de faculteit n! (met basisgeval 0! = 1 en stap n! = n · (n−1)!). Speel de berekening van 4! stap voor stap na tot het resultaat.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica vwo — keuze J (functioneel programmeren) (CvTE / Examenblad)
Afleiding in een logisch programma
Gegeven ouder(Bob, Cas), ouder(Cas, Daan) en de regel grootouder(X,Z) ← ouder(X,Y) ∧ ouder(Y,Z). Leid af wie grootouder is van Daan.
Zoek X, Y, Z zodat ouder(X,Y) én ouder(Y,Z). Kies Y = Cas, Z = Daan.
ouder(Bob, Cas) geeft X = Bob, Y = Cas; ouder(Cas, Daan) geeft Y = Cas, Z = Daan. Beide voorwaarden kloppen.
De regel besluit grootouder(Bob, Daan).
Resultaat: Bob is de grootouder van Daan — afgeleid uit de twee feiten en de grootouder-regel.
Veelgemaakte fouten
Actieve herhaling
Gegeven de feiten ‘Bob is ouder van Cas’ en ‘Cas is ouder van Daan’ en de grootouder-regel. Leid af wie de grootouder van Daan is, en benoem de regel en feiten die je gebruikt.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica vwo — keuze J (logisch/declaratief programmeren) (CvTE / Examenblad)
De vier paradigma’s vergeleken
Je moet alle leerlingen met een cijfer boven de 7 uit een database halen. Welk paradigma past en waarom?
Het gaat om het beschrijven van welke gegevens je wilt (cijfer > 7), niet om een zelfgeschreven zoekprocedure.
Dit is bij uitstek declaratief: je beschrijft het gewenste resultaat en laat het systeem zoeken.
SQL: SELECT naam FROM Leerling WHERE cijfer > 7 — kort, declaratief en dicht bij het probleem.
Resultaat: Een declaratieve aanpak (SQL) past het best: je beschrijft ‘wat’ (cijfer > 7) en de database bepaalt ‘hoe’.
Veelgemaakte fouten
Actieve herhaling
Kies voor elk probleem een passend paradigma en motiveer: (a) een databasevraag naar alle klanten uit Utrecht; (b) een grote parallelle gegevensbewerking zonder neveneffecten; (c) een puzzel met logische voorwaarden (zoals een sudoku-oplosser).
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica vwo — keuze J (paradigma’s vergelijken) (CvTE / Examenblad)
Referenties en bronnen
CvTE / Examenblad