If you have any questions related to the course or the course material, please do not hesitate to contact us via email to marco.favier@uantwerpen.be or basil.rommens@uantwerpen.be.

Session 0
(03/10/2024)

This is the first session in a series of 10 labs covering various aspects of programming in C++; ranging from the most basic examples to more complicated topics. Most of the things covered in the theoretical course notes will be applied in practice during these sessions. For starters, you'll see an introduction to the more practical aspects of the labs: setting up the programming environment, version control, etc.

Read more »

Session 1
(10/10/2024)

You will learn about the various types of variables such as built-in primitive types, structures, and classes. Also covered are pointers and references to variables and the semantics of passing and retrieving data from functions as well as conversions between various types.

Read more »

Session 2
(17/10/2024)

This session covers construction and destruction of class objects and other related topics. You'll also see how operator overloading works and how it can be used for convenience. We end this session with an explanation on continuous integration using CircleCI.

Read more »

Session 3
(24/10/2024)

This week first covers the important concepts of smart pointers, move semantics and rvalue references.

Read more »

Session 4
(31/10/2024)

Today's lab session covers class inheritance and the use of abstract classes. Of special importance are the details concerning creation, destruction and copying of objects within class hierarchies. Along the way you will learn a small & handy C++11 feature. The main exercise builds upon the function-plotter exercise you did last week.

Read more »

Session 5
(14/11/2024)

We will first start off with a small test to check your inheritance skills after session 4. Afterwards, "safe programming" is the main topic of today's lab session: error handling through the use of exceptions. We'll also cover a small addition to operator overloading: user-defined typecast operators. Also covered: a utility library for parsing command-line arguments and some interesting debugging tools to help improve your (project) C++ code.

Read more »