Modern C++ Software Design

 

Contents

"There is no point in developing software unless you care about it doing it well."
(Andrew Hunt, David Thomas: The Pragmatic Programmer)

 

This advanced C++ training is a course on good software design with the C++ programming language. The focus of the training is on the essential and C++-specific software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. The course aims at understanding the core of the C++ programming language, teaches guidelines to develop mature, robust, maintainable, safe, and efficient C++ software with a minimum of dependencies, and helps to avoid the most common pitfalls.


Day 1 schedule:

  • Concepts and the STL
  • Overview of the STL
  • Proper use of the STL
    • Proper use of algorithms
    • Proper use of containers

Day 2 schedule:

  • Class Design
    • Compiler Generated Functions
    • Copy Elision
    • Move Semantics
    • Return Values and Parameters
    • Object Lifetimes
    • RAII
    • Member Data

Day 3 schedule:

  • Class Design
    • Applied Class Design
    • Visibility vs. Accessibility
  • Dynamic Polymorphism
    • Motivation
    • Classical Design Patterns Revisited
    • Public Inheritance
    • Surprises in Object Hierarchies


Contents are subject to modifications.

Prerequisites

Solid base on C++ and at least one year of experience with the language is needed.

Hands-On

Participants are expected to use their own machines. Any operating system (Windows, Linux, MacOS, ...), any IDE/editor (MS Visual Studio, CLion, vi, emacs, ...) and any compiler capable of at least C++14 (GCC, Clang, MSVC, ...) can be used. Alternatively it is possible to use a C++ online compiler (e.g. cpp.sh, wandbox.org, repl.it).

Content Level

The content level of the course is broken down as:

Beginner's content:

50%

Intermediate content:

50%

Advanced content:

0%

Community-targeted content:

0%

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

Language

English

Teachers

Klaus Iglberger (External)

Assistants: Carla Guillen, Carmen Navarrete, Martin Ohlerich (LRZ)

Prices and Eligibility

The course is open for people from academia and industry.

The following categories can be selected during registration:

  • [Employees of GCS Centres] Employees of LRZ/HLRS/JSC: 0 EUR
  • [Students without Diploma/Master] Students without Diploma/Master: 30 EUR
  • [Academia Germany] Students with Diploma/Master (PhD students) and members of German universities and German public research institutes: 60 EUR
  • [Academia EU/Associated Countries] Students with Diploma/Master (PhD students) and members of universities and public research institutes within EU or Associated/Other Countries to the Horizon 2020 programme: 120 EUR
  • [Academia non-EU/Associated Countries] Students with Diploma/Master (PhD students) and members of other universities and public research institutes: 240 EUR
  • [Others] Non-academic participants: 600 EUR

Registration

Please register with your official e-mail address to prove your affiliation. Following your successful registration, you will receive an invoice approx. 2 weeks before the course. After paying the invoice, you will not receive a receipt. If you require proof of payment (e.g., for reimbursement) please use a copy of the invoice together with your bank statement indicating the payment.

Similar Offers

If you prefer a similar course in German or if you are looking for other dates, then please look at the C++ courses at HLRS, at VSC in Vienna, or directly on Klaus Iglberger's course page.

Withdrawal Policy

See Withdrawal

Legal Notices

For registration for LRZ courses and workshops we use the service edoobox from Etzensperger Informatik AG (www.edoobox.com). Etzensperger Informatik AG acts as processor and we have concluded a Data Processing Agreement with them.

See Legal Notices

Online Course Modern C++ Software Design
Number hcpa1w25
Available places 60
Date 20.10.2025 – 22.10.2025
Price EUR 0.00 – 600.00
Location ONLINE


Room
Registration deadline 06.10.2025 23:59
E-mail education@lrz.de
No.
1
Date20.10.2025
Time10:00 – 17:00
TeacherKlaus Iglberger
Carmen Navarrete
LocationONLINE
DescriptionDay 1
2
Date21.10.2025
Time10:00 – 17:00
TeacherKlaus Iglberger
Carmen Navarrete
LocationONLINE
DescriptionDay 2
3
Date22.10.2025
Time10:00 – 17:00
TeacherKlaus Iglberger
Carmen Navarrete
LocationONLINE
DescriptionDay 3
No. Date Time Teacher Location Room Description
1 20.10.2025 10:00 – 17:00 Klaus Iglberger
Carmen Navarrete
ONLINE Day 1
2 21.10.2025 10:00 – 17:00 Klaus Iglberger
Carmen Navarrete
ONLINE Day 2
3 22.10.2025 10:00 – 17:00 Klaus Iglberger
Carmen Navarrete
ONLINE Day 3