Hide menu

TDDD38 Advanced Programming in C++ (6 ECTS)

Course content is found on the lectures page.

This is an advanced course on the programming language C++. The course is given twice a year, autumn and spring, and runs the whole semesters.

Please note, late registration is handled by the course's director of studies (studierektor). See the contact page in the menu to find the current director of studies and contact that person using the form here: Swedish students | Master / exchange students
Please remember that you'll still have to register for the course in the student portal after you have been accepted.

Latest News...

2020‑01‑27  Seminar 1

If you didn't get the E-mail with the Zoom link, please contact me (christoffer.holm@liu.se).

Here is the link for today: https://liu-se.zoom.us/j/63322016730?pwd=SkZEU05lOEFlN056eExNU0Vtckwrdz09

Meeting ID: 633 2201 6730
Password: 253091

2020‑01‑22  First lecture


Welcome to the first lecture! It will be given in the following Zoom room:

The lecture starts at 08:15. If you have questions during the lecture, please use the "raise hand" feature and either write your question in the chat or wait for me to acknowledge you before unmuting your microphone.

2020‑01‑19  Welcome E-mail

The following E-mail has been sent out. If you did not get it, please E-mail christoffer.holm@liu.se as soon as possible.

Welcome to TDDD38/726G82!

You get this E-mail since you are admitted to the course TDDD38 or 726G82. This course is given in English, but all course personnel speaks both Swedish and English so you can ask questions and discuss with us in the language you prefer.

This period the course will be given entirely online. This means that all lectures and office hours will be given through Zoom.

Please note that the first lecture has been moved to 2021-01-22 at 08:15-10:00 since I had a conflict in my schedule. So please update your schedule if it doesn't do that automatically.

information about the course can be found on the course website: https://www.ida.liu.se/~TDDD38/, make sure to read through it. In this E-mail I will summarize the most important information, but you should still look at the course website since I will not cover everything in this E-mail.

General Information

The course gives 6 credits. It spans the entire term and has a practical computer exam at the end. The exam is graded U, 3, 4, 5.

The prerequisite of the course is that you have good programming knowledge in at least one procedural or object-oriented language (e.g. Ada, C, Java or C++) and knowledge about fundamental object-oriented programming (classes, inheritance, polymorphism). During the course it will be assumed that you already know how to make a good class hierarchy and how to solve common problems. The focus on the course is how we can apply more advanced features to make our code better, both in terms of efficiency, but also in terms of readability, maintainability, safety etc.

This is a self-study course which means that you will have to plan your own learning. The course gives you four resources in order to aid your learning: lectures/seminars, a lot of exercises, office hours and the opportunity to ask questions by E-mail.


This course consists of 14 lectures/seminars. The reason I'm calling them both lectures and seminars is because they tend to be a bit more interactive than the classical lecture model. I will usually give some minor quiz questions during the lectures that you can answer and discuss with each other. I also like to have some discussion during the lectures. This means that I strongly encourage you to ask questions or give comments. As stated before: this is a self-study course. What that means is that it is up to you to learn the material, but it also means that I will be flexible with my lectures. So if you want a certain topic to be covered, please let me know and I will try to fit it into the lectures. Any and all suggestions are welcomed!

Most of the earlier lectures (first period) have a set of exercises associated with them. These are exercises I recommend you solve in order to practice using the concepts covered in the lectures.

My lectures tends to be problem driven. This means that I will often introduce a concept by first introducing a problem and then "arrive" at the concept as a solution to said problem. This means that the lectures are quite example heavy. I will always publish my slides to the course webpage (no later than the day of the lecture). In the published slides I will add extra slides with comments so it is easier to remember what I talked about during the lecture when you review the slides.

The lectures will be live streamed through Zoom. I will send out an E-mail with the invitation about 15-30 minutes before the lecture starts. If you haven't receieved the invitation by then, please contact me! The first lecture link will also be published on the course website.

For more information, look at the course website.

Office Hours

During the course I will arrange what I call "office hours" which is a time slot when I am available for questions or discussion. These are called "Supervision" in the Timeedit schedule. I welcome all programming related questions and discussions!

If you need help, you can send me an E-mail and specify whether you want me to answer over E-mail or if you want to discuss it over Zoom. If you want to discuss it over Zoom, specify which office hours session you want to discuss it on and we will book a time.

I will also, from time to time, arrange open hours where I will host a Zoom call where you can join to ask questions or listen to answers I give to other students questions. I will send out an E-mail a week before these occasions.

More information will be covered during the first lecture. See you then!

All messages >>

Page responsible: Christoffer Holm
Last updated: 2021-03-03