0000002592 21S 4SWS VI Concepts of C++ programming (IN2377)   Hilfe Logo

LV - Detailansicht

Wichtigste Meldungen anzeigenMeldungsfenster schließen
Allgemeine Angaben
Concepts of C++ programming (IN2377) 
lecture with integrated exercises
Summer semester 2021
Informatics 16 - Chair of Computer Aided Medical Procedures (Prof. Navab)
(Contact information)
Allocations: 1 
Angaben zur Abhaltung
First, the module studies the basic concepts of the C++ language (syntax, strong typing, type deduction). Then, the module studies the central, modern C++ programming concepts.
- Concepts for build systems and dependency management: concepts for automatic compilation, linking and management of dependencies are studied. Additionally, concepts for continuous testing and integration are investigated.
- Concepts for resource management: The module presents RAII, smart pointers, universal references, ownership and copy/move.
- Concepts for procedural programming: The module investigates C++ mechanisms for procedural programming, such as functions, parameter passing, lambdas, overloads, and error handling.
- Concepts for object-oriented programming: The module presents classes, inheritance (single and multiple), polymorphism.
- Concepts for generic programming: The module investigates templates, variadic templates and fold expressions, expression templates, and typical patterns such as CRTP.
- Concepts of compile-time programming: The module investigates concepts such as template recursion, constexpr, and type traits.
- Concepts for containers and iterators: The module presents the STL standard containers, iterator concepts as well as views.
- Optionally, concepts for parallel programming are investigated, such as threads, atomics and async/futures.
The module also covers an outlook on future C++ concepts, such as Metaclasses or Concepts.
IN0001: Introduction to Informatics
IN0002: Fundamentals of Programming (Exercises & Laboratory)
IN0007: Fundamentals of Algorithms and Data Structures
The participants master the concepts of modern C++ programming mentioned below. They are able to independently analyze them and to apply the corresponding analysis to related programming problems. Furthermore, the participants are able to use the handled programming concepts, to modify them if necessary, and to compare the quality of different solutions.

The module consists of lectures and tutorial sessions. The content of the lectures is conveyed in presentations of the scientific material. By solving homework assignments, the students are encouraged to work intensively on the respective topics. The solutions of the assignments are discussed in the tutorial sessions.
Für die Anmeldung zur Teilnahme müssen Sie sich in TUMonline als Studierende*r identifizieren.
Bjarne Stroustrup: Programming – Principles and Practice Using C++, Addison Wesley 2014
Scott Meyers: Effective Modern C++: 42 Specific Ways to Improve your Use of C++11 and C++14, O’Reilly 2014
Marius Bancila: The Modern C++ Challenge, Packt Publishing, 2018
Online information
course documents
e-learning course (moodle)