• Modern C++ Software Design (Advanced)
  • 2024-11-19T10:00:00+01:00
  • 2024-11-22T11:00:00+01:00
  • 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.
When

Nov 19, 2024 10:00 AM to Nov 22, 2024 11:00 AM
(Europe/Berlin / UTC100)

Where

Hybrid Event - Stuttgart, Germany

Contact Name

Contact Phone

0711 685 87223

Add event to calendar

iCal

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, maintainable, and efficient C++ code.

Course participants should have at least two to three years of experience with the language. This includes a solid knowledge of the syntax of C++, experience with the standard library (std::vector, std::list, std::unique_ptr, …), hands-on experience with both template-based and inheritance-based designs and some experience with design patterns.

Course participants can bring their own laptops, but HLRS will provide machines with an up-to-date C++ environment. For these, participants should have basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs). In the online course, participants are expected to use their own devices. The programming tasks, including both Makefiles and CMake files, will be distributed before the course.

The course language is German. The slides are in English.

If you will participate remotely, you should have access to an C++17 programming environment.

If you want a similar course in English, then please look at the 3- or 4-day advanced C++ courses at LRZ , the 4 day course at VSC in Vienna or directly on Klaus Iglberger's course page.

Content levels
  • Basic: 3 hours
  • Intermediate: 9:30 hours
  • Advanced: 13 hours

Please register until November 2.

For more details and prerequisites, have a look at
https://www.hlrs.de/training/2024/cpp4/

Learning outcomes

After this course, participants will:

  • have a detailed understanding of the essential OO design principles
  • have gained knowledge about fundamental C++ programming concepts and idioms
  • be able to properly design classes and class interfaces
  • know about the importance of exception safe programming
  • have gained insight into kernel development with C++
  • avoid the usual pitfalls in the context of inheritance
  • comprehend the advantages of value-based design
  • understand the virtue of clean code


We strongly recommend that you take the opportunity and attend on-site since on-site attendance is much more effective and efficient in our experience. Therefore we might also give preference to on-site participants.

Fees
  • Students without master’s degree or equivalent: 40 Euro
  • PhD students or employees at a German university: 115 Euro
  • PhD students or employees at a university in an EU, EU-associated or PRACE country other than Germany: 180 Euro
  • PhD students or employees at a university outside of EU, EU-associated or PRACE countries: 360 Euro
  • Participants from public research institutes, public service providers or government: 600 Euro
  • Other participants, e.g., from industry: 960 Euro

Our course fee includes coffee breaks (in classroom courses only).

Lunch Breaks

We plan to have lunch in the unversity's canteen (Mensa Stuttgart-Vaihingen, have a look at their menu online). Two other near possibilities for lunch are on all days:

  • A food truck from 11:00-14:00 in Allmandring 35, approximately 300 m from HLRS,
  • Bakery Sehne, near bus stop "Im Lauchhau", approximately 400 m from HLRS.

We will update this information if opening times etc. change and inform you more precisely before the course starts.