Algorithms and Datastructures (DAT200)

The course provides an in-depth introduction to some commonly used data structures and algorithms.

Course description for study year 2024-2025. Please note that changes may occur.


Course code




Credits (ECTS)


Semester tution start


Number of semesters


Exam semester


Language of instruction



Algorithm efficiency analysis. Definition, usage, and implementations of abstract data types: Stacks, queues, lists, associative arrays (dictionary in Python), tree structures, graphs, priority queues, heaps. Hash techniques. Tree structures. Implementation and use of data structures that can represent graphs. Algorithms for sorting and searching. Some basic algorithms for graphs, including wayfinding. Use of recursion as programming technique.

Learning outcome

After ending this course the student should know how to:


  • Know how basic algorithms for sorting, searching and wayfinding in graphs work.
  • Know how basic data structures for lists, stacks, queues, priority queues, sets, associative arrays and graphs work


  • Be able to calculate the efficiency of algorithms
  • Be able to implement efficient recursive algorithms
  • Be able to implement efficient algorithms for sorting and searching

General competency

  • Know how data structures and algorithms for lists, queues, stacks, heaps, binary trees and graphs can be implemented.
  • Be able to use standard algorithms and data structures to implement efficient programs

Required prerequisite knowledge

The student is expected to know how to program at a level equivalent to DAT110 or DAT120 Introduction to programming.

Recommended prerequisites

DAT100 Object-oriented Programming, DAT120 Introduction to Programming


Form of assessment Weight Duration Marks Aid
Written exam 1/1 4 Hours Letter grades None permitted

This course has digital exam. It will be possible to use Scantron to scan drawings made by hand and connect these to the digital exam.

Coursework requirements

Hand-in assignments
There are nine exercises in this course. In order to be allowed to take the exam at least seven out of the nine exercises need to be approved within the given deadline.

Course teacher(s)

Course coordinator:

Mina Farmanbar

Head of Department:

Tom Ryen

Method of work

Four hours of lecturing per week. All students can get help for the exercises at a room reserved for the purpose four hours a week. The exercises are approved by presenting them to the teacher or a student assistant during these four hours.

Completion of mandatory exercises are to be made at the times and in the groups that are assigned and published. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the exercises at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.

Failure to complete the assigned exercises on time or not having them approved will result in barring from taking the exam of the course.

Overlapping courses

Course Reduction (SP)
Data structures and algoritms (TE0458_1) 6
Data structures and algoritms (TE0458_A) 6
Datastructures and algorithms (BIE270_1) 10

Open for

Computer Science - Bachelor in Engineering
Admission to Single Courses at the Faculty of Science and Technology
Industrial Economics - Master of Science Degree Programme, Five Year

Course assessment

There must be an early dialogue between the course supervisor, the student union representative and the students. The purpose is feedback from the students for changes and adjustments in the course for the current semester.In addition, a digital subject evaluation must be carried out at least every three years. Its purpose is to gather the students experiences with the course.


The syllabus can be found in Leganto