Tentalabbet

TDDD86 · 11 credits · Basic level (G1F) · Datateknik, Datavetenskap

Data Structures, Algorithms and Programming Paradigms

Active · next start HT 2026

95%

passed the latest regular sitting

DAT1 · 12 Jan 2026 · 123 students

93%

passed the regular sittings, all sittings over the last 5 years

DAT1 · 641 students

18%

Harder than 18% of courses at basic level

Compared with 874 courses at the same level, ordinary exams over the last three academic years. 254 students.

Part of 2 programmes

Other module

DAT1 Computer examination

  • 5
  • 4
  • 3
  • U

Main rounds

93% passed · 641 students

  • 95%123
  • 92%131
  • 94%144
  • 89%127
  • 91%116

Later rounds

83% passed · 65 students

  • 83%6
  • 100%6
  • 100%8
  • 57%7
  • 58%12
  • 94%18
  • 88%8
  • Pass a later round: 83% (65 students), compared with 93% (641 students) on the ordinary exam
  • Get 4 or 5: 32% (706 students)
Show small sittings (4)

Sittings with fewer than 5 students, often credit transfers or special sittings. They are not part of any figure on this page.

  • 75%4
  • 50%2
  • 50%2
  • 100%1

Other modules

Partial exams, hand-ins and labs. They are not part of the figures at the top.

Hand-in or lab

UPG1 Computer based exercises

  • G

Main rounds

100% passed · 629 students

  • 100%120
  • 100%126
  • 100%140
  • 100%122
  • 100%121

Later rounds

100% passed · 6 students

  • 100%6
  • Pass a later round: 100% (6 students), compared with 100% (629 students) on the ordinary exam
Show small sittings (17)

Sittings with fewer than 5 students, often credit transfers or special sittings. They are not part of any figure on this page.

  • 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

Hand-in or lab

LAB1 Programming assignments

  • 5
  • 4
  • 3

Main rounds

100% passed · 507 students

  • 100%93
  • 100%111
  • 100%109
  • 100%108
  • 100%86

Later rounds

100% passed · 102 students

  • 100%26
  • 100%5
  • 100%5
  • 100%14
  • 100%5
  • 100%9
  • 100%11
  • 100%16
  • 100%11
  • Pass a later round: 100% (102 students), compared with 100% (507 students) on the ordinary exam
  • Get 4 or 5: 48% (609 students)
Show small sittings (29)

Sittings with fewer than 5 students, often credit transfers or special sittings. They are not part of any figure on this page.

  • 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

Hand-in or lab

UPG2 Written assignment

  • G

Main rounds

100% passed · 262 students

  • 100%85
  • 100%90
  • 100%87

Later rounds

100% passed · 332 students

  • 100%30
  • 100%7
  • 100%5
  • 100%38
  • 100%70
  • 100%39
  • 100%25
  • 100%93
  • 100%6
  • 100%19
  • Pass a later round: 100% (332 students), compared with 100% (262 students) on the ordinary exam
Show small sittings (25)

Sittings with fewer than 5 students, often credit transfers or special sittings. They are not part of any figure on this page.

  • 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

About the course

Aim

The purpose of the course is to give the student tools to be able to independently construct computer programs that use time and memory efficiently. Furthermore, the course gives deeper knowledge about programming, specifically procedural and object-oriented programming in the programming language C++, as well as an introduction to programming paradigms as a broader perspective on programming. Upon completion of this course the student should be able to:

  • Demonstrate the ability to analyze time and space complexity of iterative and simple recursive algorithms.
  • Explain and use the most common abstract data types and sorting algorithms.
  • Implement the most common abstract data types and sorting algorithms with different data structures and algorithms.
  • Describe established methods for design (and analysis) of algorithms in general.
  • Implement procedural and object-oriented programs in the programming language C++.
  • Solve non-trivial computational tasks by using different components of the C++ standard library in combination.
  • Describe and compare the most common programming paradigms and their underlying principles.
  • Be able to apply effective algorithms to better understand social problems linked to sustainable development.

Content

  • Basic notions
  • Mathematical foundations for analysis of algorithms
  • Fundamental abstract data types and data structures, such as lists, stacks, queues, search trees, heaps, hash tables, and graphs
  • Efficiency analysis of algorithms
  • Sorting and searching
  • String algorithms
  • Graph algorithms
  • Algorithmic paradigms (dynamic programming, greedy algorithms, divide and conquer, brute force search)
  • Procedural programming in C++ (variables, constants, declarations, expressions, statements, functions, fundamental data types and fundamental data structures)
  • Pointers and dynamic memory management
  • Object-oriented programming and classes in C++ (class declaration, data members, member functions, access specification for class members, constructors, destructor, inheritance, polymorphism, friends)
  • Usage of the C++ standard library (input and output, character and string handling, containers, iterators, algorithms, user defined function objects and lambda expressions)
  • Type parameterized functions and classes (templates) in C++
  • Introduction to programming paradigms
  • Introduction to efficient algorithms importance for society's goals of sustainable development
Examiner
Ulf Kargén
Scheduled hours
90 h
Main field of study
Datateknik, Datavetenskap
Syllabus on Studieinfo ↗