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

DD1387 Program System Construction Using C++ 6.0 credits

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

Content and learning outcomes

Course contents

The development of C++ from C and Simula to ISO standard.

Overview of all parts of C++ according to the ISO standard, including classes, simple and multiple inheritance, overloading, generic functions and classes, exceptions, constant declarations, streams, name spaces, type equivalence and type compatibility, the preprocessor.

Program design with C++: good programming style, procedure at object-oriented development in C++, rules of thumb and tips for design and implementation of C++ programme, support for modularisation, memory handling, making the program code more efficient, common errors and traps, Unicode and localisation, use of the standard library, tools for testing, troubleshooting, static and dynamic linking and name mangling, portability.

The laboratory part (LAB1) consists of two labs and a project assignment. The laboratory part is expected to take about 100 hours.

Intended learning outcomes

On completion of the course, you should be able to

  • program with dynamic memory allocation
  • apply the standard library
  • write correct C++ syntax
  • write test code
  • relate to advanced C++ literature
  • program generics with type parametrization
  • apply, in C++, your prior knowledge of object-oriented programming
  • model an extensive object-oriented project
  • present and justify an object-oriented model

The ambition is to as well as possible, given the allocated time, prepare you on the requirements of the industry on a programmer. On completion of the course you should experience that you master all parts of C++ and that you have obtained a self-confidence so that you can enter existing C++ projects in the industry and develop or maintain their code.

As programmer on a company, you can land in a situation where you are absolutely alone when taking decisions. Then it is important that you master the most central concepts. In the middle of the course there will be given an exam testing the central concepts and also your ability to lookup and explain more difficult concepts.

C++ is a copious and complex language compared to e.g. Java. Some new programming concepts such as dynamic memory handling and type parametrized programming. In addition to be tested in the exam, you will have the opportunity to exercise these concepts in the first labs.

The last assignment is written to be solved with classical object orientation. You are assumed to know object-oriented programming before the start of the course, and your knowledge will be supplemented by the specifics of object orientation in C++.

The last assignment is your way to show that you master central parts of the language C++: that you know how polymorphism and virtual work, that you can put restrictions on data using public/private/friends/const and that you can handle memory allocation correctly.

Literature and preparations

Specific prerequisites

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

Recommended prerequisites

No information inserted

Equipment

No information inserted

Literature

Will be announced no later than 4 weeks before the start of the course on the course web. Previous academic year J. Lajoie & S. Lippman: C++ primer was used

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

Examination

  • 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.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

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

Technology

Education cycle

First cycle

Add-on studies

No information inserted

Contact

Alexander Baltatzis, Email: alba@kth.se