C++ Practice

Lecture and Exercises (LSF)

  • Prof. Dr. Robert Strzodka
  • Tuesday, 9:15 - 11:00, 11:15 - 13:00
  • 4 SWS and 6 ECTS
  • Online
  • Start 03.11.2020
  • Moodle


Since 2011 the C++ language has started a dynamic development with the releases C++11, C++14, C++17, C++20 with many new features and idioms. This development is very important because software and hardware complexity have grown greatly and the programming languages must keep pace. Modern C++ feels like a new language. While most of the constructs from C and older C++ versions are still available for compatibility, their use is often discouraged in favor of better and faster programming style in modern C++.  Whether in industry or academia modern C++ is the language to know.

This lecture is not for C++ beginners! Participants must at least have attended a first C++ course like this one and possess an understanding of all basic language concepts such as references, classes, inheritance, overloading, templates.  In addition, several years of programming experience are recommended, otherwise going through the exercises and projects will be very tough. The focus is on guide lines for an effective programming style which makes use of modern language features from the start.

The lecture and exercises are based on the book A Tour of C++ (Second edition) by Bjarne Stroustrup, it is important to get the second edition which includes C++17. What the book tries to achieve is best explained in the note: A shared view of C++. The book can be purchased from many retailers as ebook or on paper. To dive deeper into certain topics, there is the more detailed book "The C++ programming language" also by Bjarne Stroustrup. Both books can be accessed online at the Heidelberg University Library.

Each week there will be a reading assignment, in this way we will study the entire book from start to end, one to two chapters per week. The lectures will not be used for presenting the chapters but rather discussing them. There will be regular exercises and an exam at the end.