Algorithms and Data Structures

7.5 credits

Syllabus, Bachelor's level, 2IS206

Education cycle
First cycle
Main field(s) of study and in-depth level
Software Engineering G1F
Grading system
Fail (U), Pass (G), Pass with distinction (VG)
Finalised by
The Department Board, 3 September 2020
Responsible department
Department of Informatics and Media

General provisions

The course is included in the following degree programme:

* Bachelor's Programme in Information Systems, specialisation software engineering, 180 credits.

Be given also as a freestanding course.

Entry requirements

Programming, 7.5 credits

Learning outcomes

Regarding knowledge and understanding the student is expected to be able to on completion of the course:

  • describe basic data structures and algorithms based on function and time complexity,
  • describe general algorithm design techniques.

Regarding competence and skills the student is expected to be able to on completion of the course:

  • analyse algorithms based on function and time complexity,
  • create object-oriented programs based on problem descriptions that solve algorithmic problems,
  • use Java's APIs for algorithms and data structures.

Regarding judgement and approach the student should, on completion of the course, be able to:

  • in relation to descriptions, evaluate the choice of data structures and algorithmic solutions based on function and time complexity.


The course uses the Java programming language and focuses on algorithmic problem solving and data structures based on function and a basic understanding of time complexity but also provides in-depth knowledge and skills in object-oriented programming. Basic data structures such as linked lists and trees are addressed with a focus both on understanding how they are structured and when they should be used. Furthermore, search and sorting algorithms are dealt with where students are allowed to both use APIs and make their own implementations. The course also addresses algorithm design techniques such as divide-and-conquer and dynamic programming.


The course is given in the form of lectures and laboratory work.


The course is examined through written assignments and written exam.

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the University's disability coordinator or a decision by the department's working group for study matters.