Computer Graphics
TU Braunschweig

Praktische Aspekte der Informatik WS'20/21
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

Project SnackmixQt AbalonePicShaAlchemists!

Trotz der Corona-Restriktionen bietet das ICG auch im Wintersemester 2020/2021 die Lehrveranstaltung PADI wie geplant an. Bis auf weiteres muss unsere Vorlesung jedoch online stattfinden. Jede Woche werden die Folien und das entsprechende Material auf diese Webseite hochgeladen.

Zur informellen Registrierung für die Veranstaltung schickt bitte eine kurze Email (padi@cg.cs.tu-bs.de), sodass wir euch bei Änderungen am Vorlesungsformat benachrichtigen können.

Bleiben Sie gesund!

Aktuelle Informationen:

  • Achtung! Die Aufbau der Veranstaltung hat sich etwas geändert! Insbesondere siehe Unterkapitel Softwareprojekt!
  • Die erste Vorlesung findet am 21.10.2020 statt.
  • Am 05.11.2020 findet keine Vorlesung statt.
  • Das Proposal ist spätestens bis zum 15.11.2020 einzureichen (ins git pushen als README.md).
  • Die Zwischen-Präsentationen finden am Mittwoch, 16.12.2020  und Freitag, 18.12.2020 statt.
  • Die finale Version des Projektes und der Präsentationsslides sind bis zum 31.01.2021 einzureichen.
  • Die finalen Kolloquien finden am 03.02.2021 und am 05.02.2021 statt.
  • Für die erfolgreiche Teilnahme muss das Modul am 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. Anhand kurzer Übungsaufgaben können die Studierenden jeweils den Umgang mit den Softwarewerkzeugen erlernen. Das Kolloquium erfolgt zeitlich nach dem Praktikumsteil. In Vorbereitung zum Kolloquium erstellt und dokumentiert jeder Studierende ein kleines C++ Softwareprojekt. Dabei ist es erforderlich, 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 sowohl isoliert (Praktikum) als auch im Zusammenspiel (Kolloquium) 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:

Achtung: Weil der Rahmen der Softwareprojekte in den letzten Semestern komplett frei war, waren faire Benotungen sehr schwierig. Daher wird ab diesem Semester eine Richtung für die Projekte vorgegeben. Dazu werden mögliche Programminhalte verschiedener Schwierigkeitsgrade vorgestellt, aus denen ihr eine Reihe selbst auswählen und in eurem Projekt umsetzen sollt.

Das Thema für dieses Semester: 2D Spiel mit SFML

Mögliche Programminhalte - ihr solltet zum Bestehen mindestens 5 umsetzen. Je nach Umfang der Umsetzung in eurem Projekt, kann der Schwierigkeitsgrad etwas anders gewertet werden.

Schwierigkeitsgrad CSchwierigkeitsgrad BSchwierigkeitsgrad ASchwierigkeitsgrad S
Singleplayer / Hot SeatLokaler MultiplayerNetzwerk MultiplayerEigene Shader
MenüControllerunterstützungCharakter EntwicklungSkelettbasierte Animationen
SoundIngame Chat (Netzwerk)Quest / Inventar - ManagementEvolutionäre Algorithmen für AI
3+ LevelLevelgeneration aus einer TextdateiLevelgeneration im Spielprozedual generierte/r Welt/Kontent
Speichern / Laden des FortschrittsEinfache AnimationenKomplexe Animationen
SchwierigkeitsgradeBetriebssystemunabhängigPhysiksimulation
Ingame Voicechat (Netzwerk)

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:

Erste Veranstaltung: 21.10.2020

In jeder Woche wird es eine ca. 20 - 30 minütige Einführung in das aktuelle Thema gegeben. Danach werden die Übungsaufgaben frei bearbeitet.

Achtung: An beiden Terminen wird nicht mehr derselbe Stoff angeboten. Am Mittwoch wird es jeweils eine Einführung in das aktuelle Thema geben. Freitags wird in Einzelgesprächen der aktuelle Projektfortschritt diskutiert.

Skript und Materialien

Voraussetzungen:

  • Programmieren 1

Prüfungsleistung:

Durchführung eines eigenständigen Softwareprojekts 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!
  • Die Software muss in C++ geschrieben sein und mindestens eine externe Bibliothek benutzen.
  • Projekte müssen alleine bearbeitet werden (keine Gruppenarbeiten).
  • Die entstandene Software wird exklusiv für diesen Kurs geschrieben. Insbesondere ist damit gemeint, dass ihr denselben Code nicht bei zwei Lehrveranstaltungen einreicht.

    Für die erfolgreiche Teilnahme am Modul wird die regelmäßige Teilnahme an den Übungen empfohlen.