C++ - Programmierung:
Grundlagen und Anwendungen mit der SDL-Bibliothek (4SWSt, 6 LPs)
Veranstalter: Fakultät für Physik, Dr. Peter Georg
Dozent: Tobias Sizmann
C++ ist eine seit 1979 entwickelte Programmiersprache mit Kompatibilität zu C. Es wird sowohl in der System- als auch in der Anwendungsprogrammierung verwendet und gehört in beiden Bereichen zu den verbreitetsten Programmiersprachen. C++ unterstützt hierbei sowohl maschinennahe Programmierung als auch die Verwendung vieler Abstraktionsschichten um die Programmierung zu vereinfachen. In beiden Fällen verspricht C++ eine möglichst hohe Effizienz des generierten Maschinencodes. Wobei die Effizienz insbesondere vom verwendeten C++ Compiler abhängig ist. Es stehen Open-Source Compiler für alle gängigen Betriebssysteme zur Verfügung. Die Programmiersprache ist von der ISO genormt und wird kontinuierlich weiter entwickelt. Aktuell wird alle 3 Jahre ein neuer C++ Standard veröffentlicht. Der Standard definiert neben der Programmiersprache selbst auch eine zugehörige Standardbibliothek.
Simple DirectMedia Layer (SDL) ist eine Open-Source Bibliothek welche die Betriebssystem unabhängige Entwicklung von Benutzerschnittstellen ermöglicht. Besonders geeignet ist SDL für die Entwicklung graphisch komplexer Anwendungen und Spiele. Seit Version 2.0 steht SDL unter der generösen zlib-Lizenz, welche die Verwendung auch im kommerziellen Kontext zulässt, zur Verfügung.
Behandelte Themen
C++
- Nach C++ Standard C++14
- Grundlagen der Programmiersprache C++
- Prozedurale Programmierung
- Ausnahmen und Fehlerbehandlung
- Objecktorientierte Programmierung
- Klassen (Kapselung)
- Vererbung
- Virtuelle Funktionen
- Polymorphie
- Generische Programmierung
Softwareentwicklung
- Versionsverwaltung mit Git
- Build-System Meson
Simple DirectMedia Layer (SDL)
- Aktuell Version 2
- Echtzeit 2D Rendering
- Echtzeitverarbeitung von Benutzereingaben
Voraussetzungen und Vorkenntnisse
- Grundkenntnisse in C oder einer ähnlichen Programmiersprache (der Umgang mit Pointer sollte vertraut sein)
- Umgang mit Debian (für den Kurs werden die Rechner im Linux-CIP-Pool zur Verfügung gestellt)
- Alternativ kann ein eigener PC (Laptop) genutzt werden, da alle verwendeten Werkzeuge plattformunabhängig und quelloffen sind (Windows, macOS, beliebige Linux -Distribution)
- Englischkenntnisee, da die Kursunterlagen und Dokumentation nur in Englisch verfügbar ist
Anforderungen zum erfolgreichen Bestehen (Projekt)
- Aktive Teilnahme an den Übungen
- Abgabe eines selbstgewählten und selbst (alleine oder in zweier Gruppen) umgesetzten Abschlussprojekts nach Absprache mit dem Dozenten. Eine Auswahl an Themenvorschlägen wird gestellt.
- In den letzten Kurstagen wird mit der Arbeit am Projekt bekommen. In den Übungen können Sie weiterhin ihre TutorInnen um Hilfestellung bitten.
- Das Projekt soll am letzten Kurstag präsentierbar sein.
- Der Source Code des Projekts inkl. nötiger weiterer Ressourcen ist bis Sonntag 23:59 Uhr zwei Wochen nach Kursende abzugeben. Weitere Modalitäten werden vom Dozenten während des Kurses bekanntgegeben
Anrechnung (FlexNow)
- Studenten, die einen FlexNow-Eintrag benötigen, müssen innerhalb der Kurstage ihre FlexNow-Anmeldung erfolgreich ausführen.
- Dieser Kurs ist in FlexNow unter dem Namen Programmieren portabler graphischer Anwendungen.
- Im Studiengang Physik ist der Kurs in der Rubrik Sonstiges eingetragen.
- Weitere Modularisierungen für andere Studiengänge sind möglich.
- Zusätzlich ist der Kurs in der Rubrik Studienbegleitende IT-Ausbildung eingetragen. In diesem Fall muss die Leistung benotet werden.
- Papierscheine werden nur in Ausnahmefällen ausgestellt.
Kursunterlagen
Das Skript und die Aufgaben für die Übungen stehen online zur Verfügung: