Fortgeschrittene Konzepte der objektorientierten Programmierung

Fortgeschrittene Konzepte der objektorientierten Programmierung
Term: Summer Term 2020
Lecturer: Peter Bastian
Time and location: Di 16-18 INF 205 SR 2
Exam:

Inhalt

In diesem Pro-Seminar werden wir Konzepte der objektorientierten Programmierung betrachten die in ihrer Schwierigkeit deutlich über den Inhalt der Vorlesung Einführung in die Praktische Informatik hinaus geht. Insbesondere sollen die Neuerungen der Standards C++-11, 14, 17 und 20, fortgeschrittene Konzepte der generische Programmerung wie template meta programming, expression templates oder variadic templates, C++ threads sowie Neuerungen der Standardbibliothek und auch die Kopplung von C++ mit Python beleuchtet werden.

ZU diesem Seminar gibt es auch eine Moodle Seite auf der dann die Präsentationen verfügbar sein werden.

Vorgehen aufgrund der Coronapandemie Stand: 27. April 2020

  • Bis auf weiteres finden alle Treffen online statt, als Termin bleibt Dienstags, 16:15 Uhr
  • Am Dienstag, den 5. Mai wird Prof. Bastian einen Vortrag über die Vorbereitung eines Seminarvortrages halten. Einen Link zu HeiConf erhalten die Seminarteilnehmer.
  • Die Seminarvorträge werden ab 26. Mai stattfinden (jeweils zwei Vorträge pro Termin)

Aufgaben in einem (Pro-)seminar

  • Erschließen des Themas anhand wissenschaftlicher Literatur
  • Ausarbeiten und Halten eines Vortrages von etwa 45 Minuten Dauer (inklusive Diskussion), Dauer 60 Minuten bei Seminar
  • Regelmäßige Teilnahme an den Seminarterminen und Mitwirkung in der Diskussion
  • Ausarbeitung von ca. 10 Seiten (nur Seminar)

Siehe auch Modulhandbuch Informatik

Themen

Hier schon mal eine Übersicht der Themen mit einem ersten Einstieg in die Literatur.

  1. Constness in Funktionen, Klassen und der Standardbibliothek
  2. Exceptions
  3. C++-11 Features Überblick und Auswahl, vor allem Auto, decltype, lambda functions, constexpr, with less detail: object construction, variadic templates, threads
  4. C++-14 - C++-17 Features
  5. Move constructors, copy elision, rvalue references
  6. Templates revisited, Traits und Policy Klassen
    • Josuttis et al: C++ Template - The Complete Guide, 2nd Ed.
  7. Variadic templates: Anwendung tuples, type-tree
  8. SFINAE
  9. Template meta programming und Expression templates
    • Josuttis et al: C++ Template - The Complete Guide, 2nd Ed.
  10. Smart pointers, new in C++11
    • Josuttis et al: C++ Template - The Complete Guide, 2nd Ed.
  11. C++-20 und Concepts
  12. Standard library, algorithms, Überblick C++11-20 features
  13. C++ Threads
  14. Task-based programming with Intel TBB
  15. SIMD Vektorisierung
  16. Design Patterns: Creational Patterns
  17. Design Patterns: Structural Patterns
  18. Design Patterns: Behavioral Patterns
  19. C++ / Python Integration
  20. Ranges Library in C++-20
Impressum  |  Haftungsausschluss  |  Datenschutzerklärung  |  generated with Hugo v0.55.6