Skip to content

Overerving en de 'is-een'-RelatieActiviteiten & didactische strategieën

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.

Klas 5 VWOInformatica in de Diepte: Van Algoritme tot Architectuur4 activiteiten20 min45 min

Leerdoelen

  1. 1Verklaar de 'is-een'-relatie en identificeer correcte en incorrecte toepassingen van overerving in codevoorbeelden.
  2. 2Implementeer een klassenhiërarchie in een programmeertaal, waarbij een subklasse methoden van de superklasse overerft en eigen attributen en gedrag toevoegt.
  3. 3Analyseer de impact van diepe overerving op de leesbaarheid en onderhoudbaarheid van een grotere codebase, en formuleer aanbevelingen.
  4. 4Compareer de voordelen van overerving voor codehergebruik met de potentiële nadelen van complexe hiërarchieën.

Wil je een compleet lesplan met deze leerdoelen? Genereer een missie

45 min·Duo's

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.

Voorbereiding & details

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

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

Setup: Standaard lokaalopstelling; leerlingen draaien zich naar hun buurman of buurvrouw

Materials: Discussievraag (geprojecteerd of geprint), Optioneel: invulblad voor tweetallen

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
30 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.

Voorbereiding & details

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

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

Setup: Standaard lokaalopstelling; leerlingen draaien zich naar hun buurman of buurvrouw

Materials: Discussievraag (geprojecteerd of geprint), Optioneel: invulblad voor tweetallen

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
20 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.

Voorbereiding & details

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

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

Setup: Standaard lokaalopstelling; leerlingen draaien zich naar hun buurman of buurvrouw

Materials: Discussievraag (geprojecteerd of geprint), Optioneel: invulblad voor tweetallen

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden
25 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.

Voorbereiding & details

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

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

Setup: Standaard lokaalopstelling; leerlingen draaien zich naar hun buurman of buurvrouw

Materials: Discussievraag (geprojecteerd of geprint), Optioneel: invulblad voor tweetallen

BegrijpenToepassenAnalyserenZelfbewustzijnRelatievaardigheden

Dit onderwerp 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.

Wat je kunt verwachten

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.

Deze activiteiten zijn een startpunt. De volledige missie is de ervaring.

  • Compleet facilitatiescript met docentendialogen
  • Printklaar leerlingmateriaal, klaar voor de klas
  • Differentiatiestrategieën voor elk type leerling
Genereer een missie

Pas op voor deze misvattingen

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

Wat je in plaats daarvan kunt onderwijzen

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

Veelvoorkomende misvattingTijdens de Pair Programming-opdracht negeren leerlingen soms de implicaties van overschrijven van methoden in subklassen.

Wat je in plaats daarvan kunt onderwijzen

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

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

Wat je in plaats daarvan kunt onderwijzen

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

Toetsideeën

Uitgangskaart

Na de Pair Programming-opdracht krijgen leerlingen twee klassenvoorbeelden: een correcte 'Auto' die overerft van 'Voertuig' en een incorrecte 'Boek' die overerft van 'Schrijver'. Ze schrijven op welke relatie klopt en waarom, en geven een voorbeeld van een onjuiste overerving.

Discussievraag

Tijdens het Voordelen Nadelen Debat start de docent een klassengesprek met de vraag: 'Wanneer kan overerving leiden tot onverwachte problemen in een groot project?' Leerlingen bedenken situaties waarin diepe of incorrecte hiërarchieën onderhoud bemoeilijken en bespreken alternatieven.

Snelle Controle

Tijdens de Live Coding Demo toont de docent een code-snippet met een superklasse 'Persoon' en twee subklassen 'Student' en 'Docent'. Leerlingen beschrijven in tweetallen welke delen van de code geërfd worden en welk gedrag specifiek is voor elke subklasse.

Uitbreidingen & ondersteuning

  • Vraag leerlingen die klaar zijn om een extra subklasse toe te voegen met unieke functionaliteit, zoals een 'ElektrischeAuto' met een oplaadmethode.
  • Voor leerlingen die vastlopen: geef een stap-voor-stap voorbeeld van een eenvoudige hiërarchie en laat ze deze eerst nabouwen voordat ze zelfstandig werken.
  • Laat extra tijdnemers een presentatie voorbereiden waarin ze een eigen klassenhiërarchie uitleggen en verdedigen aan de klas.

Kernbegrippen

OverervingEen mechanisme in objectgeoriënteerd programmeren waarbij een klasse (subklasse) eigenschappen en gedrag van een andere klasse (superklasse) overneemt. Dit bevordert codehergebruik.
'is-een'-relatieEen conceptuele relatie tussen klassen die aangeeft dat een subklasse een specifieker type is van de superklasse. Bijvoorbeeld: een 'Hond' is een 'Dier'.
SubklasseEen klasse die eigenschappen en methoden overerft van een andere klasse. Wordt ook wel afgeleide klasse of kindklasse genoemd.
SuperklasseDe klasse waarvan een andere klasse eigenschappen en methoden overerft. Wordt ook wel basisklasse of ouderklasse genoemd.
KlassenhiërarchieEen gestructureerde opstelling van klassen waarbij de relaties tussen superklassen en subklassen duidelijk zijn, vaak weergegeven als een boomstructuur.

Klaar om Overerving en de 'is-een'-Relatie te onderwijzen?

Genereer een volledige missie met alles wat je nodig hebt

Genereer een missie