Objektorientierte Programmierung mit C++
Diese Vorlesung führt in die objekt-orientierte Programmierung mit C++17 und einem Ausblick auf C++20 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 2021 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
- Ausblick auf C++20
- STL-Bibliothek
- Potentiale und Auswirkungen optimierende Übersetzer bei C++
Termine
Voraussichtliche Termine und Räume:
- Vorlesung: Donnerstag, 16–18 Uhr, Helmholtzstraße 22, Raum E.03
- Übungen: Freitag, 14–16 Uhr, Helmholtzstraße 18, Poolraum E.44 (gelegentlich auch in der Helmholtzstraße 22, Raum E.04)
- Die erste Vorlesung findet voraussichtlich am Donnerstag, den 23. April 2020, statt.
Diese Vorlesung wird online angeboten werden, wenn eine Präsenzveranstaltung nicht möglich ist. Einzelheiten werden hierzu rechtzeitig bekanntgegeben.
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. Es werden zwei schriftliche Prüfungstermine offen angeboten werden.
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:
Materialien
- ISO/IEC 14882 (C++ Standard, Arbeitsfassung vom 21. März 2017 in Vorbereitung für C++17)
- ISO/IEC 14882 (C++ Standard, Arbeitsfassung vom 14. Januar 2020 in Vorbereitung für C++20)
- cppreference.com (C++ Standard, wikimäßig in sehr gut lesbarer Form aufbereitet, umfasst C++98 bis C++20)
Kontakt
Dr. Andreas F. Borchert
Helmholtzstr. 20
Raum 1.23
In meinen Büro bin ich wegen der Schließung der Universität nicht erreichbar. Sie können mich per E-Mail kontaktieren. Bei Bedarf ist auch ein Telefonat oder eine Videokonferenz möglich.