Hide menu

TDDD38 Advanced Programming in C++

Examination

If you are a returning student from before 2026, please see this page for an overview of your examination.

If you wish to join the new structure of the course, please contact the teacher for guidance on how to do so.

Due to administrative reasons we had to rescale the total number of points for module #2 and module #3 (DAK2 and DAK3). This leads to a rescaling of the grading thresholds. Note that this does not effect the results from DAK1 what-so-ever.

The rescaling means that DAK1, DAK2 and DAK3 are all worth 10 points (so the course total is 30, not 25). This does not change the planned organization of the exams, all that really has changed is how many points each assignment is worth during the exam and it rebalances the modules so they all contribute equally to your final grade.

See the examination information page for the new grade thresholds.

General structure

The examination of this course consists of three modules (templates, STL and advanced topics), each of which can be examined in two ways: through the continuous assessment (DAK1, DAK2, DAK3) and/or through the final exam (DAT3).

Once a module is passed (either through DAK or DAT) it is registered in Ladok meaning you don't have to write it again. Informally speaking, once a module is passed it is passed forever, regardless which examination it was passed through (DAK or DAT).

This means that you have certain freedoms in how you are examined during the course. Broadly speaking you have two options: either you try to complete the course as it progresses by writing the continuous assessments or you write the final exam. You can also opt for a combination of both, meaning you can choose to skip certain continuous examination opportunities and instead write corresponding module during the exam.

If you do not pass a continuous examination opportunity, then you have the opportunity to pass corresponding module during the final exam instead.

The grading of each module is equivalent, meaning that for each module the number of points and the type of questions/assignments are the same for both the continuous assessment and the final exam. However, the number of assignments and the distribution of points across those assignments may vary between examination opportunities per module.

Continuous assessment

There are three voluntary examination opportunities (called Test in TimeEdit) throughout the course called DAK1, DAK2 and DAK3. These are two hour exams, each of which covers one of the three modules of the course.

Each module is booked for two hours and are worth 10 points.

Exam

There is a five hour final exam planned for the course (DAT3) which consists of three parts: one part for each module of the course. These modules are solved independently during the exam time. You can skip all modules you have already completed however you are permitted to write them again if you want to increase your point total for that module.

Grade

The final grade you receive for the course is based on the total number of points earned throughout each module. If you wish to increase your grade you can choose to write a module you have previously passed during the exam. The points you get during a module is always determined by the examination where you got the highest point total.

The total number of points available for the course is 30 points. The grade is determined by the following thresholds:

  • 0-11p: U/FX
  • 12-16p: 3/C
  • 17-21p: 4/B
  • 22-30p: 5/A

Each module is worth a certain amount of points (summarized in table below) and in order to pass a module a specific point threshold must be met.

Module Total points Point threshold
Templates (DAK1)10p4p
STL (DAK2)10p4p
Advanced topics (DAK3)10p4p

Note: To pass the course you need to earn at least one point in addition to the minimum thresholds of each module.

Instructions for the computer exams

Please, sign up for an exam only if you really have the intention to participate. The number of places is limited, and our experience is that noticeable more students register for this exam than actually turns up.

If you have registered, but for any reason decide to not participate, please, withdraw your registration as soon as possible.

The environment will include GNU GCC g++ (9.3.0 and 10.3.0), LLVM clang (10.0.0 and 11.0.0), emacs, gedit, vim, visual code, atom, cppreference.com Reference, and valgrind. Three aliases for compiling with g++ are available:

   g++17:  g++ -std=c++17
   w++17:  g++ -std=c++17 -pedantic -Wall -Wextra

   e++17:  g++ -std=c++17 -pedantic -Wall -Wextra -Werror
(warnings become errors)
   g++20:  g++-10 -std=c++20
   w++20:  g++-10 -std=c++20 -pedantic -Wall -Wextra
(Strongly recommended!)
   e++20:  g++-10 -std=c++20 -pedantic -Wall -Wextra -Werror
(warnings become errors)

Please note that the warning flag -Weffc++ is recommended as well.

Assistance during exam

You will be able to contact the teacher using a simple chat client during the exam.

Means of assistance

•  You may bring an An English-* vocabulary. No other literature or any other kind of means of assistance of your own may be used.

•  cpppreference.com Reference will be available, get acquainted! (the language part will not be avaliable)


Page responsible: Christoffer Holm
Last updated: 2026-04-13