Object-Oriëntatie

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.

Vereiste voorkennis

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

Leerdoelen

In deze cursus leer je op objectgeoriënteerd wijze programma’s te ontwerpen en te implementeren. Dit betekent dat:

  • Je een nieuw programma kunt opzetten, een bestaand (al dan niet objectgeoriënteerd) programma kunt uitbreiden of herstructureren, dit alles op een objectgeoriënteerde wijze.
  • Je gebruikt hierbij klassen en encapsulatie om het programma op te splitsen in delen waarbij de onderlinge afhankelijkheid geminimaliseerd is. Een voorbeeld van minimalisatie is de strikte scheiding tussen de toestand van een programma en de interactie met de gebruiker.
  • Je gebruikt hierbij concepten als inheritance en interfaces op zinvolle wijze.
  • Je kent het geheugenmodel van Java en kan dat effectief gebruiken (objecten, statics, basic types en basic values, references, etc.).
  • Je kunt klassen veralgemeniseren middels generics.
  • Je gebruikt enumeratie types, inclusief attributen en methodes, voor zover zinvol.
  • Je kent een aantal veelgebruikte datastructuren, waaronder de verschillende collections en bijbehorende iterators en kunt die gemotiveerd toepassen. Je kunt ook zelf een (eenvoudige) recursieve datatypes maken en gebruiken.
  • Je kent de in de cursus besproken software design patterns in Java, herkent waar deze gebruikt kunnen worden en past ze vervolgens correct toe.
  • Je kunt UML gebruiken bij het ontwerp van een objectgeoriënteerd programma en efficiënt schakelen tussen de specificatie in UML en de implementatie in Java.
  • Met JUnit kun je effectieve tests voor klassen implementeren.
  • Je kunt een GUI bouwen met behulp van een objectgeoriënteerd framework.
  • Je kunt een programma opdelen in threads, deze threads synchroniseren om race-condities te vermijden op een dusdanige wijze dat er geen deadlocks op kunnen treden

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.

Onderwerpen

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

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 deze te maken. 

Literatuur

Java How To Program (Early Objects), Global Edition, Harvey DeitelPaul Deitel 

Bijzonderheden

Deze cursus maakt deel uit van de propedeuse Informatica.
De cursus is ook een verplicht onderdeel van de bachelor Kunstmatige Intelligentie. 


Vakcode
NWI-IPI005
Studiepunten
6 ec
Periode
tweede semester
Collegerooster opvragen
SWS / PersoonlijkRooster

Docenten

Opgenomen in