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 following page.
Please remember that you'll still have to register for the course in the student portal after you have been accepted.

Latest News...

2022‑01‑26  Seminar 1

Welcome to seminar 1, today we will talk about several things that are fundamental to know for this course. Note that the seminar is called "basic C++" but most things I'll talk about today are not something you learn in basic courses. For example: I'll talk about lvalues and rvalues, the difference between different ways initialize variables, enums, arrays etc.

The seminar is given in the following Zoom room:


Meeting ID: 620 9618 7638
Passcode: 884987

I hope to see you there!

2022‑01‑19  Intro lecture

The following E-mail was sent out to everyone in the course. If you did not get it, please contact me immediately at: christoffer.holm@liu.se.

Welcome to the first lecture, it is given in the following Zoom room (for now I do not require authentication so you should be able to join even if you haven't gotten your LiU account to work yet):


Meeting ID: 672 9499 2024
Passcode: 230393

If you have questions you can either write them in the chat or raise your hand and then ask them via your microphone when I give you the word.

In general I will not be recording the lectures, see here for more info: https://www.ida.liu.se/~TDDD38/lecture/recording.en.shtml so it is no use in asking. I will only deem it necessary if there are technical difficulties with Zoom, or if the lecture overlaps with other things in such a way that the majority cannot attend the lecture.

Today I will introduce the course and give you some general context. The lecture starts at 13:15.

2022‑01‑18  Welcome to the course

Welcome to TDDD38!

If you didn't get this message as an E-mail, please contact me as soon as possible: christoffer.holm@liu.se.

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.

Due to the increased spread in society we have decided that the course will be given entirely online until further notice. This means that all lectures and office hours will be given through Zoom.

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 and quizzes, 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 received the invitation by then, please contact me! The first lecture link will also be published on the course website.

The first lecture is given tomorrow (Wednesday 19th January 13:15-15:00) via Zoom: the link will be sent via E-mail (and be published on the course website for the first seminar).

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! You can find more information about this on the course website: https://www.ida.liu.se/~TDDD38/info/office_hours.en.shtml .

Note that for the first two weeks (at least) I will not be at my office during office hours, instead it will be entirely on Zoom until I say otherwise.

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

All messages >>

Page responsible: Christoffer Holm
Last updated: 2021-08-31