Skip to content
Informatica · Klas 5 VWO

Ideeën voor actief leren

Overerving en de 'is-een'-Relatie

Actief leren werkt voor dit onderwerp omdat overerving en de 'is-een'-relatie abstracte concepten zijn die het best worden begrepen door directe toepassing. Door te bouwen, te debatteren en te refactoren, ervaren leerlingen de praktische implicaties van deze concepten in plaats van alleen theorie te horen.

SLO Kerndoelen en EindtermenSLO: Onderbouw - ProgrammerenSLO: Onderbouw - Modelleren
20–45 minDuo's → Hele klas4 activiteiten

Activiteit 01

Pair Programming: Klassenhiërarchie Bouwen

Deel leerlingen in in paren en laat ze een superklasse Voertuig maken met attributen als snelheid en kleur. Bouw subklassen Auto en Fiets die methoden erven en eigen gedrag toevoegen, zoals claxonneren of trappen. Test de hiërarchie door objecten te instantiëren en methoden aan te roepen.

Verklaar de 'is-een'-relatie en geef een voorbeeld van een correcte en een onjuiste toepassing van overerving.

FacilitatietipGeef tijdens de Pair Programming-opdracht duidelijke voorbeeldklassen mee, zoals Voertuig en Auto, zodat leerlingen een concreet startpunt hebben.

Waar je op moet lettenGeef leerlingen twee klassenvoorbeelden: A) Een 'Auto' die overerft van 'Voertuig' en B) Een 'Boek' dat overerft van 'Schrijver'. Vraag hen op te schrijven welke van de twee een correcte 'is-een'-relatie toont en waarom. Geef daarnaast een voorbeeld van een onjuiste overerving.

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
Volledige les genereren

Activiteit 02

Denken-Delen-Uitwisselen30 min · Kleine groepjes

Small Groups: Voordelen Nadelen Debat

Verdeel de klas in kleine groepen en geef elke groep een scenario met diepe overerving. Laat ze voor- en nadelen opsommen, zoals hergebruik versus complexiteit. Presenteer bevindingen aan de klas en bespreek alternatieven als compositie.

Implementeer een klassenhiërarchie waarbij een subklasse methoden erft en eigen attributen en gedrag toevoegt.

FacilitatietipStel tijdens het debat expliciete eisen aan argumenten, zoals 'noem minstens één voorbeeld uit een echt project'.

Waar je op moet lettenStart een klassengesprek met de vraag: 'Wanneer kan overerving in een groot softwareproject leiden tot onverwachte problemen?' Laat leerlingen voorbeelden bedenken van situaties waarin een diepe of incorrecte klassenhiërarchie het onderhoud bemoeilijkt, en bespreek mogelijke alternatieven.

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
Volledige les genereren

Activiteit 03

Denken-Delen-Uitwisselen20 min · Individueel

Individual: Refactoring Oefening

Geef leerlingen een vlakke code met duplicatie. Laat ze deze refactoren tot een hiërarchie met correcte 'is-een'-relaties. Vergelijk voor en na in een korte reflectie.

Analyseer de voor- en nadelen van diepe overerving in een groot softwareproject.

FacilitatietipGeef bij de refactoring-opdracht een incomplete of slecht gestructureerde code-snippet die leerlingen moeten herstructureren.

Waar je op moet lettenToon een eenvoudige code-snippet met een superklasse (bv. 'Persoon' met 'naam' en 'stelNaam()') en twee subklassen ('Student' en 'Docent') die deze overerven en een eigen methode toevoegen (bv. 'studeer()' voor Student, 'geefLes()' voor Docent). Vraag leerlingen om in tweetallen te beschrijven welke delen van de code door de subklassen worden geërfd en welk nieuw gedrag specifiek is voor elke subklasse.

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
Volledige les genereren

Activiteit 04

Denken-Delen-Uitwisselen25 min · Hele klas

Whole Class: Live Coding Demo

Demonstreer stapsgewijs een verkeerde en correcte overerving in een gedeeld IDE. Laat de klas stemmen op keuzes en voorspellen uitkomsten voordat je runt.

Verklaar de 'is-een'-relatie en geef een voorbeeld van een correcte en een onjuiste toepassing van overerving.

FacilitatietipMaak bij de Live Coding Demo een bewuste fout in de code en laat leerlingen meedenken over de oorzaak en oplossing.

Waar je op moet lettenGeef leerlingen twee klassenvoorbeelden: A) Een 'Auto' die overerft van 'Voertuig' en B) Een 'Boek' dat overerft van 'Schrijver'. Vraag hen op te schrijven welke van de twee een correcte 'is-een'-relatie toont en waarom. Geef daarnaast een voorbeeld van een onjuiste overerving.

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
Volledige les genereren

Enkele opmerkingen over deze eenheid onderwijzen

Begin met eenvoudige voorbeelden en breid langzaam uit naar complexere hiërarchieën. Vermijd het introduceren van te diepe hiërarchieën in één keer, omdat dit frustratie en misverstanden kan veroorzaken. Gebruik analogieën uit het dagelijks leven, zoals 'een hond is een dier', om het concept te verduidelijken. Laat leerlingen vaak code uitvoeren en testen om directe feedback te krijgen.

Succesvolle leerlingen kunnen een klassenhiërarchie correct implementeren, de 'is-een'-relatie toepassen en uitleggen wanneer overerving wel of niet geschikt is. Ze tonen dit door code te schrijven, te analyseren en te verdedigen, waarbij ze rekening houden met leesbaarheid en onderhoud.


Pas op voor deze misvattingen

  • Tijdens de Pair Programming-opdracht zien leerlingen vaak overerving als dé oplossing voor code-duplicatie, zonder na te denken over de relatie tussen klassen.

    Geef leerlingen een checklist mee met criteria voor een geldige 'is-een'-relatie en laat ze deze toepassen op hun ontwerp tijdens het bouwen.

  • Tijdens de Pair Programming-opdracht negeren leerlingen soms de implicaties van overschrijven van methoden in subklassen.

    Geef leerlingen de opdracht om na het schrijven van code een testcase te maken die het verschil tussen geërfde en overschreven methoden demonstreert.

  • Tijdens het Voordelen Nadelen Debat wordt diepe overerving vaak als vanzelfsprekend efficiënt gezien zonder concrete voorbeelden.

    Laat leerlingen in kleine groepen een bestaande codebase analyseren en identificeren waar diepe overerving tot onderhoudsproblemen leidt.


Methodes gebruikt in dit overzicht