The course "Advanced Programming in C++" provides a fast-paced introduction to the C++ programming language. You will learn the required background knowledge, including

  • built-in data types,
  • memory management,
  • pointers and references,
  • object-oriented programming,
  • generic programming,
  • functional programming, and
  • the C++ standard library.

In addition, various best practices for developing large-scale software projects are presented. Furthermore, we introduce tools and processes required to systematically and automatically build C++ software systems.

This course addressess multiple programming styles and professional programming, including system build processes, multi-person code development, raw memory management, and performance optimization. As another general aspect of advanced programming, we aim at robust, performing, industrial-strength code. We assume basic knowledge in programming techniques and software engineering in general.

For the assigments and hands-on sessions, a C++14-enabled compiler (GCC, Clang, MSVC), git, and CMake are required. Additionally, we assume you solve the assignments on either Windows, Linux, or macOS.