Loading
     

Modulbeschreibung - Detailansicht

Wichtigste Meldungen anzeigenMeldungsfenster schließen
Moduldetails
Konzepte der C++-Programmierung
Fakultät für Informatik
TUINFIN
5
1
4
IN2377
Zuordnungen zu SPO-Versionen
Lehrveranstaltungen und Prüfungsveranstaltungen
Beschreibungen
19S
Export
Allgemeine Daten (Modulhandbuch)
Bachelor/Master
Einsemestrig
Unregelmäßig
Englisch
Arbeitsaufwand (Work Load)
150
60
90
Studien- und Prüfungsleistungen
Die Prüfungsleistung wird in Form einer 90-minütigen Klausur erbracht. In dieser weisen Studierende anhand der gestellten Aufgaben nach, dass sie über Kenntnisse der Konzepte des C++ Programmierens verfügen und diese erfolgreich bei der Lösung von Problemen anwenden können. Ferner demonstrieren Studierende beim Lösen der gestellten Aufgaben, dass sie die im Modul behandelten C++ Programmierkonzepte beherrschen. Die Studierenden weisen nach, dass sie in begrenzter Zeit grundlegende C++ Problemstellungen erkennen und analysieren können sowie Wege zu einer eleganten und effizienten Lösung finden können.
N
N
Beschreibung
IN0001: Einführung in die Informatik
IN0002: Praktikum: Grundlagen der Programmierung
IN0007: Grundlagen: Algorithmen und Datenstrukturen
Die Teilnehmer beherrschen die unten genannten Konzepte der C++ Programmierung. Sie sind in der Lage, diese eigenständig zu analysieren und die entsprechenden Analysen auf verwandte Probleme der Programmierung anzuwenden. Ferner sind die Teilnehmer in der Lage, die behandelten C++ Programmierkonzepte einzusetzen, sie ggf. zu modifizieren und verschiedene Lösungen in ihrer Güte zu vergleichen.
Das Modul behandelt zunächst die grundlegenden Konzepte der C++ Programmiersprache (Syntax, starke Typisierung, Typableitungen, Fokus auf Laufzeiteffizienz). Danach werden in dem Modul die zentralen, modernen C++ Programmierkonzepte vorgestellt.
- Konzepte für das effiziente Ressourcen Management: Das Modul behandelt RAII, smart pointers, universelle Referenzen, Eigentümer und Kopieren/Bewegen.
- Konzepte der prozeduralen Programmierung: Das Modul behandelt die C++ Mechanismen zur prozeduralen Programmierung, wie Funktionen, Parameterübergabe, Lambdas, Überladung, und Fehlerbehandlung.
- Konzepte der objektorientierten Programmierung: Das Modul untersucht Klassen, Vererbung (einfach und mehrfach), Polymorphie, und RTTI.
- Konzepte der generischen Programmierung: Das Modul behandelt Templates, Variadische Templates und Fold Expressions, Expression Templates für lazy evaluation, und typische Patterns wie CRTP
- Konzepte der Compile-time Programmierung: Das Modul untersucht Konzepte wie Template Rekursion, constexpr und type traits.
- Konzepte für Container, Iteratoren und Ranges: Das Modul behandelt die STL Standard-Container, Algorithmen und Laufzeitgarantien, Iteratoren-Konzepte sowie Views und Ranges.
- Konzepte für Build-Systeme und Abhängigkeitsmanagement: Untersucht werden Konzepte zum automatischen Kompilieren, Linken sowie Management von Abhängigkeiten. Ausserdem werden Konzepte zum kontinuierlichen Testen und Integrieren behandelt.
- Optional werden Konzepte zur parallelen Programmierung behandelt, wie Threads, Atomics und async/futures.
Im Stoffspektrum des Moduls ist auch ein Ausblick auf zukünftige C++ Konzepte vorgesehen, wie Modules, Concepts und Metaklassen.
Das Modul besteht aus einer Vorlesung und einer begleitenden Übungsveranstaltung. Die Inhalte der Vorlesung werden im Vortrag und durch Präsentation vermittelt. Studierende werden insbesondere durch die Lösung von Übungsblättern zur inhaltlichen Auseinandersetzung mit den Themen angeregt. Die Lösung der Übungsaufgaben wird in der Übungsveranstaltung besprochen.
Folien, Tafelarbeit, Übungsblätter
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
Modulverantwortliche*r
PD Dr. Tobias Lasser