I00009 (I00009)
Algoritmiek*
< 2006/2007 > 18-09-2006 t/m 13-01-2007 () H
Informatiekunde - Bachelor (2003) Subject van verandering en bestendiging (3 ec) Proces van verandering en bestendiging (3 ec)
omvang
6 ec (168 uur) : 48 uur plenair college, 0 uur groepsgewijs college, 64 uur computerpracticum, 0 uur 'droog' practicum, 0 uur gesprekken met de docent, 0 uur onderling overleg met medestudenten (werkgroepen, projectwerk e.d.), 56 uur zelfstudie
investering
6 ec * 28 u/ec + #std * (1 + 6ec * 0.75 u/student/ec)
inzet tentatief

examinator
afdeling
tijdbesteding

Sjaak Smetsers
sws
250u.

speciale web-site
/~sjakie/pi1

 

Volgens een systematische methoden worden programma's ontworpen en geimplementeerd (in C++) met behulp van basistypen en (niet recursieve) structuren en klassen. Deze cursus is primair bedoeld voor informatiekundestudenten en staat open voor anderen. Het grootste verschil met de cursus Algoritmen en Programma's (voor informaticastudenten) is de minder formele aanpak.

Leerdoelen

  • Inzicht in de werking en opbouw van programma's te geven door studenten zelf programma's te laten maken.
  • Gegeven algoritmen kunnen implementeren.
  • De werking van een gegeven programma doorgronden.
  • Voor eenvoudige problemen zelf systematisch een algoritme ontwikkelen en de geschiktheid hiervan aannemelijk maken.
  • Globale afschattingen maken van de complexiteit van algoritmen en programma's.
  • De kwaliteit van een programma's beoordelen (zowel door redeneren als door testen).
  • De correcte werking van een programma verifiëren.
  • De geschiktheid van een implementatie valideren.
  • Programma's ontwikkelen die aanpasbaar zijn (duidelijke structuur, goede naamgeving, abstractie via typesynoniemen, functies en klassen).

Onderwerpen

Algoritmen, taalbeschrijvingen in de vorm van syntaxdiagrammen, controlstructuren: opeenvolging, keuzes, voorwaardelijke herhalingen, herhalingen-met-teller, functies en procedures, objecten, variabelen en constanten, globale versus lokale objecten parameteroverdracht: call-by-value, call-by-reference, datastructuren: typesynoniemen, enumeratietypes, rijen, structuren en klassen, bestanden, systematische programmaontwikkeling door het opsplitsen van problemen in deelproblemen, eenvoudige complexiteitsanalyses van algoritmen, standaardalgoritmen voor zoeken en sorteren, recursie, recursief sorteren.

Toelichting

De gebruikte ontwikkelmethode kent vijf stappen:

  1. Probleemanalyse: zorg dat het probleem duidelijk is;
  2. Ontwerp van algoritmen en datastructuren;
  3. Reflectie: zal het gaan werken, zal het probleem opgelost worden;
  4. Implementeren: het schrijven van het programma;
  5. Evaluatie: testen, werkt het, is het probleem opgelost.

Werkvormen

Deze cursus bestaat uit een college waarop de belangrijkste zaken worden toegelicht. Ontwerpen en implementeren van algoritmen leer je echt in het practicum, dit heeft dan ook een belangrijke rol in deze cursus. Opgaven worden toegelicht en nabesproken, meestal in de vorm van een werkcollege.

Vereiste voorkennis

Geen

Tentaminering

De cursus wordt afgesloten met een schriftelijk tentamen. Indien het tentamencijfer minstens voldoende is, wordt het eindcijfer bepaald door het gemiddelde van het practicumcijfer en het tentamencijfer. Is het tentamencijfer onvoldoende, dan wordt als eindcijfer enkel het tentamencijfer genomen.

Literatuur

Dictaat.
Big C++, Cay Horstmann en Timothy Budd, ISBN 0-471-65023-4.


Evaluatie: studentenquêtes ; geen docentevaluatie bekend Rendement: 66 begonnen, 62 echt meegedaan, 39 geslaagd met 1e kans, 47 geslaagd totaal
Q: