Bachelor-Praktikum / Software-Praktikum (INF 105)

SS+WS: 4Ü, 6LP

Aufgabenstellung

Aufgabenstellung des Bachelor-Praktikums am Lehrstuhl AI3 ist die Programmierung einer interaktiven Biologiesimulation.

Spielziel dieser Simulation ist es, im Rahmen einer Sandkastenumgebung ein funktionierendes Ökosystem aus verscheidenen Kreaturentypen (z.B. Gras, Obstbäume, Kühe, Fische oder Tiger) zusammenzustellen.

Dazu bietet die Simulation dem Anwender die Möglichkeit, aus einer vorgegebenen Liste Kreaturen auszuwählen. Anschliessend kann der Nutzer die Kreaturen nach Belieben auf einer virtuellen, zufällig generierten Umgebungskarte plazieren.

Weitere Schaltflächen starten oder pausieren die Simulation. Während dem Simulationsablauf bewegen sich die Kreaturen entsprechend den Regeln einer einfachen KI. Pflanzen verbreiten sich beispielsweise, sofern genügend Raum im Umkreis vorhanden ist. Tiere wandern umher und ruhen sich daraufhin aus, oder suchen Nahrung, um ihren Hunger zu stillen. Eine begrenzte Lebenszeit erfordert schliesslich die Partnersuche zur Fortpflanzung.

Teilaufgaben

Zur Realisierung der Biologiesimulation sind die folgenden Teilaufgaben zu bearbeiten:

  • Textdatei mit Kreatureigenschaften laden
  • Bilddateien mit Kreatur- und Umgebungsgrafiken einlesen
  • GUI für die Anwendung erstellen
  • Zufällige Umgebungskarte mit Perlin Noise erzeugen und darstellen
  • Plazierung und Darstellung von Kreaturen umsetzen
  • Pfadfindung durch den A*-Algorithmus realisieren
  • Kreaturen-KI mittels Zustandsautomaten implementieren
  • Testplan für die Implementierung aufstellen und abarbeiten

Ablauf

Alle Teilaufgaben werden zu Beginn des Praktikums zur Verfügung gestellt. Die Abarbeitung erfolgt im Anschluß mit freier Zeiteinteilung. Bis zum Semesterende müssen alle Arbeiten abgeschlossen sein.

Alle Teilaufgaben sind einzeln zu bearbeiten. Gruppenarbeit sowie das Tauschen von Quellcode sind nicht zulässig.

Zum Bestehen muss jede Teilaufgabe in Form eines bewerteten Testats abgeschlossen werden. Die Endnote ergibt sich aus den individuellen Leistungen in allen Testaten.

Alle Teilaufgaben sind in der Programmiersprache C++ umzusetzen. C++-Compiler, Programmierumgebung, GUI-Bibliothek sowie Betriebssystem können für die Bearbeitung jedoch beliebig gewählt werden.

Dozenten

Termine

Es findet ein wöchentliches Treffen mit Hilfestellungen zur Aufgabenbearbeitung und zur Klärung offener Fragen statt. Zusätzlich empfiehlt sich die Teilnahme am separat angebotenen Kurs "Fortgeschrittene Programmierkonzepte in C++"".

Ort und Zeit siehe eLearning und Vorlesungsverzeichnis.

Lernziele

Die Studierenden entwickeln unter Anleitung kleinere Softwaresysteme in kleinen Gruppen. Im Vordergrund steht der Erwerb von algorithmischen, Design- und Realisierungskompetenzen. Die Studierenden sollen in die Lage versetzt werden, Software beschränkten Umfangs und beschränkten Schwierigkeitsgrads systematisch zu entwickeln (methodische Kompetenz) sowie die von ihnen erarbeitete Lösung zu präsentieren (kommunikative Kompetenz).

Studiengänge

  • Angewandte Informatik (Bachelor)
  • Computer Science (Bachelor)
  • Lehramtsstudiengang Informatik (Staatsexamen)

Vorkenntnisse

  • Konzepte der Programmierung (INF 107)
  • Algorithmen und Datenstrukturen (INF 109)

Links