Modern C++ Software Design (Intermediate)

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 registration form and additional details can be found here: https://events.uni-paderborn.de/e/cppintermediate.

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.

Presenter:
Klaus Iglberger
Date:
June 15-18
Location:
Online via Zoom (link will be provided to participants shortly before the first day)
Duration:
9:00-17:00 on each day
Max. Participants:
40
Language:
English
Topics:

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.

Target Audience:
Employees and students who took Mr. Iglberger's previous course or have equivalent knowledge already and want to improve their knowledge of C++
Prerequisites:

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.

Registration:

Registration is performed via the Indico registration system operated by Uni Paderborn, as part of the HPC.NRW cooperation project. To register go here: https://events.uni-paderborn.de/e/cppintermediate.