TDDD38 Advanced Programming in C++
Seminars
To find the slides for previous format of the course, see this page.
This page serves as the main page for all the relevant course
material. The slides for each seminar is given together with relevant
reading material, exercises, tools and other relevant things.
Note that the published slides have extra material compared to the lectures.
|
|
Intro lecture |
Introduction and course information: slides (lecture version)
Introduction to the course and some basics.
Reading material:
-
Guide for
studying This page discusses in depth how to
succeed in this course and its examination. Please read
through it and take it seriously. This course is a
self-study course so you will have to practice
discipline to actually learn the contents and this guide
give suggestions and insights into how this can be done.
-
Lecture
slides on pointers from TDDE18 If you are new
to C++ or C you can read through these slides to get a
basic grasp of memory and pointers before moving on to
the more advanced document below.
-
Pointers
and dynamic memory This document serves as a
thorough introduction to pointers and dynamic
memory conceptually. Generally it is assumed that
students are familiar with these concepts from before
(see slides linked above), but if you are not then this
document is a great starting point for learning how it
works.
Exercises:
-
Introductory labs from TDDE18:
Recommended reading:
|
|
|
Seminar 1 |
Fundamentals I: slides (lecture version)
Data types, implementation-defined behaviour, function overloading, implicit type conversion and IO.
Reading material:
Exercises:
|
|
|
Seminar 2 |
Fundamentals II: slides (lecture version)
Compound types (struct and class), memory layout of objects, constructors, operator overloading and value categories.
Exercises:
|
|
|
Seminar 3 |
Templates I: slides (lecture version)
References, function templates, nontype template parameters, explicit
template specialization, template argument deduction, overload
resolution, compilation and linking.
Exercises:
C++-20 info:
Useful tools:
- Compiler Explorer - a tool that lets you see the generated assembler of your code, useful to see what is actually generated from your templates (remember to add the -O2 flag).
|
Page responsible: Christoffer Holm
Last updated: 2026-02-04