Na afloop van de cursus kan de student naast de leerdoelen uit NWI-IPC014:
- De werking van gegeven programma-code doorgronden en expliciteren;
- Gegeven algoritmen implementeren;
- De voor de oplossing van eenvoudige problemen benodigde datatypen en operaties erop aangeven;
- Voor eenvoudige problemen zelf systematisch een algoritme ontwikkelen en de geschiktheid hiervan aannemelijk maken;
- Programma's ontwikkelen die aanpasbaar zijn (duidelijke structuur, goede naamgeving, abstractie via typesynoniemen en functies);
- De kwaliteit van programma's beoordelen (zowel door redeneren als door testen).
eveneens:
- Diverse sorteeralgoritmen implementeren en categoriseren qua "Big-Oh" complexiteit;
- Gevorderde algoritmen ontwikkelen en implementeren volgens de recursieve methode.
|
|
Volgens een systematische methode worden programma's ontworpen en (in C++) geïmplementeerd met behulp van basisdatatypen en samengestelde datastructuren, n.l. rijen (uit IPC014) en structs en vectoren (nieuw in IPC015). Op het college worden de belangrijkste zaken toegelicht. Bij de basisdatatypen en structuren worden de mogelijke operaties en een aantal ‘standaard-algoritmen' erop besproken en geanalyseerd. Ontwerpen, implementeren, uittesten en zonodig aanpassen van algoritmen leer je pas echt in het practicum, dit heeft dan ook een belangrijke rol in deze cursus. Practicumopgaven bereid je voor en werk je uit in koppels. Opgaven worden toegelicht in de vorm van een werkcollege. Er zijn practicumzalen gereserveerd waar je hulp kunt krijgen van student-assistenten. Zij beoordelen ook je uitwerkingen en voorzien deze van constructief commentaar.
Deze cursus bouwt voort op NWI-IPC014 (Imperatief Programmeren 1). De nadruk ligt op gevorderde algoritmen zoals sorteren en zoek-algoritmen die een oplossingsruimte systematisch doorlopen. De fundamentele techniek van recursie wordt uitgebreid behandeld en speelt een centrale rol in deze cursus. Daarnaast wordt aandacht besteed aan het in kaart brengen van de schaalbaarheidseigenschappen van algoritmen ("Big-Oh" complexiteit). |
 |
|