Zu Hauptinhalt springen

C++ und SDL


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.
  • 百利宫_百利宫娱乐平台¥官网er 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:??????


Literatur und Links


Fakult?t Physik - Studium

Universit?tsstrasse 31
93053 Regensburg


Tel. +49 941 943 2023