DS814: Algoritmer og Datastrukturer
Intern kursuskode
Kommentar
Indgangskrav
Faglige forudsætninger
Studerende, der følger kurset, forventes at:
- have matematisk modenhed svarende til niveauet i DS820 og
- have kendskab til programmering i Python på et niveau svarende til for eksempel DS830.
Formål
Kurset har til formål at sætte den studerende i stand til at anvende en lang række eksisterende algoritmer og datastrukturer for fundamentale problemer, anvende generelle metoder til udvikling af nye algoritmer, samt anvende matematiske værktøjer til analyse af algoritmers korrekthed og effektivitet. Dette er en helt central kompetence, når man skal udvikle effektiv software. Det giver desuden en vigtig forståelse for øvre og nedre grænser for beregningsproblemer.
Målbeskrivelse
For at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
- anvende algoritmerne og datastrukturerne fra kurset på konkrete problemer.
- argumentere præcist for en algoritmes eller datastrukturs korrekthed eller mangel på samme.
- bestemme en algoritmes eller datastrukturs asymptotiske køretid.
- tilpasse kendte algoritmer og datastrukturer til specialtilfælde af kendte problemer og til nye problemer.
- designe nye algoritmer og datastrukturer til at løse problemer, som i natur minder om problemer fra kurset, herunder give en præcis beskrivelse af algoritmen, f.eks. vha. pseudokode.
- designe og implementere et større program, som anvender algoritmer og datastrukturer fra kurset.
Indhold
- Matematisk grundlag: rekursionsligninger, invarianter.
- Algoritmer:
korrekthed og kompleksitetsanalyse, del og hersk algoritmer (master
teorem, Strassens algoritme), grådige algoritmer, dynamisk
programmering, sorteringsalgoritmer (insertionsort, mergesort, heapsort,
quicksort, countingsort, radixsort), graf-algoritmer (BFS, DFS,
topologisk sortering af DAGs, sammenhængskomponenter, stærke
sammenhængskomponenter, MST, SSSP, APSP), Huffman-kodning. - Datastrukturer: ordbøger (BSTs, rødsorte træer, hashing), prioritetskøer, disjunkte mængder.
Litteratur
Eksamensbestemmelser
Eksamenselement a)
Tidsmæssig placering
Udprøvninger
Obligatorisk projektopgave
EKA
Censur
Bedømmelse
Identifikation
Sprog
Hjælpemidler
ECTS-point
Eksamenselement b)
Tidsmæssig placering
Udprøvninger
Skriftlig eksamen
EKA
Censur
Bedømmelse
Identifikation
Sprog
Varighed
Hjælpemidler
- Lærebøger, noter, kompendier og formelsamlinger mv.
ECTS-point
Uddybende information
Eksamensopgaven er MCQ-format. MCQ udleveres i system DE-Digital Eksamens MCQ-system og besvares i systemet.
Reeksamen i august er en mundtlig eksamen, der bedømmes med karakter efter 7-trinsskalaen og ekstern censur.
Vejledende antal undervisningstimer
Undervisningsform
Ansvarlig underviser
Skemaoplysninger
Administrationsenhed
Team hos Registratur
Udbudssteder
Anbefalede studieforløb
Overgangsordninger
Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.