Ga naar de inhoud
Informatica · Klas 5 VWO

Ideeën voor actief leren

Polymorfisme: Eén Interface, Meerdere Vormen

Actief leren werkt bij polymorfisme omdat leerlingen door directe interactie met code de abstracte concepten van superklassen en overrides kunnen ervaren. Het manipuleren van echte voorbeelden laat zien hoe uniformiteit en flexibiliteit samengaan, wat essentieel is voor het begrijpen van late binding en uitbreidbaarheid.

SLO Kerndoelen en EindtermenSLO: Onderbouw - SamenwerkenSLO: Onderbouw - Communicatie
20–50 minDuo's → Hele klas4 activiteiten

Activiteit 01

Simulatiespel30 min · Duo's

Pair Programming: Basis Polymorfisme

Laat paren een superclass 'Vorm' maken met methode 'teken()'. Schrijf twee subklassen 'Cirkel' en 'Rechthoek' met eigen teken-implementaties. Test in een main-methode met een array van Vorm-objecten. Wissel rollen na 15 minuten.

Verklaar hoe polymorfisme de flexibiliteit en uitbreidbaarheid van een codebase vergroot.

FacilitatietipTijdens Pair Programming: Basis Polymorfisme geef je elk duo een eenvoudige code met een superklasse en twee subklassen, en laat je hen de methodeaanroepen stap voor stap doorlopen met print statements voor duidelijkheid.

Waar je op moet lettenGeef leerlingen een klein codefragment met een klassehiërarchie en een methode die polymorfisme gebruikt. Vraag hen om uit te leggen welke output de code zal produceren en waarom, specifiek verwijzend naar late binding.

ToepassenAnalyserenEvaluerenCreërenSociaal BewustzijnBesluitvorming
Volledige les genereren

Activiteit 02

Simulatiespel50 min · Kleine groepjes

Groepsproject: Dierenfarm Simulator

Verdeel small groups in rollen: één voor superclass 'Dier' met 'maakGeluid()', anderen voor subklassen 'Hond' en 'Kat'. Bouw een main die polymorfisch geluiden afspeelt. Present eer aan de klas.

Pas polymorfisme toe door objecten van verschillende subklassen via een gedeelde methode uniform te verwerken.

FacilitatietipBij het Groepsproject: Dierenfarm Simulator monitor je dat elke groep expliciet een algemene interface voor dieren definieert en deze implementeert in concrete dierklassen, met aandacht voor gelijke methodenamen maar verschillende uitvoeringen.

Waar je op moet lettenStel de vraag: 'Hoe zou het toevoegen van een nieuwe 'Vorm' (bijvoorbeeld 'Cirkel') aan een bestaand systeem dat al 'Rechthoek' en 'Driehoek' ondersteunt, worden beïnvloed door het wel of niet toepassen van polymorfisme?'. Laat leerlingen de voordelen van polymorfisme voor uitbreidbaarheid bespreken.

ToepassenAnalyserenEvaluerenCreërenSociaal BewustzijnBesluitvorming
Volledige les genereren

Activiteit 03

Simulatiespel40 min · Kleine groepjes

Code Review Rotatie: Polymorfisme Check

Groups schrijven kort polymorfisme voorbeeld, roteren naar naburige groep voor feedback op late binding en uitbreidbaarheid. Noteer sterke punten en suggesties, bespreek plenair.

Analyseer een concreet codevoorbeeld en leg uit hoe late binding polymorfisme mogelijk maakt.

FacilitatietipVoor Code Review Rotatie: Polymorfisme Check geef je leerlingen een lijst met criteria, zoals het gebruik van dezelfde interface voor verschillende objecten en de aanwezigheid van overrides, om hun eigen code kritisch te beoordelen.

Waar je op moet lettenToon een codevoorbeeld waarin een lijst met objecten van verschillende subklassen wordt doorlopen en een gemeenschappelijke methode wordt aangeroepen. Vraag leerlingen om in één zin te beschrijven wat er gebeurt tijdens de aanroep van die methode voor elk object in de lijst.

ToepassenAnalyserenEvaluerenCreërenSociaal BewustzijnBesluitvorming
Volledige les genereren

Activiteit 04

Simulatiespel20 min · Individueel

Individuele Uitdaging: Extend je Code

Leerlingen breiden eigen superclass uit met nieuwe subclass, testen polymorfisch. Deel resultaten in pairs voor snelle feedback.

Verklaar hoe polymorfisme de flexibiliteit en uitbreidbaarheid van een codebase vergroot.

FacilitatietipBij Individuele Uitdaging: Extend je Code zorg je dat leerlingen eerst een bestaande klassehiërarchie uitbreiden met een nieuwe subklasse, waarbij ze moeten kiezen tussen overerving of interface-implementatie en de gevolgen voor bestaande code moeten evalueren.

Waar je op moet lettenGeef leerlingen een klein codefragment met een klassehiërarchie en een methode die polymorfisme gebruikt. Vraag hen om uit te leggen welke output de code zal produceren en waarom, specifiek verwijzend naar late binding.

ToepassenAnalyserenEvaluerenCreërenSociaal BewustzijnBesluitvorming
Volledige les genereren

Enkele opmerkingen over deze eenheid onderwijzen

Begin met concrete voorbeelden voordat abstracte concepten worden geïntroduceerd, want leerlingen begrijpen polymorfisme beter als ze zien hoe een methodeaanroep verschillende uitvoeringen kan hebben. Vermijd het direct uitleggen van late binding als concept; laat leerlingen het mechanisme zelf ontdekken door code uit te voeren en de uitkomsten te vergelijken. Gebruik regelmatig visuele hulpmiddelen zoals stroomdiagrammen om de opeenvolging van methodeaanroepen en overrides te illustreren.

Succesvol leren blijkt wanneer leerlingen niet alleen polymorfisme kunnen uitleggen, maar ook kunnen toepassen in nieuwe situaties zonder directe instructie. Ze herkennen wanneer polymorfisme flexibiliteit biedt en wanneer overerving of interfaces noodzakelijk zijn.


Pas op voor deze misvattingen

  • Tijdens Pair Programming: Basis Polymorfisme kijken leerlingen vaak alleen naar de code en niet naar het gedrag.

    Geef elk duo een tabel waarin ze voor elk object moeten inschatten welke methode wordt aangeroepen en wat de output zal zijn, voordat ze de code uitvoeren. Bespreek daarna de verschillen tussen voorspelling en daadwerkelijke uitkomst.

  • Tijdens Code Review Rotatie: Polymorfisme Check denken leerlingen dat polymorfisme alleen werkt met overerving.

    Laat leerlingen in hun review controleren of elke subklasse de interface correct implementeert en of er code is die verschillende objecten via de interface behandelt, ook als er geen sprake is van overerving.

  • Tijdens Groepsproject: Dierenfarm Simulator veronderstellen leerlingen dat alle dieren exact hetzelfde gedrag moeten hebben.

    Stimuleer elke groep om in hun ontwerp te benadrukken dat dieren dezelfde methodes kunnen hebben (bijv. 'maakGeluid'), maar met verschillende implementaties, en laat hen deze verschillen in hun projectdocumentatie uitleggen.


Methodes gebruikt in dit overzicht