Skip to main content
Till KTH:s startsida Till KTH:s startsida

DD2387 Program System Construction Using C++ 6.0 credits

Course offerings are missing for current or upcoming semesters.
Headings with content from the Course syllabus DD2387 (Autumn 2009–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

Development of C++ from Simula to ISO standard.

All parts of C++ according to the ISO standard including classes, simple and multiple inheritance, generic functions and classes, exceptions, constant declarations, streams, name spaces, type equivalence and type compatibility, the pre-processor.

Program construction using C++: good programming style, object oriented development in C++, rules of thumb and hints for design and implementation of programs in C++, support for modularization and memory handling, making the code effective, common errors and traps, debugging, static and dynamic linking, portability.

The laboratory part consists of two laboratory assignments and a project assignment. The laboratory part will take about 100 hours.

Intended learning outcomes

The goals of the course are to give the students

  • good knowledge of all parts of the C++ programming language
  • knowledge of and proficiency in methods for developing, i.e. design, implementation, testing, and debugging, programs in C++
  • good knowledge of the difficulties with and the weaknesses of C++ and methods to overcome them

so that they will be able to

  • develop functioning program modules in C++ in an effective way.

Literature and preparations

Specific prerequisites

Single course students: 90 university credits including 45 university credits in Mathematics or Information Technology. English B, or equivalent.

Recommended prerequisites

Knowledge of object orientation or Java programming corresponding to DD1361 Programming Paradigms, DD2385 Software Engineering, DD1344 Fundamentals of Computer Science, DD1346 Object-Oriented Program Construction, DD1332 Object Oriented Programming or 2D1343 Computer Science and Numerical Methods.


No information inserted


To be announced at least 4 weeks before course start at course web page. Previous year: J. Lajoie & S. Lippman: C++ primer.

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


  • LAB1 - Laboratory Work, 4.5 credits, grading scale: P, F
  • TEN1 - Examination, 1.5 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.

In this course all the regulations of the code of honor at the School of Computer science and Communication apply, see:

Other requirements for final grade

Written examination (TEN1; 1,5 university credits).
Laboratory assignments (LAB1; 4,5 university credits).

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


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, Information Technology, Information and Communication Technology

Education cycle

Second cycle

Add-on studies

DD2455 Theoretical Foundations of Object-Orientation.


Alexander Baltatzis, tel: 790 9157, e-post:

Supplementary information

You cannot count both this course and 2D1358 in your degreee.