Algoritmiek 2011/2012

Het eerstejaarsvak Algoritmiek wordt in het voorjaar van 2012 verzorgd door Jeannette de Graaf. Het vak is verplicht voor alle studenten Informatica, Informatica en Economie, en voor studenten die een dubbele propedeuse Wiskunde/Informatica doen. Het vak levert 6 EC op.

LET OP: Eerstejaars studenten Informatica en Economie volgen het vak in Den Haag. Deze website (www.liacs.nl/home/graaf/ALGO) is bedoeld voor de studenten die in Leiden het vak volgen. De Haagse studenten hebben een eigen website, die wordt bijgehouden door de docent van het vak in Den Haag, drs. R. van Vliet.

Assistentie bij de werkgroep en het practicum wordt verleend door Bas van Stein en Iris Hupkens.

De colleges zijn op vrijdagen van 11.15 tot 13.00 uur in zaal 174. De bijbehorende werkcolleges vinden plaats op donderdagen van 13.45 uur tot 15.30 uur, in zaal 174 of een van de computerzalen (302/304). Het eerste college is op vrijdag 10 februari 2012; het eerste werkcollege is op donderdag 16 februari.

Voorkennis voor dit vak is het college Programmeermethoden. Het college dat op Algoritmiek aansluit heet Datastructuren. Dit wordt gegeven in het najaar (derde semester van de studie Informatica).

Inhoud van het vak

Algoritmiek gaat uiteraard over algoritmen. Er zullen enkele belangrijke, veel gebruikte oplossingsmethoden worden besproken, compleet met voorbeelden. Besproken worden in elk geval: brute force, exhaustive search, backtracking, verdeel en heers, dynamisch programmeren, gretige algoritmen en branch and bound. Verder onder meer ook toestand-actie-ruimtes (als hulp bij het probleeemoplossen), een beetje complexiteit (om de efficientie van algoritmen te beschrijven en te vergelijken) en heapsort.

Voor globale informatie over het vak in studiejaar 2011-2012 wordt men verwezen naar de algemene webpagina.

Materiaal

In het studiejaar 2011/2012 wordt gebruik gemaakt van het volgende boek: Anany Levitin, Introduction to The Design and Analysis of Algorithms, THIRD edition (Addison-Wesley, 2012). Of de internationale editie van hetzelfde boek.
Tot en met vorig jaar werd de second edition van het boek gebruikt. Deze verschilt niet vreselijk veel van de nieuwe editie: er is wat geschoven in de volgorde van sommige behandelde methoden, en de opgaven zijn volgens de schrijver van het boek uitgebreid. De tweede editie van het boek is inhoudelijk dus ook te gebruiken, maar let op voor andere hoofdstuknummering en andere opgavenummering.

De bij het college behorende sheets worden ook via deze website beschikbaar gesteld. Meestal zullen de sheets al voor het college op deze webpagina verschijnen: er kunnen daarin dan nog kleine veranderingen worden aangebracht, afhankelijk van hoe ver we op college komen. Na afloop van het college wordt telkens de definitieve versie van de sheets hieronder geplaatst.

Programma

Het programma van colleges en werkcolleges zal hieronder worden bijgehouden. Voor elke week staat daarin welke onderwerpen aan de orde zijn gekomen, met de bijbehorende hoofdstukken uit het boek en de gebruikte sheets. De datum stelt de vrijdag van de betreffende week voor. Bovendien kan men hier de bij het werkcollege behandelde opgaven vinden. (Let dus op als je de tweede editie van het boek gebruikt. De verwijzingen zijn in principe naar de derde editie.)
Voorlopig, tot het college daadwerkelijk begint, staat hier nog het programma van het vorige studiejaar, met verwijzingen dus naar de tweede editie van het boek. Dit om alvast een idee te krijgen van de te behandelen stof.

PROGRAMMA 2010/2011

Datum (vrijdag) Onderwerp Sheets Boek Werkcollege
4 februari Introductie sheets1 1.1, 1.2, 1.4 (t/m graafrepresentaties) geen
11 februari Grafen en bomen sheets2 1.4 opgaven1
18 februari Toestand-actie-ruimte sheets3 sheets opgaven2
25 februari geen college --- --- geen werkcollege
4 maart Complexiteit; brute force sheets4 2.1-3, 3.1-3 opgaven3
11 maart Exhaustive search, backtracking sheets5 3.4, 12.1 (dames), sheets programmeeropdracht 1
18 maart Backtracking, Verdeel en heers sheets6 12.1, 4.1-2 opgaven5
25 maart Verdeel en heers sheets7 4.3-6, 5.1, 5.5 opgaven6
1 april Rest decrease and conquer, dynamisch programmeren sheets8 sheets, inleiding H.8 programmeeropdracht 2
8 april Dynamisch programmeren sheets9 8.1, sheets, 8.4 opgaven8
15 april Gretige algoritmen, Dijkstra sheets10 inleiding H.9, sheets, 9.3 opgaven9
22 april geen college (Goede Vrijdag) --- --- programmeeropdracht 3
29 april Dijkstra, branch and bound sheets11 12.2 opgaven11
6 mei Heap, heapsort, branch and bound (rest) sheets12 6.4, sheets geen werkcollege
13 mei Bespreken oud tentamen tentamen augustus 2010 alle stof opgaven12

Opgaven

Tijdens werkcolleges worden opgaven gemaakt, soms op papier en soms achter de computer. Deze opgaven kunnen via deze website worden verkregen, maar zullen ook tijdens (werk)college worden uitgedeeld.

Programmeeropdrachten

Bij dit college moeten drie programmeeropdrachten (in C++) gemaakt worden, waarbij de nadruk ligt op het toepassen van de op college besproken probleemoplossingsmethoden. De opdrachten moeten alle drie voldoende zijn (>=6). Programmeerwerk mag in tweetallen worden gemaakt. De opdrachten dienen op de deadlines te worden ingeleverd. Anders gaat er in principe per week te laat inleveren een punt af.

Studenten die vorig studiejaar alle drie programmeeropdrachten hebben afgerond hoeven het programmeerwerk dit jaar niet opnieuw te doen. Ouderejaars studenten die het practicum helemaal niet of slechts gedeeltelijk hebben gedaan moeten contact opnemen met de docent. Deelresultaten blijven niet automatisch geldig.

DE drie programmeeropdrachten voor studiejaar 2010/2011 zijn hieronder nog te vinden.

Eindcijfer

Het programmeerwerk telt, net als bij Programmeermethoden, mee voor het eindcijfer. Het eindcijfer wordt voor twee derde bepaald door het tentamencijfer, en voor een derde door het programmeerwerk. Zowel programmeerwerk als tentamen moeten daarbij voldoende zijn.

Tentamen

De tentamens van 2010 en 2011 zijn hieronder te vinden, alsmede uitwerkingen van de mei/juni-tentamens.



Vragen en/of opmerkingen kunnen worden gestuurd naar: graaf@liacs.nl.

19 januari 2012 - http://www.liacs.nl/home/graaf/ALGO/