Praktische Aspekte der Informatik SS'24
Praktikum mit Kolloquium
Prof. Dr.-Ing. Marcus Magnor
Hörerkreis: Bachelor & Master
Kontakt: padi@cg.cs.tu-bs.de
Modul: INF-CG-22, INF-CG-26
Vst.Nr.: 4216022, 4216023




Anmeldung:
Die Teilnehmerzahl der Veranstaltung ist begrenzt!
Die maximale Teilnehmerzahl ist bereits erreicht. Bitte meldet euch nicht mehr an.
Die maximale Teilnehmerzahl ist bereits erreicht und die Anmeldung geschlossen.
Die Anmeldung erfolgt über das institutseigene Anmeldesystem (https://graphics.tu-bs.de/teaching/students) ab dem 25.03.2024, 14:00 Uhr nach dem "first come, first serve"-Prinzip. Nur erfolgreiche Anmeldungen in diesem System können berücksichtigt werden.
Aktuelle Informationen:
- Bitte bringt nach Möglichkeit euren eigenen Laptop mit.
- Die erste Vorlesung findet am 03.04.2024 um 13:15 Uhr in Raum IZ161 statt.
- Weitere Informationen und Termine erfolgen nach der Einführungsveranstaltung.
- Das Proposal ist spätestens bis einschließlich zum 24.04.24 einzureichen (ins git pushen als README.md).
- Die Zwischenpräsentationen finden am 05.06.24 und 12.06.24 statt.
- Die finale Version des Projektes ist bis einschließlich zum 23.06.24 einzureichen.
- Das Teaser-Video zu eurem Projekt ist bis einschließlich zum 25.06.24 einzureichen.
- Die finalen Kolloquien finden am 26.06.24 und am 03.07.24 in Raum G30 statt.
- Für die Teilnahme muss das Modul auch bei dem Prüfungsamt angemeldet werden.
Beschreibung:
Interessierte Studierende lernen in dieser Lehrveranstaltung den Umgang mit den in der Berufswelt verbreiteten Software-Tools. Hierzu zählen:
- Programmierung mit C++ (inkl. Umgang mit externen Softwarebibliotheken)
- (Meta-)Buildsysteme make, cmake
- Versionierungssoftware
- Code Debugger
- Code Profiler
- Dokumentation
Die Themenauswahl beinhaltet somit die elementarsten Werkzeuge aus der praktischen Informatik. Innerhalb des Praktikums werden die einzelnen Softwaretools vorgestellt. Das Kolloquium erfolgt zeitlich nach dem Praktikumsteil. In Vorbereitung zum Kolloquium erstellt und dokumentiert jeder Studierende ein kleines Computerspiel in C++. Dabei ist es empfohlen, die während des Praktikums erlernten Fähigkeiten einzusetzen. Während des Kolloquiums stellen die Studierenden ihre Projekte in einer mündlichen Präsentation den anderen Kursteilnehmern vor.
Die Teilnahme an dem Modul qualifiziert zur täglichen Arbeit mit in der Berufswelt gängigen Softwaretools. Die dazu notwenigen Fähigkeiten werden im Laufe des Semesters erarbeitet. Neben diesem naheliegenden berufsqualifizierenden Vorteil werden die Studierenden auch auf weitere praktische Arbeiten während des Studiums vorbereitet.
Dieses Modul kann im Masterstudiengang Informatik nur dann belegt werden, wenn es nicht bereits im Rahmen des Bachelorstudiums Informatik absolviert wurde!
Softwareprojekt:
Das Thema für dieses Semester: 2D Spiel mit SFML
Mögliche Programminhalt, die der Inspiration dienen sollen. Je nach Umfang der Umsetzung in eurem Projekt, wird der Schwierigkeitsgrad der einzelnen Punkte individuell gewertet. Fragt uns gerne jederzeit nach einer Einschätzung des Umfangs.
1 | 2 | 3 | 4 |
Singleplayer / Hot Seat | Lokaler Multiplayer | Netzwerk Multiplayer | Eigene Shader |
Menü | Controllerunterstützung | Charakter Entwicklung | Skelettbasierte Animationen |
Sound | Ingame Chat (Netzwerk) | Quest / Inventar - Management | Evolutionäre Algorithmen für AI |
3+ Level | Levelgeneration aus einer Textdatei | Levelgeneration im Spiel | prozedual generierte/r Welt/Kontent |
Speichern / Laden des Fortschritts | Einfache Animationen | Komplexe Animationen | |
Schwierigkeitsgrade | Betriebssystemunabhängig | Physiksimulation | |
Ingame Voicechat (Netzwerk) |
Diese Inhalte dienen für die Umsetzung lediglich als Leitfaden und eigene konkrete Ideen und Leistungen werden individuell berücksichtigt.
Solltet ihr eine andere konkrete Idee haben, kann das mit dem Betreuer abgestimmt werden. Davor sollte ein umfangreiches Proposal mit eigener Einschätzung der Schwierigkeitsgrade des umzusetzenden Funktionsumfangs (im Vergleich zu den oben genannten) erstellt werden.
Ort und Zeit:
Vorlesung und Übung:
- Mittwochs, 13:15 - 14:45 Uhr
- Online webconf.tu-bs.de/mar-3vy-aef
In jeder Woche wird es eine ca. 20 - 30 minütige Einführung in aktuelle Themen gegeben. Danach können individuelle Fragen zum jeweiligen Thema oder den Einzelprojekten geklärt werden. Es können auch Einzelgespräche zu euren Projekten geführt werden, bei dem wir euch Denkanstöße und Hilfestellungen geben.
Skript und Materialien
Die Folien und das benötigte Material werden jeweils in der entsprechenden Woche hier hochgeladen.
- Lecture 0: Einführung in PADI und Projekt Organisation
- Lecture 1: GIT / Git Cheat Sheet (von Sebastian Morr)
- Lecture 1: C++ Basics
- Lecture 2: Make, CMake and Libraries
- Lecture 3: SFML
- Lecture 4: ResourceManager
- Lecture 5: Command Patterns
- Lecture 6: Debugging
- Lecture 7: Presentations Skills
- Lecture 5: Vim
- Lecture 9: Cuda
- Woche I: Matlab
- Woche J: Cuda
- Zwischen-Präsentationen
- Letzte Fragen und technische Probe
- Kolloquium
Prüfungsleistung:
Durchführung eines eigenständigen C++ Softwareprojekts mit kurzem Teaser-Video sowie anschließende kurze Präsentation im Kolloquium. Funktionsumfang, Qualität und Präsentation des eigenen Projekts bestimmen über die Notenvergabe.
Die Studierenden können die Inhalte frei gestalten, dazu wird eigenständig ein Proposal formuliert, in dem das Projekt beschrieben wird. Dabei ist folgendes zu beachten:
- Das Proposal muss mit dem Betreuer abgestimmt werden!
- Projekte müssen alleine bearbeitet werden (keine Gruppenarbeiten).
- Ein kurzes Teaser-Video von ca. ~20-40 Sekunden muss ebenfalls zum Kolloquium eingereicht werden.
- Die entstandene Software wird exklusiv für diesen Kurs geschrieben. Insbesondere ist damit gemeint, dass ihr denselben Code nicht bei mehreren Lehrveranstaltungen einreicht.
Für die erfolgreiche Teilnahme am Modul wird die regelmäßige Teilnahme an den Übungen empfohlen.