Skip to content

OOP-ontwerpprincipes: SOLIDActiviteiten & didactische strategieën

Actief leren werkt bij SOLID omdat leerlingen door directe toepassing de principes niet alleen begrijpen maar ook ervaren. Door code te schrijven, te analyseren en te refactoren, zien ze meteen hoe principes zoals SRP of OCP hun code leesbaarder en onderhoudbaarder maken. Deze hands-on aanpak bouwt vertrouwen op en maakt abstracte concepten tastbaar.

Klas 5 VWOInformatica in de Diepte: Van Algoritme tot Architectuur4 activiteiten25 min50 min

Leerdoelen

  1. 1Verklaar de vijf SOLID-principes (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) en hun belang voor softwareonderhoud.
  2. 2Analyseer bestaande code op schendingen van het Single Responsibility Principle en het Open-Closed Principle, en identificeer mogelijke verbeteringen.
  3. 3Ontwerp een klasse die voldoet aan minimaal drie SOLID-principes, met een onderbouwing van de gemaakte ontwerpkeuzes.
  4. 4Vergelijk de flexibiliteit en onderhoudbaarheid van code die SOLID-principes volgt versus code die dit niet doet.

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

30 min·Duo's

Pair Programming: SOLID-klasse Ontwerpen

Deel leerlingen in in paren. Geef een basisopdracht, zoals een bibliotheeksysteem. Elke leerling ontwerpt afwisselend een klasse die aan drie SOLID-principes voldoet, terwijl de partner feedback geeft. Sluit af met een korte presentatie van ontwerpkeuzes.

Voorbereiding & details

Verklaar de vijf SOLID-principes en geef voor elk een concreet voorbeeld in Python of Java.

Facilitatietip: Tijdens Pair Programming: SOLID-klasse Ontwerpen let op of beide leerlingen actief bijdragen aan het ontwerp en de principes toepassen in hun code.

Setup: Groepjes aan tafels met het casusmateriaal

