Praktijkopdrachten
Pas je OOP-kennis toe in realistische scenario's. Deze opdrachten helpen je de concepten van klassen, objecten, attributen en methoden in de praktijk te brengen.
Belangrijk
Chatbots gebruiken mag. Gebruik het om feedback te krijgen op code of om een concept uit te leggen, niet om opdrachten te laten maken.
Praktijkopdracht 1: Huisdieren Kennel
Doel: Een systeem bouwen dat meerdere huisdieren kan beheren met OOP concepten zoals klassen, objecten, attributen en methoden.
Stappenplan
- Maak een klasse
Huisdiermet attributen: naam, soort (hond/kat/etc.), leeftijd, en energie_level (start op 100) - Voeg een constructor toe die naam, soort en leeftijd accepteert
- Voeg een methode
speel()toe die 15 energie verbruikt en een bericht teruggeeft - Voeg een methode
slaap()toe die 30 energie herstelt (max 100) - Maak minimaal 3 verschillende huisdier-objecten aan
- Test alle methoden door ze aan te roepen en de output te printen
Deliverable
Een Python bestand (huisdieren_kennel.py) met:
- De complete Huisdier klasse
- Minimaal 3 object-instanties
- Demonstratiecode die de methoden test
Checklist
- Klasse heeft correcte naam en syntax
- Constructor accepteert alle vereiste parameters
- Alle attributen zijn correct gedefinieerd met self
- speel() methode vermindert energie correct
- slaap() methode herstelt energie (max 100)
- Minimaal 3 objecten aangemaakt
- Code is getest en werkt
Praktijkopdracht 2: Data Science Student Tracker
Doel: Een klasse maken die Data Science studenten modelleert, gebaseerd op de ADSAI opleiding structuur uit de PowerPoints.
Stappenplan
- Maak een klasse
ADSAIStudent - Attributen: naam, studentnummer, behaalde_leeruitkomsten (start als lege lijst), studie_uren (start op 0)
- Methode
studeer(uren): voegt uren toe aan studie_uren, print een bericht - Methode
behaal_leeruitkomst(nummer): voegt leeruitkomst nummer toe aan de lijst - Methode
status(): toont naam, totale studie-uren en aantal behaalde leeruitkomsten - Maak 2 student-objecten en simuleer hun studieproces
Deliverable
Een Python bestand (adsai_tracker.py) met:
- De complete ADSAIStudent klasse
- 2 student-objecten met gesimuleerde studieactiviteiten
- Output die de voortgang van beide studenten toont
Checklist
- Klasse heeft alle vereiste attributen
- studeer() methode werkt correct
- behaal_leeruitkomst() voegt toe aan lijst
- status() toont alle relevante informatie
- 2 objecten aangemaakt met testdata
Praktijkopdracht 3: Energie Systeem Uitbreiden
Doel: De Hond-klasse uit de les uitbreiden met extra functionaliteit, gebaseerd op het energie-systeem concept.
Stappenplan
- Begin met de Hond-klasse uit de les (met naam, hoogte, gewicht, energie_level en ren() methode)
- Voeg attribuut
honger_leveltoe (start op 0, max 100) - Pas
ren()aan: verhoogt ook honger_level met 10 - Voeg methode
eet()toe: verlaagt honger_level met 30 (min 0) en herstelt 10 energie - Voeg methode
status()toe: toont naam, energie_level en honger_level - Test met Bella en Kees: laat ze rennen, eten, en toon hun status
Deliverable
Een Python bestand (hond_uitgebreid.py) met:
- De uitgebreide Hond klasse
- Bella en Kees objecten (70cm/28kg en 40cm/25kg)
- Simulatie die rennen en eten combineert
Checklist
- honger_level attribuut correct geïmplementeerd
- ren() beïnvloedt zowel energie als honger
- eet() werkt correct met grenzen (min 0)
- status() toont alle relevante info
- Bella en Kees hebben correcte waarden
- Simulatie demonstreert alle functionaliteit
Praktijkopdracht 4: OOP Begrippen Documentatie
Doel: Een eigen documentatie maken van OOP begrippen, gebruikmakend van de definities uit de les.
Stappenplan
- Maak een Python bestand met docstrings die elk OOP begrip uitleggen
- Voor elk begrip (Klasse, Object, Attribuut, Methode, Constructor): schrijf een definitie en een codevoorbeeld
- Gebruik de definities uit de les als basis
- Bedenk voor elk begrip een eigen voorbeeld (niet de Hond-klasse)
- Voeg comments toe die uitleggen wat elke regel doet
Deliverable
Een Python bestand (oop_documentatie.py) met:
- Docstrings voor elk OOP begrip
- Een eigen voorbeeld-klasse (niet Hond)
- Uitgebreide comments
Checklist
- Alle 5 begrippen zijn gedocumenteerd
- Definities zijn correct (gebaseerd op les)
- Eigen voorbeeld-klasse is origineel
- Comments zijn duidelijk en behulpzaam
- Code is uitvoerbaar zonder errors