Modern C++ Software Design

Course Description

This advanced course focuses on software development using the C++ programming language. It emphasizes essential principles, concepts, idioms, and best practices that enable developers to write professional, high-quality code.

Participants will gain insight into key C++ paradigms – object-oriented, functional, and generic programming – and learn guidelines for developing robust, efficient, maintainable, and mature C++ applications.

Certification

A digital certificate of attendance will be awarded to all participants who attended the majority of the course.

Prerequisites

A local setup capable of compiling and executing C++ applications is required (i.e. participants are expected to use their own machines for the exercises).

  • Any operating system (Windows, Linux, MacOS, …), any IDE/editor (VS Code, CLion, vi, emacs, …) and any compiler capable of at least C++14 (GCC, Clang, MSVC, …) can be used.
  • The programming tasks, including both Makefiles and CMake files, will be distributed before the course.

Participants should additionally meet the following requirements:

  • At least one year of experience with the language is needed. This includes a good understanding of the basic mechanics (header files, source files, compilation), good knowledge of the syntax of C++, and some experience with templates and inheritance.
  • Knowledge about the most common classes from the standard library (e.g. std::vector, std::unique_ptr, … ) is beneficial.

Upcoming Iterations and Additional Courses

You can find dates and registration links for this and other upcoming NHR@FAU courses at https://go-nhr.de/trainings .