Students
Tuition Fee
Not Available
Start Date
2026-08-24
Medium of studying
On campus
Duration
24 weeks
Details
Program Details
Degree
Masters
Major
Computer Science | Data Science | Software Engineering
Area of study
Information and Communication Technologies | Mathematics and Statistics
Education type
On campus
Course Language
English
Intakes
Program start dateApplication deadline
2026-08-24-
2027-08-24-
About Program

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.


See More