Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI

Advanced Development in C++ (Wintersemester 2017/2018)

Dozent: Prof. Dr. Jürgen Döllner (Computergrafische Systeme) , Willy Scheibel (Computergrafische Systeme) , Jan Ole Vollmer (Computergrafische Systeme)

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 27.10.2017
  • Lehrform: Projekt / Seminar
  • Belegungsart: Wahlpflichtmodul
  • Maximale Teilnehmerzahl: 24

Studiengänge, Modulgruppen & Module

IT-Systems Engineering MA
  • IT-Systems Engineering
    • HPI-ITSE-A Analyse
  • IT-Systems Engineering
    • HPI-ITSE-E Entwurf
  • IT-Systems Engineering
    • HPI-ITSE-K Konstruktion
  • IT-Systems Engineering
    • HPI-ITSE-M Maintenance
  • HCGT: Human Computer Interaction & Computer Graphics Technology
    • HPI-HCGT-K Konzepte und Methoden
  • HCGT: Human Computer Interaction & Computer Graphics Technology
    • HPI-HCGT-S Spezialisierung
  • HCGT: Human Computer Interaction & Computer Graphics Technology
    • HPI-HCGT-T Techniken und Werkzeuge
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-K Konzepte und Methoden
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-S Spezialisierung
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-T Techniken und Werkzeuge


The project seminar "Advanced Development in C++" is an advanced C++ seminar with supplementary lectures.

The learning targets include

  • deepening knowledge in C++ and the STL,
  • software development using C++,
  • upcoming features of C++17 and C++20, and
  • using C++ libraries and frameworks.

The core of the seminar is the development of and in C++ software projects with strong focus on advanced C++ challenges in teams. We target for a full development cycle including release management. The projects are affiliated with one or more of the topics from the lecture syllabus:

  • Development Guidelines
  • Best Practices, Common Pitfalls, Upcoming Features
  • Cross-Platform Development
  • Language and Compiler Internals (Exceptions, Attributes, Optimization, Vectorization)
  • Foreign Language Integration
  • Multithreading / Parallelization
  • Heterogeneous Computing
  • Software Project Setup


To follow the topics and perform the development tasks, students should have basic knowledge in C++ and application programming (as provided by the lecture "Advanced Programming in C++" or similar course).


Course literature are online websites, references, standards, and C++ programming books, including:

  • Bjarne Stroustrup: “The C++ Programming Language”, Addison-Wesley Professional, ISBN 978-0321563842
  • Bjarne Stroustrup: “A Tour of C++”, Addison-Wesley Professional, ISBN 978-0321958310
  • Scott Meyers: “Effective Modern C++”, O’Reilly Media, ISBN 978-1491903995
  • John Lakos: “Large-Scale C++ Software Design”, Addison-Wesley Professional, ISBN 978-0201633627
  • ISO International Standard ISO/IEC – Programming Language C++, https://isocpp.org/std/the-standard

Lern- und Lehrformen

Students develop in teams using C++ and libraries, tools, and techniques from the C++ eco system. The development tasks are accompanied by tailored lectures for the required topics.

The course materials are provided in english, the lectures are held in german and the presentations can be held in either german or english.


The assessment for this course includes practical work, involving software development, release management, and oral presentations:

  • 50% software project development
  • 40% oral presentations (split in three presentations with 10%, 10% and 20% individual weight)
  • 10% software project publication, integration or submission


The seminar has one regular slot:

  • Monday 13:30 in HS 3 (lecture hall)

The slots are mainly used for lectures but the presentations are also timed for the seminar slots.

The first meeting is on Oct 16.