Geavanceerd objectgeoriënteerd programmeren

Geavanceerd objectgeoriënteerd programmeren

  • Informatica
  • IB0902
  • 5 EC
  • Vanaf € 352
  • Voor dit product gelden ingangseisen
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Let op: heb je deze cursus al een keer vóór het academisch jaar 2022-2023 gevolgd dan raden we aan om bij een herinschrijving het studiemateriaal opnieuw tijdens het aanmeldproces te bestellen, omdat het materiaal vanaf juli 2022 is gewijzigd.

Inhoud

De cursus bestaat uit vier blokken.
Het grootste deel van het eerste blok is gewijd aan de vraag wat een goed programma is en het typesysteem van Java. De eisen waaraan een goed programma dient te voldoen, beschrijven we in de vorm van specificaties die de basis vormen voor de implementatie en het ontwikkelen van bijbehorende testcases. Als onderdeel van het typesysteem wordt overerving behandeld. Dynamische binding van methoden is daarbij een sleutelbegrip. Vervolgens komen abstracte klassen en interfaces aan de orde, begrippen die een belangrijke rol spelen bij het definiëren van zogeheten ontwerppatronen: schematische oplossingen voor veelvoorkomende problemen. Het blok eindigt met een korte behandeling van Generics: de uitbreiding van Java die het gebruik van typeparameters mogelijk maakt.

Het tweede blok gaat over soorten fouten die kunnen optreden en hoe deze afgehandeld kunnen worden, bijvoorbeeld met behulp van exceptions. Er wordt onder meer kort ingegaan op debuggen en testen.

Blok drie biedt een inleiding in het programmeren met threads, waardoor concurrency mogelijk wordt. We gaan in op wat concurrency precies is en geven aan hoe een concurrent programma met behulp van Java’s Executor Framework gemaakt kan worden. Concurrent programma’s zijn complex en kunnen subtiele fouten bevatten. Daarom beschrijven we hoe u een eenvoudig concurrent programma kunt analyseren.

Het laatste blok behandelt de constructie van gebruikersinterfaces. In twee leereenheden wordt ingegaan op het werken met Swing-componenten; ook het event-handling-mechanisme komt daarbij aan de orde. De laatste leereenheid gaat in op hoe de cohesie en koppeling van OO-programma’s verbeterd kan worden en behandelt als toepassing daarvan het Observer-patroon, een veelgebruikt en belangrijk ontwerppatroon dat het mogelijk maakt om de domeinlaag onafhankelijk te houden van de gebruikersinterface, en het Model-View-Controller-patroon, een veelgebruikte architectuur voor het scheiden van verantwoordelijkheden.

Leerdoelen
Na het volgen van deze cursus kun je:
- een contract voor een klasse en methode interpreteren,
- op basis van een contract een implementatie geven en bijbehorende tests opstellen,
- overerving (inclusief het gebruik van abstracte klassen en interfaces), exception handling en threads begrijpen en toepassen,
- eenvoudige generieke klassen definiëren,
- uitleggen hoe in objectgeoriënteerde programma’s gebruikgemaakt kan worden van programmeren tegen een interface,
- een eenvoudig concurrent programma programmeren,
- met behulp van de package javax.swing zelf een grafische gebruikersinterface programmeren,
- een programma op cohesie en koppeling beoordelen en dat programma verbeteren,
- het MVC-model en het Observerpatroon toepassen.

Ingangseisen

Aanmelden voor deze cursus kan pas nadat je de cursus Objectgeoriënteerd programmeren (IB1102) conform je online studiepad hebt afgerond, dan wel hebt vrijgesteld gekregen dan wel daarvoor bent ingeschreven (en je die cursus grotendeels bestudeerd hebt).

Toelichting aanmelden

Deze cursus is reeds gestart en wordt pas in het volgend academisch jaar opnieuw aangeboden.

Deze cursus wordt eenmaal per academisch jaar aangeboden.

Voorkennis

De cursus is een direct vervolg op Objectgeoriënteerd programmeren (IB1102). De cursus kan pas bestudeerd worden als deze cursus is afgerond, of als op andere wijze voldoende basiskennis van objectoriëntatie en de taal Java is verworven.
Kennis van UML-klassendiagrammen op het niveau van de cursus Objectgeoriënteerd analyseren en ontwerpen (IB1002) wordt sterk aangeraden.

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Er zijn vijf online begeleidingssessies via Collaborate en standaardbegeleiding via de discussiegroep.

Begeleidingsbijeenkomsten



Studiedag Informatica en Informatiekunde Utrecht, onder voorbehoud
Kwartiel 3 - begeleider: dhr.ir. H. Passier
vr 16-2-2024 / startbijeenkomst / tijd ntb
Tijdig aanmelden via: ou.nl/inf-studiedag

Online-bijeenkomsten
Kwartiel 3 - begeleider: dhr.ir. H. Passier
1. di 27-02-2024 / 19.30-21.30 uur
2. di 05-03-2024 / 19.30-21.30 uur
3. di 19-03-2024 / 19.30-21.30 uur
4. di 02-04-2024 / 19.30-21.30 uur
5. di 16-04-2024 / 19.30-21.30 uur


Tentamenvorm

Digitaal groepstentamen met open vragen en een opdracht.

Tentamentoelichting

U dient zelf tijdig aan te melden voor een tentamen.

Tentamendata

Digitaal groepstentamen: 24-04-2024 14:00, 09-07-2024 19:00.
Opdracht: volgens afspraak.

Tentamenhulpmiddelen

'Schone' cursusboeken Geavanceerd objectgeoriënteerd programmeren dl 1, 2 en 3
Het online woordenboek
Het online woordenboek t.b.v. ANS

Cursusmateriaal

Het cursusmateriaal bestaat uit drie schriftelijke delen. Ander materiaal, zoals programmeerbouwstenen en oefententamens, worden via de cursussite uitgeleverd.

Mediagebruik

In deze cursus gaan we ervan uit dat je beschikt over een recente versie van de ontwikkelomgeving Eclipse en Java versie 8 of hoger. Om Eclipse te kunnen draaien, heb je een pc nodig met Windows. Eclipse is ook beschikbaar voor Linux, Solaris en MacOS. De Open Universiteit geeft echter geen ondersteuning bij het gebruik van die besturingssystemen.

Digitale leeromgeving

Als student kun je, na inschrijving, via de cursussite in de online leeromgeving naar de discussiegroepen. Hier kun je met medestudenten en begeleiders informatie uitwisselen en discussiëren over de leerstof.