Advanced C++ with Focus on Software Engineering

Enterprises & SME Research & Science
Advanced C++ with Focus on Software Engineering


This advanced C++ training is a course on object-oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, and maintainable C++ code.


1st day schedule (9:00 - 17:30)

  • Essential Object-Oriented Design Principles
    • The core of object-oriented programming
    • The SOLID principles
  • Concepts and the STL
    • Overview of the STL
    • Proper use of the STL
  • Class Design
    • Know what your compiler does for you
    • Inside/Outside: What should (not) be inside a class?

2nd day schedule (9:00 - 17:30)

  • Class Design (cont.)
    • Const Correctness
    • Interface design
    • Visibility vs. Accessibility
  • Robust Code
    • Error propagation
    • Exception Safety
    • RAII
    • Handling Legacy Code
  • Proper Use of Dynamic Inheritance
    • Non-public inheritance
    • Public inheritance

3rd day schedule (9:00 - 16:30)

  • Dependency-Breaking Techniques
    • Non-Intrusive Design
    • C++ 11/14 Update

Gained Skills

After this course, participants ...

  • ... will have a detailed understanding of the essential OO design principles
  • ... will have gained knowledge about fundamental C++ programming concepts and idioms
  • ... will be able to properly design classes and class interfaces
  • ... will know about the importance of exception safe programming
  • ... will avoid the usual pitfalls in the context of inheritance
  • ... will comprehend the advantages of non-intrusive design
  • ... will understand the virtue of clean code

Course participants should have basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs). Solid base on C++ and at least one year of experience with the language is needed.


The course language is German. The slides are in English.


Klaus Iglberger (External)


Each participant will get a paper copy of all slides.

Further course material can be found here (for participants only).


The course is full. Therefore, registration is closed.
(Course and registration information)


Students without Diploma/Master: 30 EUR.
Students with Diploma/Master (PhD students) at German universities: 60 EUR.  
Members of German universities and public research institutes: 60 EUR.
Members of universities and public research institutes within EU or PRACE member countries: 120 EUR.   
Members of other universities and public research institutes: 240 EUR.  
Others: 600 EUR.
(includes coffee breaks)


Travel Information and Accommodation

see our How to find us page.


Andreas Ruopp phone 0711 685 87259,
Rolf Rabenseifner phone 0711 685 65530,
Joerg Hertzer phone 0711 685 65932,

Shortcut-URL & Course Number