Concepts of C++ programming (IN2377)
Course 0000003240 in WS 2019/20
|Course Type||lecture with integrated exercises|
|Semester Weekly Hours||4 SWS|
|Organisational Unit||Informatics 16 - Chair of Computer Aided Medical Procedures (Prof. Navab)|
Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.
|additional remarks||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.|
E-Learning course (e. g. Moodle)