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 certificate of participation will be awarded to all participants who actively engage in 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://hpc.fau.de/teaching/tutorials-and-courses/.