Sök Stäng
Kursplan

Algoritmer och datastrukturer, 7,5 hp

Algorithms and Data Structures, 7.5 credits

Kurskod: DB4002

Akademin för informationsteknologi

Nivå: Grundnivå

Välj kursplan

Version
2025-01-20 - Tills vidare

Fastställd av: Forsknings- och utbildningsnämnden, 2024-11-18 och gäller studenter antagna vårterminen 2025.

Huvudområde med fördjupning

Datorsystemteknik, Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav. (G1F)
Datateknik, Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav. (G1F)

Behörighetskrav

Grundkurs i programmeringsteknik.

Kursens inplacering i utbildningssystemet

Kursen ingår som obligatorisk kurs i Civilingenjör i datateknik 300 hp samt i Data-, Elektro-, Mekatronikingenjörsprogrammen 180 hp.

Mål

Kursen syftar till att studenten ska utveckla kunskap om algoritmkomplexitet, algoritmdesign och datastrukturer. Kursen syftar även till att förbättra programmeringsfärdigheten i ett modernt programmeringsspråk, för närvarande Java.


Kursen bygger på grundläggande programmeringskunskaper. Kursen förbereder studenten för programmering av större uppgifter med fokus på kända algoritmer och datastrukturer för effektiv hantering av en större mängd data.


Efter avslutad kurs ska studenten kunna:


Kunskap och förståelse

  • förklara hur man kan uppskatta exekveringstid hos program
  • känna igen tekniker för algoritmdesign, så som divide and conquer, rekursion och dynamisk programmering
  • känna igen datastrukturer och algoritmer för sökning och sortering, så som quicksort, binära sökträd och hashtabeller


Färdighet och förmåga

  • identifiera behov av och använda datastrukturer som moduler för att lösa större problem
  • använda algoritmdesigntekniker i lösning av större problem
  • implementera och anpassa algoritmer och datastrukturer för att uppfylla en kravspecifikation
  • använda Junit för test av algoritmer


Värderingsförmåga och förhållningssätt

  • bedöma lämpligheten av program med hänsyn till exekveringstiden
  • välja lämpliga färdiga implementationer av datastrukturer från programbibliotek

Innehåll

Abstrakta datatyper, stackar, köer, listor, träd, tabeller. Algoritmanalys och design. Asymptotisk exekveringstid. Rekursion, divide and conquer, dynamisk programmering.

Undervisningsspråk

Undervisningen bedrivs normalt på svenska men undervisning på engelska kan förekomma.

Undervisning

Kursen består under första delen av föreläsningar och laborationer och under andra delen av ett fördjupande projekt. Laborationerna går parallellt med föreläsningarna för att ge studenten en verklig programmeringsförankring inför projektet. Projektet löper under de sista två veckorna av kursen och genomförs med fördel i grupper om två.

Betygsskala

Fyrgradig skala, sifferbetyg (TH): Underkänd (U), Godkänd (3), Väl godkänd (4), Mycket väl godkänd (5)

Examinationsformer

Kursen har två examinationsmoment: skriftlig tentamen på genomgången teori samt skriftlig och muntlig redovisning av varje laboration.

1802: Tentamen, 5,5 hp
Fyrgradig skala, sifferbetyg (TH): Underkänd (U), Godkänd (3), Väl godkänd (4), Mycket väl godkänd (5)

1801: Laboration, 2 hp
Tvågradig skala (UG): Underkänd (U), Godkänd (G)

Undantag från angiven examinationsform

Om särskilda skäl finns får examinator göra undantag från angiven examinationsform och medge att en student examineras på annat sätt. Särskilda skäl kan till exempel vara beslut om riktat pedagogiskt stöd.

Kursvärdering

I kursen ingår kursvärdering. Denna är vägledande för utveckling och planering av kursen. Kursvärderingen dokumenteras och redovisas för studenterna.

Kurslitteratur och övriga läromedel

Välj litteraturlista
2025-01-20 – Tills vidare

Litteraturlista 2025-01-20Tills vidare

Sedgewick, R. & Wayne, K. Introduction to Programming in Java: An Interdisciplinary Approach. Pearson Addison Wesley, 2008.


Sedgewick, R. & Wayne, K. Algorithms, 4th Edition. Pearson Addison Wesley, 2011.