NWI-IPI005
Object Orientation
Cursus informatieRooster
CursusNWI-IPI005
Studiepunten (ECTS)6
CategorieB1 (Eerste jaar bachelor)
VoertaalEngels
Aangeboden doorRadboud Universiteit; Faculteit der Natuurwetenschappen, Wiskunde en Informatica; Informatica en Informatiekunde;
Docenten
Coördinator
dr. P.W.M. Koopman
Overige cursussen docent
Contactpersoon van de cursus
dr. P.W.M. Koopman
Overige cursussen docent
Docent
dr. P.W.M. Koopman
Overige cursussen docent
Docent
dr. J.E.W. Smetsers
Overige cursussen docent
Collegejaar2017
Periode
KW3-KW4  (05-02-2018 t/m 02-09-2018)
Aanvangsblok
KW3
Onderwijsvorm
voltijd
OpmerkingMet ingang van 2017 wordt deze cursus in het Engels gegeven.
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
WachtlijstNee
Plaatsingsprocedure-
Cursusdoelen
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
Inhoud
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.
Bijzonderheden
Deze cursus maakt deel uit van de propedeuse Informatica. en van de bachelor Kunstmatige Intelligentie. Voor de cursus Object Orientatie voor Science studenten, zie NWI-MOL098,

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)

Toetsinformatie
De cursus wordt afgesloten met een schriftelijk (digitaal) 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.

Voorkennis
Het kunnen programmeren in een imperatieve taal, bijvoorbeeld, door de cursus 'Imperatief Programmeren' met goed gevolg te hebben afgerond.

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

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.

Aanbevolen materiaal
Boek
Introduction to Java Programming, Comprehensive Version: Global Edition, 10/e, Y Daniel Liang, ISBN: 9781292070018

Werkvormen
Computerpracticum

Cursusgebeurtenis

Hoorcollege

Werkcollege

Zelfstudie

Toetsen
Tentamen
Weging1
ToetsvormDigitale toets met TAO
GelegenhedenBlok KW4, Blok KW4