Modern C++ Software Design (Intermediate)

Via Zoom (Zoom link will be e-mailed to participants shortly before the course)

This course is an intermediate-level C++ programming course and is a followup to the C++ for Beginners course held in October by the same trainer.

The course is open to all employees and students of the Uni Siegen, as well as other universities in NRW if there are places left. It is provided free of charge, we only ask that you provide detailed constructive feedback at the end.

If you are not with Uni Siegen, you will be put on a waiting list. You will not receive a definite Yes/No answer before June 1.

Please note that this is not an "Introduction to Programming" course. Previous experience with C++ programming, specifically the previous C++ course or equivalent, is highly recommended. You can find the topics covered in the previous course here.


The course will take place on June 15-18, 2021, from 9 AM to 5 PM on each day. The course will be held online via Zoom. It will be held in English.

The speaker is Klaus Iglberger.


Day 1

  • Chapter 1: Concepts and the STL
    • Concepts in C++ (Introduction to Generic Programming)
    • Overview of the STL
    • STL Algorithms
    • STL Containers
    • STL Iterators

 Day 2

  • Chapter 2: C++ Templates
    • Function Templates
    • Class Templates
    • Variadic Templates
    • Tempalte Specialization
  • Chapter 3: Class Design
    • Compiler-generated Functions
    • Object Lifetimes
    • RAII

Day 3

  • Chapter 3: Class design
    • Move Semantics
    • Member Data
    • Class Interfaces
    • General Class Design
    • Visibility vs. Accessibility

Day 4

  • Dynamic Polymorphism
    • The Perils of Inheritance
    • Value Semantics (by Means of the Strategy and Visitor Design Patterns)
    • Proper Use of Public Inheritance
    • Surprises in Inheritance Hierarchies
    • Design Patterns Revisited (Visitor & Strategy)

Contents are subject to modifications.

Organization (Jan Steiner)
The agenda of this meeting is empty