| Program start date | Application deadline |
| 2026-01-13 | - |
| 2027-01-13 | - |
Program Overview
Course Overview
The course DD2352 Algorithms and Complexity is a 7.5 credit course that focuses on the core principles of algorithm development and computational complexity. Students will explore key algorithm design techniques, analyze their performance, and dive deep into the complexity classes that define what problems computers can solve.
Information per Course Offering
The course is offered in the Spring 2026 semester, with the option to choose between single courses and programme students.
Course Syllabus
The course syllabus is available as a PDF and outlines the course contents, learning outcomes, and examination information.
Content and Learning Outcomes
Course Contents
The course covers the following topics:
- Design principles of algorithms: Divide and conquer, greedy algorithms, dynamic programming
- Algorithm analysis
- Probabilistic algorithms
- Approximation algorithms
- Selected applications in sets, graphs, arithmetic, and geometry
- Implementation of algorithms
- Computability and complexity: Reductions, complexity classes P, NP, PSPACE, and BPP, NP completeness and NP hardness reductions, undecidable problems
Intended Learning Outcomes
After passing the course, students should be able to:
- Develop and implement algorithms and reductions, and analyze them with respect to correctness and efficiency
- Compare alternative algorithms considering efficiency
- Define and explain central concepts such as P, NP, NP-completeness, and undecidability
- Compare problems with respect to complexity by means of reductions In order to:
- Independently design computer programs that use time and memory efficiently, contributing to economically and environmentally sustainable development
- Identify problems that are unrealistically resource demanding or not possible to solve on a computer
Literature and Preparations
Specific Prerequisites
Students must have knowledge in:
- Basic computer science (6 credits)
- Programming (6 credits)
- Calculus in one variable (7.5 higher education credits)
- English B/6 from Upper Secondary School Active participation in a course offering where the final examination is not yet reported in LADOK is considered equivalent to completion of the course.
Recommended Prerequisites
Knowledge of discrete mathematics is necessary. Students who have not completed 7.5 higher education credits of discrete mathematics must take one of these courses in parallel with DD2352. Knowledge of probability theory is recommended but can be learned during the course.
Literature
Information about course literature can be found in the course memo or in the course room in Canvas.
Examination and Completion
Grading Scale
The grading scale is A, B, C, D, E, FX, F.
Examination
The course consists of:
- MAS2 - Mastery Test (1.5 credits)
- MAS1 - Mastery Test (1.5 credits)
- TEN1 - Examination (3.0 credits)
- LAB1 - Laboratory Work (1.5 credits) The examiner may adapt an examination for students with documented disabilities. The examiner may apply another examination format when re-examining individual students. If the course is discontinued, students may request to be examined during the following two academic years.
Further Information
Course Room in Canvas
Registered students can find further information about the course implementation in the course room in Canvas.
Offered by
The course is offered by EECS/Computer Science.
Main Field of Study
The main field of study is Computer Science and Engineering.
Education Cycle
The course is part of the second cycle.
Supplementary Information
This course has replaced DD2354 Algorithms and Complexity. The course cannot be combined with DD1352, DD2350, or DD2354. The EECS code of honor applies to this course.
Additional Regulations
Students who have not completed 7.5 higher education credits of discrete mathematics must take one of these courses in parallel with DD2352.
