Skip to main content

Before choosing course

Course offering missing for current semester as well as for previous and coming semesters
* Retrieved from Course syllabus DD2386 (Autumn 2015–)

Content and learning outcomes

Course contents

Design patterns: open-closed principle, single responsibility principle, inversion of control, strategy pattern, template pattern, adapter pattern, wrapper pattern, decorator pattern and builder pattern; unit - and system testing, dependency injection, global state, APIs, implementation leakages, documentation of components.

Intended learning outcomes

After completion of the course, the student should be able to

  • identify the need of design patterns in development of new or in administration of existing code, and implement these, where appropriate
  • structure, from an object-oriented perspective, large programs so that they become easier to understand and manage
  • design and document public APIs with a clear responsibility
  • design entities so that they become testable and write tests for them
  • protect the internal design from the public APIs
  • develop a program in collaboration with other developers
  • review and reflect on program code
  • develop given program code

in order to

  • understand and master the parameters within software development that make program code sustainable, re-usable flexible to change of requirements.

Course Disposition

The course consists of a series of lab assignments, sprints, where new demads will be presented in each sprint. At the end, code review of code written by others should be performed.

Literature and preparations

Specific prerequisites

For non-program students, 90 credits being required of which 45 credits have to be within mathematics or informatics. Furthermore English B or the equivalent is required .

Recommended prerequisites

No information inserted


No information inserted


Reading list is presented no later than 4 weeks before the start of the course on the course web.

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

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


  • PRO1 - project, 7,5 hp, betygsskala: A, B, C, D, E, FX, 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.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Profile picture Tomas Ekholm

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 web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web DD2386

Offered by

EECS/Computer Science

Main field of study

Computer Science and Engineering, Information Technology, Information and Communication Technology

Education cycle

Second cycle

Add-on studies

No information inserted


Tomas Ekholm,

Supplementary information

The course will be replaced by DD2487 from 2017.