Advanced C++ with Focus on Software Engineering

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

Overview

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.

Contents
Contents

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
Prerequisites
Prerequisites

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.

Language
Language

German (slides in English)

Teacher
Teacher

Klaus Iglberger (External)

Handouts
Handouts

Each participant will get a paper copy of all slides.

Registration

via online registration form

Deadline
Deadline

for registration is Mar. 20, 2016

Fee
Fee

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)

Organization

Contact

Andreas Ruopp phone 0711 685 87259, ruopphlrs.de
Rolf Rabenseifner phone 0711 685 65530, rabenseifnerhlrs.de
Joerg Hertzer phone 0711 685 65932, hertzerhlrs.de

Shortcut-URL & Course Number

http://www.hlrs.de/training/2016/CPP1