Skip to main content
Till KTH:s startsida

DD2352 Algorithms and Complexity 7.5 credits

The second course of designing and analyzing efficient algorithms in this course focused on the core principles of algorithm development and computational complexity. You’ll explore key algorithm design techniques, analyze their performance, and dive deep into the complexity classes that define what problems computers can solve. This course is ideal for anyone looking to enhance their problem-solving skills and develop a solid foundation in algorithms' theoretical and practical aspects.

Information per course offering

Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.

Termin

Information for Spring 2027 algokomp27 programme students

Course location

KTH Campus

Duration
12 Jan 2027 - 31 May 2027
Periods

Spring 2027: P3 (3 hp), P4 (4.5 hp)

Pace of study

25%

Application code

11549

Form of study

Normal Daytime

Language of instruction

English

Course memo
Course memo is not published
Number of places

Min: 1

Target group
Open for all programmes as long as the course can be included in the programme.
Planned modular schedule
[object Object]
Schedule
Schedule is not published
Part of programme

Contact

Examiner
No information inserted
Course coordinator
No information inserted
Teachers
No information inserted

Course syllabus as PDF

Please note: all information from the Course syllabus is available on this page in an accessible format.

Course syllabus DD2352 (Autumn 2026–)
Headings with content from the Course syllabus DD2352 (Autumn 2026–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

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. The complexity classes P (polynomial time), NP (non-deterministic polynomial time), PSPACE (polynomial space) and BPP (probabilistic polynomial time with bounded error). NP completeness and NP hardness reductions. Undecidable problems.

Intended learning outcomes

After passing the course, the student should be able to

  • develop and implement algorithms and reductions, and analyse 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 be able to design computer programs that use time and memory efficiently and thereby can contribute to economically and environmentally sustainable development
  • in professional life identify problems that are unrealistically resource demanding or not possible to solve on a computer.

Literature and preparations

Specific prerequisites

  • Knowledge in algorithms and data structures, 6 credits, corresponding to completed course DD1320-DD1328/DD1338/DD2325/ID1020/ID1021 or completed exam elements KONT and LABD in DD1326.
  • Knowledge and skills in programming, 6 credits, corresponding to completed course DD1310-DD1319/DD1321/DD1331/DD1333/DD1337/DD100N/ID1018/ID1022.
  • Knowledge in linear algebra, 7.5 credits, corresponding to completed course SF1624/SF1672/SF1684.
  • Knowledge in one-variable analysis, 7.5 credits, corresponding to completed course SF1625/SF1673/SF1685.
  • Knowledge of discrete mathematics, 7.5 credits, equivalent to completed course SF1610/SF1630/SF1662/SF1679/SF1688, or participation in one of these courses in parallel with DD2352.
  • Skills in English equivalent to the upper secondary school course English B/English 6.

Recommended prerequisites

Knowledge of discrete mathematics is necessary. A student who, at the beginning of the course, has not completed 7.5 higher education credits of discrete mathematics, equivalent to SF1610/SF1662/SF1679/SF1688, must take one of these courses in parallel with DD2352, see Additional Regulations in the course syllabus.

Knowledge of probability theory equvalent to for example SF1901 Probability Theory and Statistics is recommended but could be learnt during the course.

Literature

You can find information about course literature either in the course memo for the course offering or in the course room in Canvas.

Examination and completion

Grading scale

A, B, C, D, E, FX, F

Examination

  • MAS2 - Mastery Test, 1.5 credits, grading scale: A, B, C, D, E, FX, F
  • MAS1 - Mastery Test, 1.5 credits, grading scale: A, B, C, D, E, FX, F
  • LAB1 - Laboratory Work, 1.5 credits, grading scale: P, F
  • TEN2 - Written Exam, 3.0 credits, grading scale: P, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

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.

Labs and mastery tests are examined both orally and in writing. The exam is written.

Examiner

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

Course room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

Computer Science and Engineering

Education cycle

Second cycle

Supplementary information

This course has replaced DD2354 Algorithms and Complexity.

The course cannot be combined with any of the courses DD1352, DD2350, DD2354.

In this course, the EECS code of honor applies, see:
http://www.kth.se/en/eecs/utbildning/hederskodex

Additional regulations

A student who, at the beginning of the course, has not completed 7.5 higher education credits of discrete mathematics, equivalent to SF1610/SF1662/SF1679/SF1688, must take one of these courses in parallel with DD2352.