Navigation and service

Training course "Advanced C++ with Focus on Software Engineering" @ LRZ

12.Jun.2019 09:00
14.Jun.2019 17:00
LRZ Garching

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. The following topics will be covered:

Day 1 schedule:

  • 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?

Day 2 schedule:

  • 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

Day 3 schedule:

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

Contents are subject to modifications.