C++ for Beginners

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.