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.


German (slides in English)


Klaus Iglberger (External)


Each participant will get a paper copy of all slides.


via online registration form


for registration is Mar. 20, 2016


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 food and drinks at coffee breaks)



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

Shortcut-URL & Course Number