Fortgeschrittene Programmierkonzepte in C++ (INF 216)

SS+WS: 2VL+1Ü

Überblick

Das Modul lehrt Studierende das Programmieren effizienter, fehlerrobuster und wartbarer Anwendungen durch die Nutzung fortgeschrittener, sprachnaher Programmierkonzepte. Die Konzepte werden im Rahmen der Veranstaltung anhand der Multiparadigmen-Sprache C++ erläutert. Insbesondere konzentriert sich die Veranstaltung auf die Programmiermittel im neuen Sprachstandard C++11. Mit den erworbenen Fertigkeiten können Studenten schnelle, sichere und elegante Programmlösungen für vielfältige Aufgabenstellungen entwickeln. Beispielsweise eignen sich die erworbenen Fertigkeiten als konzeptuelle Grundlage zur Umsetzung abstrakter Software-Entwurfsmuster. Typische Einsatzfelder finden sich in der hardwarenahen oder leistungsorientierten Programmierung, zum Beispiel in der Robotik, in Computerspielen, oder bei eingebetteten Systemen.

Insbesondere empfehlenswert ist das Modul als Begleitprogramm zur Absolvierung des Bachelorpraktikums oder Bachelorprojekts am Lehrstuhl Angewandte Informatik 3.

Dozenten

Termine

Es gibt einen wöchentlichen, zweistündigen Vorlesungstermin und einen einstündigen Übungstermin. Termine werden in der Vorbereitungsstunde abgesprochen.

Ort und Zeit siehe eLearning und Vorlesungsverzeichnis.

Lernziele

Die Studierenden lernen fortgeschrittene Programmierkonzepte beim Umgang mit der Programmiersprache C++ und zugehörigen Werkzeugen. Der Kurs behandelt unter anderem die folgenden Themenkomplexe:

  • Sprachenunabhängige Speichermodelle und Zeigerarithmetik
  • Konzepte zur manuellen und automatischen Speicherverwaltung
  • Konzepte zur robusten Fehlerbehandlung mit Ausnahmen und Fehlersicherheitsgarantien
  • RAII-Konzepte mittels Konstruktoren und Destruktoren
  • Scope-Guard-Konzept für automatisches Fehler-Rollback
  • Konzept der Mehrfachvererbung
  • Metaprogrammierung mit Klassen- und Funktionsschablonen
  • Funktionale Programmierung und Lambda-Ausdrücke

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Computer Science (Bachelor)
  • Lehramtsstudiengang Informatik (Staatsexamen)
  • Computerspielwissenschaften

Vorkenntnisse

  • Konzepte der Programmierung (INF 107)
  • Algorithmen und Datenstrukturen (INF 109)
  • Theoretische Informatik I (INF 111)

Links