Oefenen Week 2

Oefenopdrachten

Oefenopdrachten Week 2

1

DataCleaner class

Medium

Maak een DataCleaner class met een constructor die een DataFrame accepteert. Voeg methoden toe voor: analyseer_missende_waarden(), visualiseer_missende_waarden(), verwijder_missende_waarden(), en vul_missende_waarden(methode='mean').

2

Eigen thema class

Makkelijk

Kies een thema (auto's, films, etc.) en bouw een volledige Python class met constructor, minimaal twee methoden, en maak minimaal twee objecten aan.

Quiz per niveau

Kies een niveau. Beantwoord elke vraag en klik op Controleer antwoord om het antwoord en feedback te zien.

Makkelijk (10 vragen)

1. Welk sleutelwoord gebruik je om een class te maken in Python?

Adef
Bclass
Cobject
Correct antwoord: class.

2. Wat is de constructor van een Python class?

A__start__
B__new__
C__init__
Correct antwoord: __init__.

3. Waarvoor gebruik je self in een methode?

AVoor class-attributen
BVoor het huidige object
CVoor imports
self verwijst naar de huidige instantie.

4. Welke datastructuur werkt LIFO?

AQueue
BStack
CLinked list
Een stack is Last In First Out.

5. Welk teken gebruik je voor attributen van een object?

A:
B.
C#
Met een punt roep je attributen en methoden aan.

6. Wat doet len(lijst)?

ASorteert de lijst
BGeeft lengte terug
CVerwijdert items
len geeft het aantal elementen.

7. Welke structuur herhaalt zolang een conditie waar is?

Aif
Bfor
Cwhile
while herhaalt op basis van een conditie.

8. Wat is encapsulation?

AData en gedrag bundelen
BErfenis gebruiken
CImports groeperen
Encapsulation bundelt data en methoden in een object.

9. Welke methode gebruik je vaak om een object leesbaar te printen?

A__repr__
B__len__
C__call__
__repr__ of __str__ maakt output leesbaar.

10. Wat is een instance attribute?

AAttribuut per object
BAttribuut voor alle objecten
CAlleen in functies
Instance-attributen horen bij één object.

Normaal (10 vragen)

1. Wat is het verschil tussen class- en instance-attributen?

AGeen verschil
BClass gedeeld, instance per object
CInstance gedeeld, class per object
Class-attributen zijn gedeeld door alle instanties.

2. Welke structuur is het snelst voor append en pop aan het einde?

APython list
BTuple
CString
Een list is hier geschikt.

3. Wat doet super() in een subclass?

AMaakt private variabelen
BRoept parent class functionaliteit aan
CVerwijdert parent class
super() gebruikt code uit de parent class.

4. Wanneer gebruik je polymorfisme?

AVerschillende classes met dezelfde methode-interface
BAlleen bij SQL
CAlleen bij loops
Polymorfisme: zelfde methode, verschillend gedrag.

5. Wat is een linked list node meestal?

Avalue + next
Balleen index
Calleen value
Minstens data en verwijzing naar volgende node.

6. Waarom gebruik je type hints?

AVoor runtime snelheid
BVoor duidelijkheid en tooling
CZe vervangen tests
Type hints helpen leesbaarheid en tooling.

7. Wat gebeurt er bij shallow copy van een geneste lijst?

AAlles volledig gekopieerd
BBinnenlijsten gedeeld
CNiets gekopieerd
Binnenliggende objecten blijven gedeeld.

8. Welke except vangt alle standaard exceptions?

Aexcept All
Bexcept Exception
Cexcept Any
Exception is de algemene standaardklasse.

9. Welke OOP-relatie betekent “is-a”?

ACompositie
BOvererving
CAggregatie
Overerving geeft een is-a relatie.

10. Wat is het doel van unit tests?

ACode formatteren
BKleine onderdelen automatisch valideren
CImports versnellen
Unit tests testen kleine stukjes gedrag.

Moeilijk (10 vragen)

1. Welke complexiteit heeft lineair zoeken in een linked list?

AO(1)
BO(log n)
CO(n)
Je moet mogelijk alle nodes doorlopen.

2. Wat is een voordeel van abstracte basisklassen?

ADwingen van methode-contracten
BSneller geheugen
CGeen constructor nodig
ABC's definiëren verplichte interface.

3. Wanneer is compositie beter dan overerving?

AWanneer gedrag combineerbaar moet zijn
BNooit
CAlleen bij kleine classes
Compositie geeft flexibiliteit zonder strakke hiërarchie.

4. Wat doet @property?

AMaakt methoden private
BLaat methodes als attribuut gebruiken
CVerwijdert setters
@property maakt nette getter-syntax.

5. Welke datastructuur past bij BFS?

AStack
BQueue
CSet
BFS gebruikt een queue.

6. Wat is duck typing?

AType moet exact kloppen
BGedrag belangrijker dan type
CAlleen voor dataclasses
Als het zich gedraagt als het type, werkt het.

7. Waarom dependency injectie?

ASterkere koppeling
BLosse koppeling en testbaarheid
CMinder classes
DI maakt componenten makkelijker te testen.

8. Wat test je in een integratietest?

AÉén functie
BSamenwerking tussen componenten
CAlleen style
Integratietest kijkt naar samenspel van delen.

9. Welke structuur voorkomt dubbele items en geeft snelle membership checks?

Alist
Bset
Ctuple
Set is ideaal voor unieke waarden en snelle checks.

10. Wat is een side effect in functies?

AAlleen returnwaarde
BVerandering buiten de functie
CSyntaxfout
Bijv. globale state aanpassen of I/O uitvoeren.