Materials: Case study-pakket (3-5 pagina's), Werkblad met analyse-kader, Presentatie-template

AnalyserenEvaluerenCreërenBesluitvormingZelfmanagement
45 min·Kleine groepjes

Small Groups: Codebase Analyse

Verdeel de klas in kleine groepen. Geef een voorbeeldcodebase met SRP- en OCP-schendingen. Groepen identificeren problemen, documenteren ze en stellen refactor-voorstellen op. Bespreek collectief de beste oplossingen.

Voorbereiding & details

Analyseer een codebase en identificeer schendingen van het Single Responsibility Principle of het Open/Closed Principle.

Facilitatietip: Bij Small Groups: Codebase Analyse geef elke groep eenzelfde codefragment en vraag hen om overeenkomsten en verschillen in hun bevindingen te benoemen.

Setup: Groepjes aan tafels met het casusmateriaal

Materials: Case study-pakket (3-5 pagina's), Werkblad met analyse-kader, Presentatie-template

AnalyserenEvaluerenCreërenBesluitvormingZelfmanagement
50 min·Hele klas

Whole Class: SOLID Voorbeelden Bouwen

Start met een brainstorm over een game-applicatie. Bouw als klas stapsgewijs klassen op die SOLID volgen, met input van iedereen via een shared whiteboard. Test live in Python of Java en pas aan op basis van klasfeedback.

Voorbereiding & details

Ontwerp een klasse die voldoet aan minstens drie SOLID-principes en onderbouw je ontwerpkeuzes.

Facilitatietip: Tijdens Whole Class: SOLID Voorbeelden Bouwen laat leerlingen eerst individueel nadenken voordat ze in groepjes hun oplossingen vergelijken en verbeteren.

Setup: Groepjes aan tafels met het casusmateriaal

Materials: Case study-pakket (3-5 pagina's), Werkblad met analyse-kader, Presentatie-template

AnalyserenEvaluerenCreërenBesluitvormingZelfmanagement
25 min·Individueel

Individual: Refactor Oefening

Geef elke leerling een eenvoudige, niet-SOLID code. Laat ze deze refactoren volgens minstens twee principes en onderbouwen in een kort verslag. Deel vrijwillig resultaten in plenaire sessie.

Voorbereiding & details

Verklaar de vijf SOLID-principes en geef voor elk een concreet voorbeeld in Python of Java.

Facilitatietip: Bij Individual: Refactor Oefening loop rond en vraag leerlingen om hardop te denken terwijl ze hun code aanpassen, zodat je hun redenering kunt volgen.

Setup: Groepjes aan tafels met het casusmateriaal

Materials: Case study-pakket (3-5 pagina's), Werkblad met analyse-kader, Presentatie-template

AnalyserenEvaluerenCreërenBesluitvormingZelfmanagement

Dit onderwerp onderwijzen

Begin met concrete, herkenbare voorbeelden zoals een eenvoudige bibliotheekapp of een game met een spelerklasse. Vermijd eerst de termen SOLID en laat leerlingen zelf ontdekken waarom code moeilijk te onderhouden is. Gebruik hun eigen codefragmenten als vertrekpunt voor discussie. Benadruk dat principes niet alleen voor grote projecten zijn, maar dat goede gewoontes vanaf het begin code onderhoudbaarder maken. Vermijd het presenteren van alle vijf principes in één keer; introduceer ze één voor één met bijpassende oefeningen.

Wat je kunt verwachten

Succesvolle leerlingen kunnen elk SOLID-principe uitleggen met voorbeelden, codefragmenten herkennen waar principes geschonden zijn en zelf klassen ontwerpen die aan minimaal drie principes voldoen. Ze tonen dit door te discussiëren, code te presenteren en verbeteringen voor te stellen tijdens de activiteiten.

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 Pair Programming: SOLID-klasse Ontwerpen horen leerlingen vaak zeggen dat SOLID alleen voor grote projecten is.

Wat je in plaats daarvan kunt onderwijzen

Geef tijdens de praktijkfase concrete voorbeelden waar kleine scripts juist profiteren van SOLID, zoals het splitsen van een klasse die zowel data opslaat als valideert. Laat leerlingen zien hoe hun code korter en duidelijker wordt door principes toe te passen.

Veelvoorkomende misvattingTijdens Small Groups: Codebase Analyse denken leerlingen dat Single Responsibility betekent dat een klasse maar één methode mag hebben.

Wat je in plaats daarvan kunt onderwijzen

Geef in de codefragmenten voorbeelden van klassen met meerdere methoden die toch één verantwoordelijkheid hebben, zoals een klasse die alleen data opslaat en valideert. Laat leerlingen in groepjes vergelijken welke klassen wel en niet voldoen aan SRP.

Veelvoorkomende misvattingTijdens Whole Class: SOLID Voorbeelden Bouwen geloven leerlingen dat Open-Closed Principle wijzigingen aan code volledig verbiedt.

Wat je in plaats daarvan kunt onderwijzen

Gebruik tijdens de voorbeeldoefening een codefragment waar een klasse uitgebreid kan worden zonder de originele code aan te passen. Laat leerlingen zien hoe nieuwe functionaliteit toegevoegd wordt via overerving of interfaces, terwijl de kernintact blijft.

Toetsideeën

Peerbeoordeling

Na Small Groups: Codebase Analyse laat elk tweetal hun bevindingen presenteren en laat de klas stemmen op de meest overtuigende verbetering. Vraag hen om te benoemen welke principes geschonden waren en hoe de code aangepast is.

Uitgangskaart

Tijdens Individual: Refactor Oefening geef je een kaartje met een scenario zoals een klasse die zowel data opslaat als afdrukt. Vraag leerlingen om één principe te noemen dat geschonden wordt en hoe ze de klasse zouden opsplitsen. Verzamel de kaartjes en gebruik ze om veelvoorkomende misvattingen te bespreken.

Discussievraag

Tijdens Whole Class: SOLID Voorbeelden Bouwen start je een discussie met de vraag of leerlingen SOLID-principes zouden negeren bij een krappe deadline. Stimuleer hen om te reflecteren op de lange-termijn gevolgen en laat hen voorbeelden noemen van code die ze later moesten aanpassen door gebrek aan SOLID.

Uitbreidingen & ondersteuning

  • Laat leerlingen die snel klaar zijn een extra SOLID-principe toepassen op hun ontwerp en leg uit hoe dit hun code verder verbetert.
  • Voor leerlingen die moeite hebben, geef een codefragment waar één principe duidelijk wordt geschonden en vraag hen om alleen dat principe te herstellen.
  • Extra tijd? Laat leerlingen een eigen project bedenken waarin ze minstens drie SOLID-principes toepassen en presenteer hun ontwerp aan de klas.

Kernbegrippen

Single Responsibility Principle (SRP)Een klasse mag slechts één reden hebben om te veranderen; ze voert één specifieke taak uit.
Open-Closed Principle (OCP)Software-entiteiten (klassen, modules, functies) moeten open zijn voor uitbreiding, maar gesloten voor wijziging.
Liskov Substitution Principle (LSP)Subklassen moeten vervangbaar zijn voor hun basistypen zonder dat dit leidt tot onverwacht gedrag of fouten.
Interface Segregation Principle (ISP)Clients mogen niet gedwongen worden afhankelijk te zijn van interfaces die ze niet gebruiken; maak kleine, specifieke interfaces.
Dependency Inversion Principle (DIP)Modulen op hoog niveau mogen niet afhankelijk zijn van modulen op laag niveau. Beide moeten afhankelijk zijn van abstracties.

Klaar om OOP-ontwerpprincipes: SOLID te onderwijzen?

Genereer een volledige missie met alles wat je nodig hebt

Genereer een missie