TDDD86 · 11 hp · Grundnivå (G1F) · Datateknik, Datavetenskap
Datastrukturer, algoritmer och programmeringsparadigm
Ges · nästa start HT 2026
95 %
klarade senaste ordinarie tillfället
DAT1 · 12 jan 2026 · 123 studenter
93 %
klarade de ordinarie tillfällena, alla tillfällen de senaste 5 åren
DAT1 · 641 studenter
18 %
Svårare än 18 % av kurserna på grundnivå
Jämfört med 874 kurser på samma nivå, ordinarie tentor de senaste tre läsåren. 254 studenter.
Ingår i 2 program
Övrigt moment
DAT1 Datortentamen
- 5
- 4
- 3
- U
Ordinarie tillfällen
93 % godkända · 641 studenter
- 95 %123
- 92 %131
- 94 %144
- 89 %127
- 91 %116
Senare tillfällen
83 % godkända · 65 studenter
- 83 %6
- 100 %6
- 100 %8
- 57 %7
- 58 %12
- 94 %18
- 88 %8
- Klarar ett senare tillfälle: 83 % (65 studenter), jämfört med 93 % (641 studenter) på ordinarie
- Får 4 eller 5: 32 % (706 studenter)
Visa små tillfällen (4)
Tillfällen med färre än 5 studenter, ofta tillgodoräknanden eller specialtillfällen. De ingår inte i någon siffra på sidan.
- 75 %4
- 50 %2
- 50 %2
- 100 %1
Övriga moment
Deltentor, inlämningar och laborationer. De ingår inte i siffrorna överst.
Inlämning eller laboration
UPG1 Datorbaserade inlämningsuppgifter
- G
Ordinarie tillfällen
100 % godkända · 629 studenter
- 100 %120
- 100 %126
- 100 %140
- 100 %122
- 100 %121
Senare tillfällen
100 % godkända · 6 studenter
- 100 %6
- Klarar ett senare tillfälle: 100 % (6 studenter), jämfört med 100 % (629 studenter) på ordinarie
Visa små tillfällen (17)
Tillfällen med färre än 5 studenter, ofta tillgodoräknanden eller specialtillfällen. De ingår inte i någon siffra på sidan.
- 100 %1
- 100 %1
- 100 %2
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %2
- 100 %2
- 100 %1
Inlämning eller laboration
LAB1 Laborationskurs
- 5
- 4
- 3
Ordinarie tillfällen
100 % godkända · 507 studenter
- 100 %93
- 100 %111
- 100 %109
- 100 %108
- 100 %86
Senare tillfällen
100 % godkända · 102 studenter
- 100 %26
- 100 %5
- 100 %5
- 100 %14
- 100 %5
- 100 %9
- 100 %11
- 100 %16
- 100 %11
- Klarar ett senare tillfälle: 100 % (102 studenter), jämfört med 100 % (507 studenter) på ordinarie
- Får 4 eller 5: 48 % (609 studenter)
Visa små tillfällen (29)
Tillfällen med färre än 5 studenter, ofta tillgodoräknanden eller specialtillfällen. De ingår inte i någon siffra på sidan.
- 100 %2
- 100 %2
- 100 %1
- 100 %2
- 100 %4
- 100 %1
- 100 %1
- 100 %3
- 100 %2
- 100 %4
- 100 %1
- 100 %1
- 100 %2
- 100 %2
- 100 %1
- 100 %4
- 100 %2
- 100 %2
- 100 %1
- 100 %4
- 100 %1
- 100 %2
- 100 %1
- 100 %2
- 100 %4
- 100 %2
- 100 %1
- 100 %1
- 100 %1
Inlämning eller laboration
UPG2 Inlämningsuppgift
- G
Ordinarie tillfällen
100 % godkända · 262 studenter
- 100 %85
- 100 %90
- 100 %87
Senare tillfällen
100 % godkända · 332 studenter
- 100 %30
- 100 %7
- 100 %5
- 100 %38
- 100 %70
- 100 %39
- 100 %25
- 100 %93
- 100 %6
- 100 %19
- Klarar ett senare tillfälle: 100 % (332 studenter), jämfört med 100 % (262 studenter) på ordinarie
Visa små tillfällen (25)
Tillfällen med färre än 5 studenter, ofta tillgodoräknanden eller specialtillfällen. De ingår inte i någon siffra på sidan.
- 100 %1
- 100 %4
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %2
- 100 %1
- 100 %4
- 100 %1
- 100 %1
- 100 %2
- 100 %1
- 100 %2
- 100 %1
- 100 %2
- 100 %1
- 100 %1
- 100 %1
- 100 %1
- 100 %3
- 100 %2
- 100 %1
- 100 %1
- 100 %1
Om kursen
Mål
Kursens syfte är att ge studenten verktyg att självständigt kunna konstruera datorprogram som effektivt utnyttjar tid och minne. Dessutom ger kursen fördjupade kunskaper i programmering, särskilt procedurell och objektorienterad programmering i programspråket C++, samt en introduktion till programmeringsparadigm som ett bredare perspektiv på programmering. Efter genomgången kurs skall den studerande:
- ha god förmåga att analysera tids- och rumskomplexitet hos iterativa och enkla rekursiva algoritmer.
- kunna redogöra för och använda de vanligaste abstrakta datatyperna och sorteringsalgoritmerna.
- kunna implementera de vanligaste abstrakta datatyperna med olika datastrukturer och algoritmer.
- kunna beskriva etablerade metoder för design (och analys) av algoritmer i allmänhet.
- kunna implementera procedur- och objektorienterade program i programspråket C++.
- kunna använda olika komponenter från C++ standardbibliotek i kombination för att lösa icke-triviala beräkningsproblem.
- kunna beskriva de vanligaste programmeringsparadigmen.
- kunna tillämpa effektiva algoritmer för att bättre förstå samhälleliga problem kopplade till hållbar utveckling.
Innehåll
- Grundläggande begrepp
- Matematiska grunder för algoritmanalys
- Grundläggande abstrakta datatyper och datastrukturer, såsom listor, stackar, köer, sökträd, heapar, hashtabeller och grafer
- Resursanalys av algoritmer
- Strängalgoritmer
- Algoritmer för sortering och urval
- Grafalgoritmer
- Paradigmer för design av algoritmer (dynamisk programmering, giriga algoritmer, rekursiv nedbrytning, totalsökning)
- Procedurell programmering i C++ (variabler, konstanter, deklarationer, uttryck, satser, funktioner, grundläggande datatyper och datastrukturer)
- Pekare och dynamisk minneshantering i C++
- Klasser i C++ (deklaration, datamedlemmar och medlemsfunktioner, åtkomstspecifikation av klassmedlemmar, konstruktorer, destruktorer, arv, polymorfi, vänner)
- Användning av C++ standardbibliotek (in- och utmatning, tecken och stänghantering, containrar, iteratorer, algoritmer, funktionsobjekt, lambdauttryck)
- Mallar i C++
- Introduktion till programmeringsparadigm
- Introduktion till effektiva algoritmers betydelser för samhällets mål med en hållbar utveckling
- Examinator
- Ulf Kargén
- Schemalagd tid
- 90 h
- Huvudområde
- Datateknik, Datavetenskap