I00008 (I00008)
Algoritmen en programma's*
< 2006/2007 > 18-09-2006 t/m 13-01-2007 () H
Informatica - Bachelor (2003) Software: Programmeren en algoritmiek (6 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)

examinator
afdeling
tijdbesteding

Sjaak Smetsers
sws
155u.

docent
afdeling
tijdbesteding

dr. Pieter Koopman
sws
150u.

speciale web-site
http://www.cs.ru.nl/~pieter/p1/index.html

 

Volgens een systematische methode worden programma's ontworpen en geimplementeerd (in C++) met behulp van basistypen en (niet recursieve) structuren en klassen. Deze cursus is primair bedoeld voor informaticastudenten en staat open voor anderen met een exacte achtergrond.

Leerdoelen

  • gegeven algoritmen 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, taalconstructies, basistypen, enumeratie-typen, structuren en klassen (methodes, hiding, constructoren, overloading, friends), ADT, recursieve algoritmen (o.a. zoeken, sorteren, backtracking), complexiteit, pointers, dynamische geheugenallocatie.

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 in het practicum. Dit practicum heeft dan ook een belangrijke rol in deze cursus. Opgaven worden toegelicht en nabesproken, meestal in de vorm van een werkcollege.

Tentaminering

De cursus wordt afgesloten met een schriftelijk tentamen. Indien dit meer dan een vijf waard is wordt het eindcijfer verkregen door middelling van je tentamen en practicum resultaat.

Literatuur

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


Evaluatie: studentenquêtes ; geen docentevaluatie bekend Rendement: 40 begonnen, 33 echt meegedaan, 17 geslaagd met 1e kans, 1 geslaagd totaal
Q: