C++ is one of the most widely used languages in scientific computing and HPC software development, valued for its combination of high performance and expressive abstractions. This five-day course introduces C++ from the ground up, covering the language’s core syntax, object-oriented features, the Standard Template Library (STL), and the modern C++11 through C++17 features that are now standard practice in professional software development. It is designed for programmers who know at least one other language and want to write correct, efficient, and maintainable C++ from the start.
Level: Beginner
Language: English
Price and Eligibility: Refer to the registration page for each event (generally free of charge for members of academia from Europe).
Knowledge
- Programming experience in any language (no prior C++ knowledge required)
Technical
- A local C++ development environment with a compiler supporting C++17 or later (GCC, Clang, or MSVC) under Windows, Linux, or macOS; a compatible editor or IDE such as VS Code, CLion, or similar
After completing this course, you will be able to:
- Navigate the C++ type system, including fundamental types, references, pointers, and enumerations
- Define and use classes with constructors, destructors, copy and move semantics, and operator overloading
- Apply core STL containers (vector, array, set, map) and algorithms to write concise, expressive code
- Manage resources safely using smart pointers (unique_ptr, shared_ptr)
- Write generic code using function and class templates
- Handle exceptions and perform input and output using C++ streams
- Organize code using header files, header guards, and namespaces
- Use key C++11 through C++17 features including constexpr, structured bindings, std::string_view, and std::variant
- C++ fundamentals: types, variables, operators, control flow, functions, and the compilation model
- Object-oriented programming: classes, constructors, destructors, copy and move semantics, operator overloading, inheritance, and polymorphism
- Templates and enumerations
- Code organization: header files, header guards, and namespaces
- Exceptions, I/O streams, and type conversions
- The Standard Template Library: containers, iterators, and algorithms
- Smart pointers: std::unique_ptr and std::shared_ptr
- Modern C++: C++11, C++14, and C++17 features including constexpr, structured bindings, std::string_view, and std::variant
- Project: applying C++ concepts in a guided coding and code review session
- 2026, Sep 17 – Oct 2: six-day online course (Register)
- 2025, Sep 18 – Oct 2: six-day online course
- 2024, Sep 12-27: six-day online course
- 2023, Sep 14-29: six-day online course
- 2022, Oct 10-14: five-day online course
For an overview of all NHR@FAU courses, visit the course overview page.