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.