• Skip navigation
  • Skip to navigation
  • Skip to the bottom
Simulate organization breadcrumb open Simulate organization breadcrumb close
NHR@FAU
  • FAUTo the central FAU website
Suche öffnen
  • RRZE
  • NHR-Verein e.V.
  • Gauß-Allianz

NHR@FAU

Navigation Navigation close
  • News
  • About us
    • People
    • Funding
    • BayernKI
    • NHR Compute Time Projects
    • Tier3 User Project Reports
    • Support Success Stories
    • Annual Reports
    • NHR@FAU Newsletters
    • Previous Events
    • Jobs
    Portal About us
  • Research
    • Research Focus
    • Publications, Posters & Talks
    • Performance Tools and Libraries
    • NHR PerfLab Seminar
    • Projects
    • Workshops
    • Awards
    Portal Research
  • Teaching & Training
    • Lectures & Seminars
    • Tutorials & Courses
    • Monthly HPC Café and Beginner’s Introduction
    • Theses
    • Student Cluster Competition
    Portal Teaching & Training
  • Systems & Services
    • Systems, Documentation & Instructions
    • Support & Contact
    • HPC User Training
    • HPC System Utilization
    Portal Systems & Services
  • FAQ

NHR@FAU

  1. Home
  2. Teaching & Training
  3. Tutorials & Courses
  4. Modern C++ Software Design

Modern C++ Software Design

In page navigation: Teaching & Training
  • Lectures & Seminars
  • Tutorials & Courses
    • Accelerating CUDA C++ Applications with Multiple GPUs
    • C++ for Beginners
    • Core-Level Performance Engineering
    • Fundamentals of Accelerated Computing with CUDA C/C++
    • Fundamentals of Accelerated Computing with CUDA Python
    • Fundamentals of Accelerated Computing with Modern CUDA C++
    • Fundamentals of Accelerated Computing with OpenACC
    • GPU Performance Engineering
    • Hybrid Programming in HPC - MPI+X
    • Introduction to OpenMP
    • Introduction to the LIKWID Tool Suite
    • Modern C++ Software Design
    • Node-Level Performance Engineering
    • Parallel Programming of High-Performance Systems (PPHPS)
    • Performance Engineering for Linear Solvers
    • Scaling CUDA C++ Applications to Multiple Nodes
  • Monthly HPC Café and Beginner's Introduction
  • Theses
  • Student Cluster Competition

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/.

Erlangen National High Performance Computing Center (NHR@FAU)
Martensstraße 1
91058 Erlangen
Germany
  • Imprint
  • Privacy
  • Accessibility
  • How to find us
  • RSS Feed
Up