Kursusbeskrivelse
for
Algoritmik
ved
Keld Helsgaun
1. Formål
Studiet af algoritmer, algoritmik, er en central del af datalogien. Ved udvikling af et program er det vigtigt, at datalogen har et solidt kendskab til egnede algoritmer og kan foretage et kvalificeret valg imellem disse. Han eller hun skal endvidere være i stand til at designe nye algoritmer, kunne vurdere deres effektivitet og kunne argumentere for deres korrekthed.
Kursets formål er
2. Mål
Målet er, at den studerende efter gennemførelse af kurset
3. Indhold
Kursets indhold kan overordnet beskrives ved følgende punkter:
Hovedvægten lægges på de tre første punkter.
4. Form
Undervisningen foregår ved forelæsninger og øvelser.
5. Lærebog
Som lærebog anvendes "Algorithms in C++" af Robert Sedgewick (Addison Wesley 1992). Som supplement til lærebogen anbefales "Algoritmer i Java" (3. udgave) af Keld Helsgaun (Datalogiske Noter, RUC 1999).
6. Forelæsninger
Til stofgennemgang er afsat 10 forelæsningsgange. Forelæsningerne finder sted i teorilokalet i hus 43.2 på torsdage fra 945 til 1200. Første forelæsningsgang er torsdag den 16. september 1999. Sidste forelæsningsgang er torsdag den 18. november 1999.
En foreløbig plan for forelæsningerne er vist nedenfor.
(16/9) Introduktion (Kapitel 1-2, s. 3-14) Algoritmebegrebet. Euklids algoritme. Et eksempelproblem. |
(23/9) Elementære datastrukturer (Kapitel 3-4, s. 15-50) Arrays, hægtede lister, stakke, køer, træer. Abstrakte datatyper. |
(30/9) Design, analyse og bevisførelse (Kapitel 5-7, s. 51-88) Induktion, rekursion (del-og-hersk). Eksempler på algoritmedesign. |
(7/10) Sortering I (Kapitel 8, s. 93-114) Sortering ved udvælgelse og indsættelse. |
(14/10) Sortering II (Kapitel 9 + 11-12, s. 115-131 + s. 145-176) Quicksort samt flette- og hob-sortering. |
(21/10) Søgning I (Kapitel 14-15, s. 193-230) Sekventiel og binær søgning. Balancerede søgetræer. |
(28/10) Søgning II (Kapitel 16, s. 231-244) Hashing. |
(4/11) Strengbehandling (Kapitel 19 + 21, s. 277-292 + s. 305-311) Strengsøgning. Syntaksanalyse. |
(11/11) Grafalgoritmer I (Kapitel 29-30, s. 415-450) Elementære grafalgoritmer. Grafrepræsentation. |
(18/11) Grafalgoritmer II (Kapitel 31-32, s. 451-481) Vægtede og orienterede grafer. Mindste udspændende træ. |
En udførlig beskrivelse af de enkelte forelæsninger kan ses her. Det bemærkes, at kun de 10 første af de 12 beskrevne forelæsninger afholdes i dette semester. Ret til ændringer forbeholdes.
6. Arbejdsbelastning
Den forventede arbejdsbelastning for den studerende er cirka 10 timer per uge i kursusperioden.