Course syllabus

Advanced Algorithms
Avancerade algoritmer

EDAN55, 7.5 credits, A (Second Cycle)

Valid for: 2024/25
Faculty: Faculty of Engineering LTH
Decided by: PLED C/D
Date of Decision: 2024-04-16
Effective: 2024-05-08

General Information

Depth of study relative to the degree requirements: Second cycle, in-depth level of the course cannot be classified
Elective for: C4, D4-pv, E4, F4, Pi4-pv
Language of instruction: The course will be given in English


Algorithms play an important role in computer science and many other science and engineering disciplines. Part of this knowledge has found its way into many science and engineering undergraduate curricula. This advanced algorithms course covers a number of modern topics outside of this basic curriculum.

First, randomization plays an important role in all aspects of algorithms and data structures. This includes basic solutions, such as hash tables and quick sort, that are part of standard data structure libraries used by every programmer. A large part of the internet, from routing tables to massive-scale companies such as Google, are completely reliant on randomization. But even though these ideas are often both simple, very efficient, and highly practical, they are typically not included in a basic course because of lacking prerequisites from discrete probability theory.

Second, a large number of problems are known to be computationally intractable, in the strict sense of being hard for complexity classes like NP or #P. However, this problems still need to be solved. The course presents design and analysis techniques outside of the basic algorithmic undergraduate curriculum for attacking these problems, such as approximation algorithms, exponential time algorithms, parameterized complexity, heuristics and randomized solutions.

Third, many algorithmic solutions must be viewed in the face of massive data encountered today in many application areas, such as google-size databases and information-age science. As instance size grow to mega- and gigabytes, basic data structures and even storage models need to be reconsidered, and new questions arise. Often, randomization plays a central role in the solutions.

Many of these topics are active research questions and the course is at the cutting edge of algorithmic research with rich opportunities for thesis or beginning research work.

Learning outcomes

Knowledge and understanding
For a passing grade the student must

Competences and skills
For a passing grade the student must

Judgement and approach
For a passing grade the student must


Parameterized algorithms and complexity. Design, applications, and analysis of randomized algorithms; hash functions, randomized data structures, Markov chains and random walks, Chernoff bounds, method of conditional probability, the probabilistic method, balls and bins. Approximation algorithms. Models and data structures for massive data.

Examination details

Grading scale: TH - (U, 3, 4, 5) - (Fail, Three, Four, Five)

The examination consists of a written exam, laboratory work and hand-in assignments. The final grade of the course is based on the result of the written exam.

The examiner, in consultation with Disability Support Services, may deviate from the regular form of examination in order to provide a permanently disabled student with a form of examination equivalent to that of a student without a disability.

Code: 0112. Name: Examination.
Credits: 4.5. Grading scale: TH - (U, 3, 4, 5). Assessment: Passed examination. The module includes: Written examination.
Code: 0212. Name: Compulsory Course Items.
Credits: 3.0. Grading scale: UG - (U, G). Assessment: Approved laboratory work and hand-in assignments. The module includes: Laboratory work and a hand-in assignments.


Admission requirements:

The number of participants is limited to: No

Reading list


Course coordinator: Susanna Rezende,
Course homepage: