DM578: Algoritmer og datastrukturer

Studienævn for naturvidenskabelige IT-uddannelser

Undervisningssprog: På dansk eller engelsk afhængigt af underviser
EKA: N330063102
Censur: Ekstern prøve
Bedømmelse: 7-trinsskala
Udbudssteder: Odense
Udbudsterminer: Forår
Niveau: Bachelor

STADS ID (UVA): N330063101
ECTS-point: 7.5

Godkendelsesdato: 21-10-2025


Varighed: 1 semester

Version: Godkendt - aktiv

Intern kursuskode

DM578

Kommentar

Kurset samlæses med DM507 og DS814

Indgangskrav

Kurset kan ikke vælges hvis du har bestået, er tilmeldt, har fulgt DM507, DS814 eller DSK814, eller hvis en af disse indgår som obligatorisk i din studieordning.

Faglige forudsætninger

Studerende, der følger kurset, forventes at

  • have matematisk modenhed svarende til niveauet i DM549 og
  • have kendskab til programmering i Python på et niveau svarende til for eksempel DM574.

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.

Indhold

Kurset 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.

    Litteratur

    Se itslearning for pensumlister og yderligere litteraturhenvisninger.

    Eksamensbestemmelser

    Eksamenselement a)

    Tidsmæssig placering

    Juni

    Udprøvninger

    Skriftlig eksamen

    EKA

    N330063102

    Censur

    Ekstern prøve

    Bedømmelse

    7-trinsskala

    Identifikation

    Studiekort - Eksamensnummer

    Sprog

    Følger, som udgangspunkt, undervisningssprog

    Varighed

    3 timer

    Hjælpemidler

    Eksamen er med begrænset hjælpemidler. Det er kun følgende hjælpemidler som er tilladt:

    • Lærebøger, noter, kompendier og formelsamlinger mv.

    Internet er ikke tilladt. Du må dog gå ind på kursets hjemmeside i itslearning i forbindelse med åbning af system "DE – Digital Eksamen" og udfyldelse af evt. test i systemet. Noter fra kurset, som du ønsker at anvende som hjælpemidler, skal downloades til din computer senest dagen før eksamenen. Under eksamenen er det ikke sikkert at alt kursusmateriale er tilgængeligt for dig.

    ECTS-point

    7.5

    Uddybende information

    Eksamensopgaven er MCQ-format. MCQ udleveres i system DE-Digital Eksamens MCQ-system og besvares i systemet.  

    Reeksamen afholdes som en mundtlig eksamen.

    Vejledende antal undervisningstimer

    88 timer per semester

    Undervisningsform

    Skemalagte undervisningstimer:
    Antal undervisningstimer i alt: 88
    Heraf:
    Fællestimer i klasselokale/auditorium: 44
    Holdtimer i klasselokale: 44

    I fællestimerne introducerer og gennemgår underviseren stoffet, med mulighed for spørgsmål fra deltagerne.

    I holdtimerne arbejder deltagerne individuelt og i grupper med regneopgaver og programmeringsopgaver i stoffet. Der er mulighed for hjælp og feedback, mens løsninger præsenteres til sidst.

    Andre planlagte undervisningsaktiviteter:
    Efter fællestimerne og inden de tilsvarende holdtimer arbejder deltagerne individuelt og i grupper med stoffet og med tilhørende opgaver og programmeringsopgaver.

    Ansvarlig underviser

    Navn E-mail Institut
    Rolf Fagerberg rolf@imada.sdu.dk Algoritmer

    Skemaoplysninger

    Administrationsenhed

    Institut for Matematik og Datalogi (datalogi)

    Team hos Registratur

    NAT

    Udbudssteder

    Odense

    Anbefalede studieforløb

    Profil Uddannelse Semester Udbuds periode
    BA centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2023, 2024 and 2025 Bachelor i datalogi | Odense 2 E25
    BA centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2023, 2024 og 2025 Bachelor i datalogi | Odense 2 E26
    BA centralt fag datalogi et-faglig særligt forløb for datamatikere - optag 1. september 2026 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi et-faglig - optag 1. september 2022, 2023 og 2024 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi et-faglig - optag 1. september 2022, 2023, 2024 og 2025 Bachelor i datalogi | Odense 2 E25
    BA centralt fag i datalogi et-faglig - optag 1. september 2025 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi et-faglig - optag 1. september 2026 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022, 2023 og 2024 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022, 2023, 2024 and 2025 Bachelor i datalogi | Odense 2 E25
    BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2025 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2026 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2022, 2023 og 2024 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2022, 2023, 2024 og 2025 Bachelor i datalogi | Odense 2 E25
    BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2025 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i datalogi to-faglig med sidefag i matematik - optag 1. september 2026 Bachelor i datalogi | Odense 2 E26
    BA centralt fag i kunstig intelligens et-faglig - Optag 2023 og 2024 Bachelor i kunstig intelligens | Odense 2 E26
    BA centralt fag i kunstig intelligens et-faglig - Optag 2023, 2024 og 2025 Bachelor i kunstig intelligens | Odense 2 E25
    BA centralt fag i kunstig intelligens et-faglig - Optag 2025 Bachelor i kunstig intelligens | Odense 2 E26
    BA centralt fag i kunstig intelligens et-faglig - Optag 2026 Bachelor i kunstig intelligens | Odense 2 E26
    Ikke længere gældende pr 31 August 2026 BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022, 2023, 2024 and 2025 Bachelor i datalogi | Odense 2 E26
    Ikke længere gældende pr. 31.august 2026 BA centralt fag i datalogi et-faglig - optag 1. september 2022, 2023, 2024 og 2025 Bachelor i datalogi | Odense 2 E26
    Ikke længere gældende pr. 31.august 2026 BA centralt fag i datalogi to-faglig med sidefag - optag 1. september 2022, 2023, 2024 and 2025 Bachelor i datalogi | Odense 2 E26
    Ikke længere gældende pr. 31.august 2026 BA centralt fag i kunstig intelligens et-faglig - Optag 2023, 2024 og 2025 Bachelor i kunstig intelligens | Odense 2 E26
    BA sidefag i datalogi for central fag i Matematik - optag 1. september 2022, 2023, 2024 og 2025 Bachelor i datalogi | Odense 6 E25
    BA sidefag i datalogi for central fag i Matematik - optag 1. september 2022, 2023, 2024, 2025 og 2026 Bachelor i datalogi | Odense 6 E26

    Overgangsordninger

    Overgangsordninger beskriver, hvordan et kursus erstatter et andet kursus, når der ændres i et studieforløb.
    Hvis der er lavet en overgangsordning for et kursus vil den fremgå af oversigten.
    Se overgangsordninger for alle kurser på Det Naturvidenskabelige Fakultet.