Object-Oriëntatie

Inleiding

Objecten en hun relaties geven een conceptueel raamwerk dat zowel voor analyse, ontwerp als voor implementatie gebruikt kan worden. In deze cursus leer je de beginselen van het OO analyseren (OOA) en ontwerpen (OOD). Je leert ook deze ontwerpen te realiseren in een objectgeoriënteerd programma.

Abstractie en encapsulatie zijn de belangrijkste eigenschappen van het object-georiënteerde paradigma. Via deze concepten geeft men een voorstelling van het gedrag en de structuur van een object los van zijn realisatie. Deze cursus is gericht op het ontwikkelen van objectgerichte ontwerp- en programmeervaardigheden. De programmeertaal die gebruikt wordt is Java. In deze taal staat het begrip klasse centraal. Een klasse is een blauwdruk voor de objecten. Deze bestaat uit attributen (de toestand van het object) gebundeld met operaties (de zogeheten methoden) waarmee we een object kunnen bewerken.

Leerdoelen

  • voor een gegeven probleem een objectgeoriënteerd ontwerp maken dat een bruikbare basis vormt voor een implementatie
  • het ontwerp realiseren als een java programma
  • toepassingen van klassehiërarchieën herkennen en realiseren
  • abstraheren via klassen
  • complexere bibliotheken gebruiken
  • componenten van bestaande objectgeoriënteerde systemen analyseren, begrijpen, aanpassen en uitbreiden
  • UML diagrammen gebruiken om een OO programma te ontwerpen
  • enkele belangrijke OO patterns kunnen toepassen (MVC, observer, strategy, decorator)
  • basisprincipes van threads kunnen gebruiken
  • kwaliteitseisen (zoals geschiktheid, correctheid, en complexiteit) aan een algoritme of programma benoemen en verifiëren

Onderwerpen

  • typen, klassen, objecten, methoden, attributen
  • controlstructuren en datastructuren van Java
  • abstractie en overerving
  • input/output en grafische interfaces
  • iterators
  • interfaces en implementaties hiervan
  • threads
  • exceptions
  • objectgeoriënteerd analyseren en ontwerpen
  • design patterns
  • testen (Junit)
  • documentatie (JavaDoc)
  • verschillen en overeenkomsten met C++

Werkvormen

  • 64 uur computerpracticum
  • 32 uur hoorcollege
  • 32 uur werkcollege
  • 40 uur zelfstudie

Toelichting werkvormen

In deze cursus staat het practicum centraal: ontwerpen en implementeren van algoritmen leer je vooral door te oefenen. De wekelijkse hoorcolleges hebben een ondersteunende functie: hierin worden de hoofdpunten van de leerstof toegelicht. Aan de hand van kleine oefeningen worden basisvaardigheden aangeleerd die verder worden toegepast in grotere practicumopdrachten. Tijdens het werk/responsiecollege worden de kleinere oefenopdrachten nabesproken en er wordt vooruitgekeken naar de eindopdrachten en eventueel teruggeblikt op de vorige opdracht.

Toetsvorm

De cursus wordt afgesloten met een schriftelijk tentamen. Om te worden toegelaten tot het tentamen dien je serieus aan het practicum te hebben deelgenomen.  Dit houdt in dat je alle practicumopdrachten moet hebben gemaakt danwel een aantoonbare serieuze poging hebt ondernomen om de opdrachten te maken. 

Vereiste voorkennis

Het kunnen programmeren in een imperatieve taal, bijvoorbeeld, door de cursussen 'Imperatief Programmeren 1 en 2' met goed gevolg te hebben afgerond.

Literatuur

Wordt later bekend gemaakt.

Bijzonderheden

Deze cursus maakt deel uit van de propedeuse Informatica.
De cursus is ook een verplicht onderdeel van de bachelor Kunstmatige Intelligentie. vanaf 2013 wordt deze cursus als lintvak in de lente aangeboden.

Vakcode
NWI-IPI005
Studiepunten
6 ec
Periode
tweede semester

Docenten

Opgenomen in