PDF

MODULBESCHREIBUNG

C++ Advanced

Kurzzeichen:
M_CPlA
Durchführungszeitraum:
FS 2017 - FS 2019
ECTS-Punkte:
4
Lernziele:

Fortgeschrittene Techniken der Nutzung von Standard C++ und von wichtigen Bibliotheken

Verantwortliche Person:
Peter Sommerlad
Zusätzlich vorausgesetzte Kenntnisse:

Englisch

Modultyp:
Standard-Modul für Informatik (Bachelor 05) (Empfohlenes Semester: 4)
Standard-Modul für Informatik (Bachelor 11) (Empfohlenes Semester: 4)
Standard-Modul für Informatik (Bachelor 14) (Empfohlenes Semester: 6)
Standard-Modul für Software Engineering (Bachelor 14)

ECTS-Punkte pro Kategorie

Kategorie:
Informatik (Bachelor 05)
Aufbau Informatik / 4 Punkte
Informatik (Bachelor 11)
Aufbau Informatik / 4 Punkte
Informatik (Bachelor 14)
Grundlagen Informatik und Aufbau Informatik / 4 Punkte
Software Engineering (Bachelor 14)

Modulbewertung

Bewertungsart:
Note von 1 - 6

Leistungsbewertung

Während der Prüfungssession:
Schriftliche Prüfung, 120 Minuten
Zulassungsbedingungen zur Prüfung:

Erfolgreiche Abgabe gelöster Uebungsaufgaben nach Ankündigung


Während des Semesters:
 
Bewertungsart:
keine Note oder Wertung

Kurse in diesem Modul

C++ Advanced

Kürzel:
CplA
Lernziele:
  • Fortgeschrittene Konzepte und Sprachmittel von Standard C++ anwenden und verstehen
  • Funktionale und generische Programmierung zur Laufzeit und zur Compilezeit
  • Umgang mit Legacy C++ und Refactoring zu modernem C++
  • Fortgeschrittene Bibliotheken Überblick und Nutzen, z.B. Boost Libraries
  • Einblick in die C++ Standardisierung, Ausblick auf zukünftige Standards
Plan und Lerninhalt:

Genaue Details werden zu Semesterstart bekannt gegeben. Mögliche Themen sind:

  • Rekapitulation C++: Typen, Werte, Funktionen, Lambdas, Templates, Variablentemplates, SFINAE, Variadic-Templates mit Parameter-Packs
  • Eigene Iteratoren für die Algorithmen der Standardbibliothek definieren, Adaption von Standardcontainern, inklusive hashing
  • Resourcenmanagement - Lebensdauer, Referenzen (lvalue, rvalue), Move versus Copy für eigene Typen, Forwarding, Lambdas mit generalized Capture, Exception Safety und noexcept, Konstruktor-Desktruktor-Regeln im Detail (=default, =deleted)
  • Typdeduktion, Rvalue-Referenzen und Forward Referenzen im Detail, auto, decltype, declval, forward, move
  • Tuple, Pair, Integer-Sequence, Deduktionsregeln, Anwendung, Relationale Operatoren damit definieren für eigene Typen
  • Policy-based Design von Klassen, Parametrisierung zur Compile-Zeit, Umgang mit Allokatoren in der Standardbibliothek
  • Compile-Zeit Berechnungen von Werten, Sequenzen und Arrays mittels constexpr Funktionen und Templates
  • Meta-Programmierung mittels type_traits: z.B., true_type, false_type, traits, conditional
  • Optionale Schnittstellen von generischen Klassen, Overload-Resolution mittels enable_if und SFINAE
  • Neue und zukünftige Standardklassen: any, optional, variant, string_view und deren Anwendung
  • Multi-Threading Features der Standardbibliothek: async und futures, threads, atomics, locks, condition variables, Memory Model
  • Vergleich und Umgang mit C++ und C Code-Altlasten. Verstehen der Probleme von "naked" Pointern, Kapselung Refactoring
  • Standardisieren
  • Aktuelle Themen aus der C++ Standardisierung, Aufbau des Sprachstandards, Proposal-Prozess, Review aktueller Proposals
Kursart:
Vorlesung mit 2 Lektionen pro Woche
Uebung mit 2 Lektionen pro Woche
Beschreibung erzeugt: 2018-12-14 11:56:47
Letzte Moduländerung: 2016-05-23 14:44:05
Modul-Id: 28684 (Vorgänger)
Status: aktiviert