Objektorientierte Programmierung mit C++

Diese Vorlesung führt in die objekt-orientierte Programmierung mit C++17 ein. Hierbei stehen nach einer Einführung die Techniken im Vordergrund, die von anderen objekt-orientierten Programmiersprachen wie insbesondere Java nicht unterstützt werden. Dazu gehören insbesondere der statische Polymorphismus und die Meta-Programmierung, die viele Entscheidungen und Anpassungen in die Übersetzzeit verlagern. Zielsetzung ist die Erlernung objekt-orientierter Modellierungstechniken, die ein hohes Maß an Abstraktion, Flexibilität und Wiederanwendbarkeit ermöglichen, ohne dabei Kompromisse zu Lasten der Performance eingehen zu müssen. Die Vorlesung bietet daher eine Grundlage für die Anwendung von C++ im Bereich des High Performance Computing. Im SS 2019 gibt es im Anschluss die Vorlesung Parallele Programmierung mit C++.

Inhalt

  • Einführung in OO-Design, UML und Design by Contract
  • Einführung in C++
  • Dynamischer Polymorphismus in C++
  • Generische Module auf Basis von Templates
  • Statischer Polymorphismus auf Basis von Templates
  • Metaprogrammierung, Funktionsobjekte und λ-Ausdrücke
  • STL-Bibliothek, iostreams-Bibliothek
  • Potentiale und Auswirkungen optimierende Übersetzer bei C++

Termine

  • Vorlesung: Dienstag, 14–16 Uhr, Helmholtzstraße 22, Raum E.03
  • Übungen: Donnerstag, 16–18 Uhr, Helmholtzstraße 18, Poolraum E.44
  • Die erste Vorlesung findet am Dienstag, den 17. April 2018, statt.

Die Übungen am 19. Juli finden in der Helmholtzstraße 22, Raum E.03, statt.

Voraussetzungen

Vorausgesetzt werden die Kenntnisse aus einer Grundvorlesung für Informatik. Insbesondere sollten elementare Algorithmen und Datenstrukturen bekannt sein und praktische Erfahrungen mit einer Programmiersprache bestehen (z.B. Java). In den Übungen wird auf der Kommandozeile unter UNIX bzw. Linux gearbeitet. Entsprechende Kenntnisse wären vorteilhaft.

Prüfungen

Die Vorlesung ist ein Wahlpflichtmodul im Modulhandbuch der Master-Studiengänge Informatik, Mathematik, Wirtschaftsmathematik und Computational Science and Engineering. Teilweise ist die Vorlesung in den Modulhandbüchern der entsprechenden Bachelor-Studiengänge. Vorleistungen gibt es keine. Zu den folgenden Terminen werden schriftliche Prüfungen angeboten:

  • Freitag, den 3. August 2018, 10:00 bis 12:00 Uhr, N24, Hörsaal H12
  • Montag, den 1. Oktober 2018, 08:00 bis 10:00 Uhr, Helmholtzstraße 18, Raum 1.20

Es steht eine Probeklausur zur Verfügung, die ich aber in der letzten Vorlesungswoche noch etwas an die aktuelle Vorlesung anpassen werde.

Vorlesungen

Folien aus der Vorlesung:

Übungen

  • Melden Sie sich bitte für die Teilnahme in den Übungen bei SLC an.
  • Die Übungen sind zeitintensiv und integraler Teil einer praxisorientierten Vorlesung.

Übungsaufgaben und -sitzungen:

Kontakt

Dr. Andreas F. Borchert
Helmholtzstr. 20
Raum 1.23