Übersicht | Praktikum Programmiermethodik SS 2002
LernzieleWir können sowas nicht trainieren, sondern nur üben. Das Praktikum Programmiermethodik soll einen Einblick in den Softwareentwicklungsprozeß vermitteln. Am Beispiel einer komplexen Problemstellung üben Programmierteams die Umsetzung der einzelnen Phasen Problemanalyse, Softwaredesign, Implementierung und Test. Ziel ist die Erstellung einer lauffähigen, gut dokumentierten Software. Wir wollen Techniken und Werkzeuge vermitteln, die für diese Aufgabe notwendig sind. Dazu gehören beispielsweise Tools zur Verwaltung von Quelltexten und Dokumentationen im Team (z.B. Concurrent Versions System (CVS)), Techniken zur Problemanalyse und zu Softwaredesign (z.B. Unified Modeling Language UML, Design-Patterns wie Model-View-Controller) und Dokumentationswerkzeuge (z.B. javadoc). Das Praktikum soll aber auch einen Einblick in die in Java enthaltenen Bibliotheken zur Oberflächenentwicklung (Swing), Thread-Programmierung und Kommunikation über Netzwerke (UDP) geben. Aufgabenstellung im ÜberblickDie haben viereckige Füße. Das sind Robocops. Den Rahmen des diesjährigen Programmierpraktikums bildet die RoboCup-Simulationsliga. In dieser Liga finden jährlich Weltmeisterschaften statt. Neben der Simulationsliga existieren weitere Ligen für reale Roboter. Aufgabe jedes Programmierteams innerhalb des Praktikums ist es, ein virtuelles Fußballteam in Java zu implementieren, welches gemäß den RoboCup-Anforderungen spielt. Am Ende des Semesters werden wir eine "Unimeisterschaft (UM)" veranstalten, in der das beste Team ermittelt wird. Grundlage für die Implementierung bildet das RoboCup-Simulationssystem, in dessen Zentrum der "RoboCup Soccer Simulation Server" (rcssserver) steht. An diesem Server melden sich zwei Teams mit bis zu 11 Spielern (1 Torwart und 10 Feldspieler) an. Der Server übernimmt die Spielkontrolle, die Rolle des Schiedsrichters und füttert die einzelnen Spieler mit sensorischen Eingaben. Jeder Spieler läuft als eigenständiges Programm (Prozess oder Thread) und erhält periodisch Informationen vom Server. Z.B. teilt der Server einem Spieler per Datenpaket mit, dass der Ball in einem Winkel von 45 Grad in einer Entfernung von 17 Metern liegt. Auf dieselbe Weise erfährt ein Spieler relative Positionen der Mit- und Gegenspieler. Aktionen führt ein Spieler ebenfalls über den Server aus, in dem er z.B. mitteilt, dass in Richtung von 15 Grad mit einer Kraft von 50 gekickt werden soll. Die Herausforderung ist nun, einen teamfähigen Spieler zu entwickeln, der die sensorischen Eingaben auswertet, sich ein eigenes Weltmodell konstruiert und seine Aktionen nach einer bestimmten (möglichst cleveren :-)) Strategie auswählt. Natürlich ist es möglich für Spieler, die auf unterschiedlichen Positionen spielen (z.B. Torwart, Stürmer), unterschiedliche Strategien zu entwickeln. Die Aufgabenstellung gliedert sich in folgende Module:
Jede Gruppe des Praktikums hat die Aufgabe, diese Module zu implementieren. Für die Entwicklung stehen verschiedene Softwarekomponenten für Windows und Linux zur Verfügung. Desweiteren haben wir ein Tutorial geschrieben, welches über die ersten Hürden der RoboCup-Client-Programmierung hinweghelfen sollte. Organisation im ÜberblickGruppen. Eine Praktikumsgruppe besteht aus 5-7 Studierenden. Die Anmeldung zum Programmierpraktikum erfolgt online über TutO und wird in der ersten Semesterwoche freigeschaltet. Die Gruppe wird von einem Tutor/einer Tutorin betreut. Die Gruppen treffen sich wöchentlich mit ihrem Tutor. Die Treffen dienen dazu, Fragen zu klären und die Zusammenarbeit der Gruppenmitglieder zu koordinieren. Bei diesen Treffen müssen 3-4 Gruppenmitglieder anwesend sein. Abgaben. In regelmäßigen Abständen finden Abgaben statt. Zu diesen Terminen muß jede Gruppe bestimmte Dokumente und Implementierungen angefertigt haben. Die Ergebnisse werden jeweils den Tutoren vorgestellt, dabei besteht Anwesenheitspflicht für alle Gruppenmitglieder. Kolloquium. Am Ende des Semester findet für jede Gruppe ein Kolloquium statt. Hier präsentiert die Gruppe die Ergebnisse des Praktikums vor dem jeweiligen Tutor und Lehrstuhlmitarbeitern. Es besteht Anwesenheitspflicht für die gesamte Gruppe. Jedes Gruppenmitglied muß bei der Präsentation mitwirken und Fragen beantworten können. Mailingliste. Alle
Praktikumsteilnehmer sollten sich auf unserer Mailingliste
Last modified: Wed Apr 17 10:16:35 CEST 2002 |