Algorithms, Data Structures and Complexity
| Program start date | Application deadline |
| 2026-08-24 | - |
| 2027-08-24 | - |
Program Overview
Course Description
The course DD2350 Algorithms, Data Structures and Complexity provides an introduction to theoretical computer science, a strong research area at KTH. Students will learn about algorithm design, data structures, and complexity, including the investigation of problems that can be solved with the help of computers, problems that take an unreasonably long time, and problems that cannot be solved with a computer at all.
Information per Course Offering
The course is offered in the Autumn semester, with the following details:
- Course location: KTH Campus
- Duration: 24 August 2026 - 11 January 2027
- Periods: Autumn 2026: P1 (6 hp), P2 (3.5 hp)
- Pace of study: 33%
- Application code: 10840
- Form of study: Normal Daytime
- Language of instruction: Swedish
- Target group: Open to all programmes as long as it can be included in the programme
Part of Programme
The course is part of the following programmes:
- Master of Science in Engineering and in Education, year 6, TEDA
- Master of Science in Engineering and in Education, year 5, TEDA
- Master of Science in Engineering and in Education, year 4, MAFY
- Master of Science in Engineering and in Education, year 4, TEDA
- Degree Programme in Engineering Mathematics, year 3
- Degree Programme in Computer Science and Engineering, year 3, Mandatory
- Degree Programme in Information and Communication Technology, year 2
- Degree Programme in Information and Communication Technology, year 3
Contact
- Examiner: Viggo Kann
- Course coordinator: Viggo Kann
- Teachers: Per Austrin, Viggo Kann
Course Syllabus
The course syllabus is available as a PDF and includes the following headings:
- Content and learning outcomes
- Literature and preparations
- Examination and completion
Content and Learning Outcomes
The course covers the following topics:
- Design principles of algorithms: Decomposition, greedy algorithms, dynamic programming, local and exhaustive search
- Algorithm analysis
- Approximation algorithms and heuristics
- Applications with algorithms for problems on sets, graphs, arithmetic, cryptography, and geometry
- Implementation of algorithms
- Data structures: Review of hash tables and heaps; balanced trees, Bloom filters, persistent data structures
- Use and implementation of data structures
- Computability and complexity: The concept of reduction, the complexity classes P (polynomial time) and NP (non-deterministic polynomial time)
- NP-complete problems, undecidable problems
- Coping with computationally intractable problems
Intended Learning Outcomes
After passing the course, the student should be able to:
- Develop and implement algorithms with data structures and analyse them with respect to correctness and efficiency
- Compare alternative algorithms and data structures regarding efficiency and reliability
- Define and translate central concepts such as P, NP, NP-completeness, and undecidability
- Compare problems with respect to complexity by means of reductions
- Handle problems with high complexity
Literature and Preparations
The course requires the following prerequisites:
- Knowledge and skills in programming, 6 credits, equivalent to completed course DD1337/DD1310-DD 1319/DD1321/DD1331/DD1333/DD100N/ID1018
- Knowledge in basic computer science, 6 credits, equivalent to completed course DD1338/DD1320-DD1328/DD2325/ID1020/ID1021
- Knowledge in algebra and geometry, 7.5 higher education credits, equivalent to completed course SF1624
- Knowledge in calculus in one variable, 7.5 higher education credits, equivalent to completed course SF1625
- Knowledge of discrete mathematics, 7.5 higher education credits, equivalent to completed course SF1688/SF1610/SF1630/SF1662/SF1679, or completed course SF1671 and participation in SF1688 in parallel with DD2350
Examination and Completion
The course is examined through the following components:
- MAS2 - Individual master's test, 1.5 credits, grading scale: A, B, C, D, E, FX, F
- MAS1 - Individual master's test, 1.5 credits, grading scale: A, B, C, D, E, FX, F
- TEN1 - Theory examination, 2.5 credits, grading scale: P, F
- LAB1 - Laboratory assignments, 4.0 credits, grading scale: A, B, C, D, E, FX, F
Ethical Approach
All members of a group are responsible for the group's work. In any assessment, every student shall honestly disclose any help received and sources used. In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
Further Information
The course room in Canvas contains further information about the implementation of the course. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course. The general course information room contains information relevant before the start of the course, how to complete remaining course components, previous mastery tests, theory exams, and more.
