TeachingWs19ConceptsCpp

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

Concepts of C++ Programming - IN2377

Administrative info

The course is held in English.

Caution: currently the course is not part of any curriculum at TUM.

Course content

In this course we study the concepts of C++ programming.

We start with the basic concepts of the C++ language (syntax, strong typing, type deduction). Then, we investigate 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.
  • Concepts for resource management: RAII, smart pointers, universal references, ownership and copy/move.
  • Concepts for procedural programming: C++ mechanisms for procedural programming, such as functions, parameter passing, lambdas, overloads, and error handling.
  • Concepts for object-oriented programming: classes, inheritance (single and multiple), polymorphism.
  • Concepts for generic programming:templates, variadic templates and fold expressions, expression templates, and typical patterns such as CRTP.
  • Concepts of compile-time programming: concepts such as template recursion, constexpr, and type traits.
  • Concepts for containers and iterators: STL standard containers, iterator concepts as well as views.
  • Optionally, concepts for parallel programming, such as threads, atomics and async/futures.
At the end we will have an outlook on future C++ concepts, such as Metaclasses or Concepts.

Prerequisites

You should have passed the following courses (or equivalent):

  • IN0001: Introduction to Informatics
  • IN0002: Fundamentals of Programming (Exercises & Laboratory)
  • IN0007: Fundamentals of Algorithms and Data Structures

Recommended literature

  • 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

TeachingForm
Title: Concepts of C++ Programming
Professor: PD Dr. Tobias Lasser
Tutors: Nico Hartmann
Type: Lecture
Information: 2 + 2 SWS, 5 ECTS Credits
Term: 2019WiSe
Abstract: In this course we study the concepts of C++ programming. We start with the basic concepts of the C++ language (syntax, strong typing, type deduction). Then, we investigate 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. * Concepts for resource management: RAII, smart pointers, universal references, ownership and copy/move. * Concepts for procedural programming: C++ mechanisms for procedural programming, such as functions, parameter passing, lambdas, overloads, and error handling. * Concepts for object-oriented programming: classes, inheritance (single and multiple), polymorphism. * Concepts for generic programming:templates, variadic templates and fold expressions, expression templates, and typical patterns such as CRTP. * Concepts of compile-time programming: concepts such as template recursion, constexpr, and type traits. * Concepts for containers and iterators: STL standard containers, iterator concepts as well as views. * Optionally, concepts for parallel programming, such as threads, atomics and async/futures. At the end we will have an outlook on future C++ concepts, such as Metaclasses or Concepts.


Edit | Attach | Refresh | Diffs | More | Revision r1.4 - 29 Jul 2019 - 10:33 - TobiasLasser

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif