DM507: Algoritmer og Datastrukturer (10 ECTS)
STADS: 15016701
Niveau
Bachelorkursus
Undervisningsperiode
Kurset er placeret i forårssemesteret.
Ansvarlige undervisere
Email: rolf@imada.sdu.dk
Skemaoplysninger
Hold |
Type |
Dag |
Tidsrum |
Lokale |
Uger |
Kommentar |
Fælles |
I |
Mandag |
08-10 |
U1 |
8 |
|
Fælles |
I |
Mandag |
12-14 |
U140 |
15 |
|
Fælles |
I |
Mandag |
12-14 |
U55 |
17 |
|
Fælles |
I |
Mandag |
10-12 |
U140 |
20 |
|
Fælles |
I |
Tirsdag |
14-16 |
U140 |
6-7,10,14-16 |
|
Fælles |
I |
Tirsdag |
14-16 |
U1 |
9,11-12,19 |
|
Fælles |
I |
Onsdag |
16-18 |
U55 |
17 |
|
Fælles |
I |
Torsdag |
08-10 |
U110 |
20-21 |
|
Fælles |
I |
Fredag |
08-10 |
U1 |
6 |
|
Fælles |
I |
Fredag |
08-10 |
U45 |
8,10,12,18 |
|
H7 |
TE |
Mandag |
14-16 |
U64 |
7,9 |
|
H7 |
TE |
Mandag |
14-16 |
U24 |
8 |
|
H7 |
TE |
Mandag |
14-16 |
U141 |
10 |
|
H7 |
TE |
Mandag |
14-16 |
U17 |
11 |
|
H7 |
TE |
Mandag |
14-16 |
U143 |
12,15-17,19-20 |
|
H7 |
TE |
Tirsdag |
16-18 |
U146 |
6 |
|
H7 |
TE |
Tirsdag |
12-14 |
U143 |
18 |
|
H7 |
TE |
Onsdag |
14-16 |
U143 |
7,9,11,14,16,20-21 |
|
H7 |
TE |
Torsdag |
08-10 |
U64 |
18 |
|
H7 |
TE |
Fredag |
14-16 |
U143 |
14 |
|
H8 |
TE |
Onsdag |
12-14 |
U24 |
7,9,11,15-19 |
|
H8 |
TE |
Onsdag |
12-14 |
U8 |
14 |
|
H8 |
TE |
Onsdag |
12-14 |
U23A |
20 |
|
H8 |
TE |
Torsdag |
10-12 |
U143 |
6-12,16,18,20-21 |
|
H8 |
TE |
Torsdag |
16-18 |
U143 |
14 |
|
H9 |
TE |
Tirsdag |
10-12 |
U8 |
7-8,11,15-21 |
|
H9 |
TE |
Onsdag |
10-12 |
U24 |
7,9-12,16 |
|
H9 |
TE |
Onsdag |
12-14 |
U20 |
14 |
|
H9 |
TE |
Onsdag |
10-12 |
U143 |
18,20 |
|
H9 |
TE |
Torsdag |
08-10 |
U143 |
6 |
|
H9 |
TE |
Torsdag |
08-10 |
U64 |
9 |
|
H9 |
TE |
Fredag |
14-16 |
U23A |
14 |
|
M1 |
TE |
Mandag |
12-14 |
U23A |
7-12,16,18-20 |
|
M1 |
TE |
Mandag |
14-16 |
U142 |
15,17 |
|
M1 |
TE |
Torsdag |
16-18 |
U17 |
14 |
|
M1 |
TE |
Fredag |
10-12 |
U64 |
6-7,9,11,14,16,18,20-21 |
|
T1 |
TE |
Tirsdag |
16-18 |
U64 |
6,15-21 |
|
T1 |
TE |
Tirsdag |
16-18 |
U181 |
7-12 |
|
T1 |
TE |
Tirsdag |
16-18 |
U151 |
14 |
|
T1 |
TE |
Fredag |
08-10 |
U43 |
7,9,11 |
|
T1 |
TE |
Fredag |
08-10 |
U8 |
14,16 |
|
T1 |
TE |
Fredag |
10-12 |
U153 |
18 |
|
T1 |
TE |
Fredag |
08-10 |
U156 |
20 |
|
T2 |
TE |
Onsdag |
08-10 |
U44 |
7-12 |
|
T2 |
TE |
Torsdag |
12-14 |
U53 |
9,11 |
|
Vis hele skemaet
Vis personligt skema for dette kursus.
Kommentar:
220318:T2 nedlagt fra uge 14 og frem.
Ubegrænset deltagerantal
Indgangskrav:
Ingen
Faglige forudsætninger:
Studerende, der følger kurset, forventes at:
- Have kendskab til stoffet fra DM549 Diskrete metoder til datalogi. Specielt forudsættes en hvis mængde matematisk modenhed.
- Kunne anvende metoderne fra DM550 Introduktion til programmering. Specielt forudsættes fortrolighed med programmering i Java.
FormålKurset 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, samt generelle metoder til udvikling af nye algoritmer og matematiske værktøjer til analyse af algoritmers korrekthed og effektivitet. Dette er helt centralt i forhold til at kunne udvikle effektiv software, og er vigtigt for forståelsen for øvre og nedre grænser for beregningsproblemer.
Kurset bygger oven på den viden, der er erhvervet i kurserne DM549 Diskrete metoder til datalogi og DM550 Introduktion til programmering, og giver et fagligt grundlag for at studere algoritmiske og kompleksitetsteoretiske emner, der er placeret senere i uddannelsen. I forhold til uddannelsens kompetenceprofil har kurset eksplicit fokus på at:
- Give kompetence til udvikle nye varianter af centrale algoritmer og datastrukturer udviklet inden for datalogi.
- Give færdigheder i at analysere fordele og ulemper ved forskellige algoritmer, specielt med hensyn til ressourceforbrug.
- Give viden om et stort udvalg af centrale algoritmer og datastrukturer udviklet inden for datalogi.
MålbeskrivelseFor at opnå kursets formål er det læringsmålet for kurset, at den studerende demonstrerer evnen til at:
- anvende algoritmerne fra kurset på konkrete problemer.
- argumentere præcist for en algoritmes korrekthed eller mangel på samme.
- bestemme en algoritmes asymptotiske køretid.
- tilpasse kendte algoritmer og datastrukturer til specialtilfælde af kendte problemer og til nye problemer.
- designe nye algoritmer 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.
- foretage formålstjenlige valg af datastruktur.
- designe nye datastrukturer baseret på kendte datastrukturer.
- designe og implementere et større program, som anvender algoritmer og datastrukturer fra kurset.
- argumentere præcist for de valg, der foretages i forbindelse med de foregående fire punkter.
IndholdKurset indeholder følgende faglige hovedområder:
- 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.
LitteraturMeddeles ved kursets start.
Kursets hjemmeside
Dette kursus benytter
e-learn (blackboard).
Forudsætningsprøver
- Obligatorisk projektopgave. Intern censur ved underviser. Bestået/ikke bestået. Projektopgaven er en forudsætning for deltagelse i eksamenselement a). (15016712).
Eksamen- og censurform:
- Skriftlig eksamen. Ekstern censur. Karakter efter 7-trinsskalaen. Laptop, bøger og noter må anvendes. Adgang til internettet er ikke tilladt. (10 ECTS). (15016702).
Reeksamen i august er en mundtlig eksamen, der bedømmes med karakter efter 7-trinsskalaen og ekstern censur.
Vejledende timetal
På naturvidenskab er undervisningen tilrettelagt efter trefasemodellen dvs. intro, trænings- og studiefasen.
Introfase: 44 timer
Træningsfase: 40 timer, heraf:
- Eksaminatorie: 40 timer
Aktiviteter i studiefasen
Studiefase: 14 timer
Undervisningsform
Sprog
Dette kursus undervises på dansk eller engelsk, afhængigt af underviseren.
Kursustilmelding
Se tilmeldingsfrister.
Pris for åben uddannelse
Se priser for enkeltkurser.
Denne kursusbeskrivelse var gyldig fra 1. februar 2017 til 31. januar 2019.