Praktische Aspekte der Informatik SS'23
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
HINWEIS: Die maximale Teilnehmerzahl ist auf 20 Personen begrenzt und betrachtet ausschließlich Anmeldung über unser Anmeldesystem!
HINWEIS: Die maximale Teilnehmerzahl ist bereits erreicht. Bitte meldet euch nicht mehr an.
Zur informellen Registrierung für die Veranstaltung nutzt bitte das Anmeldesystem auf dieser Website (https://graphics.tu-bs.de/teaching/students), auch damit wir euch bei Änderungen des Vorlesungsformats benachrichtigen können.
Anmeldung:
Die Teilnehmerzahl der Veranstaltung ist auf 20 Personen begrenzt!
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 20.03.2023, 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.
- Weitere Informationen und Termine erfolgen nach der Einführungsveranstaltung.
- Die erste Vorlesung findet am 12.04.2022 um 13:15 Uhr im Raum IZ161 statt.
- Das Proposal ist spätestens bis einschließlich zum 26.04.22 einzureichen (ins git pushen als README.md).
- Die Zwischen-Präsentationen finden am 21.06.22 statt.
- Die finale Version des Projektes ist bis einschließlich zum 09.07.22 einzureichen.
- Das Teaser-Video zu eurem Projekt ist bis einschließlich zum 11.07.22 einzureichen.
- Die finalen Kolloquien finden am 12.07.23 und am 14.07.23 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 als Orientierung zur Noteneinordnung dienen. Je nach Umfang der Umsetzung in eurem Projekt, kann der Schwierigkeitsgrad etwas anders gewertet werden.
Schwierigkeitsgrad C | Schwierigkeitsgrad B | Schwierigkeitsgrad A | Schwierigkeitsgrad S |
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 (Raum IZ 161)
- 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: C++ Basics
- Lecture 2: Make, CMake and Libraries
- Lecture 3: SFML
- Lecture 4: GIT / Git Cheat Sheet (von Sebastian Morr)
- Lecture 5: ResourceManager
- Lecture 6: Command Pattern
- Lecture 7: Presentations Skills
- Lecture 8: Debugging
- 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.