Algoritmiek

Het vak Algoritmiek gaat over het ontwerpen van algoritmes. In dit vak leer je verschillende strategieën om abstracte problemen op te lossen, namelijk greedy algoritmen, verdeel-en-heers, dynamisch programmeren en netwerkstroommethoden. Je leert deze strategieën te gebruiken om algoritmen te ontwerpen, maar ook om de correctheid van het gemaakt algoritme te bewijzen, en de tijd- en ruimtecomplexiteit van het algoritme te analyseren. Het vak sluit af met een in de informatica zeer bekende theorie over wat voor soort problemen efficiënt (polynomiaal) op te lossen zijn.

Voorkennis

Goede kennis van en ervaring met programmeren, bijvoorbeeld door de Inf4All cursus “Basis object georiënteerd programmeren”.
Enige ervaring met het bewijzen van de correctheid van algoritmen en looptijd analyse van eenvoudige algoritmen, bijvoorbeeld door de Inf4All cursus “Grondslagen van de Informatica”.

Vorm

Een serie bijeenkomsten met deels interactieve colleges en deels onder begeleiding werken aan oefenopdrachten. Thuis kunnen de oefenopdrachten worden afgemaakt, en het college van de week erna worden voorbereid.

Locatie

in Utrecht. Vragen kunnen ook online gesteld worden.

Literatuur

Voor deze module maken we gebruik van hoofdstukken 2 t/m 8 van het boek Algorithm Design van Jon Kleinberg & Éva Tardos (2005), Pearson. Verder materiaal komt beschikbaar via de online omgeving.

Tentaminering/examinering

  • Minstens de helft van de programmeeropdrachten moeten alle tests halen (vraag hulp als dit niet lukt)
  • ½ op basis van de eigen les (inc. lesplan)
  • ½ op basis van het tentamen (boek mag gebruikt worden)

Docent

Ivo van Kreveld (TU Delft)

Logo in4all_sidebar