Softwareentwicklungspraktikum WS08/09
Lehr- und Forschungseinheit für Theoretische Informatik
Institut für Informatik der Ludwig-Maximilians-Universität München
Aktuelles
2. März 2009:
- Bzgl. der Abholung der Scheine ist zu beachten, dass das Sekretariat zur Zeit nur dienstags
und donnerstags vormittags besetzt ist.
13. Februar 2009:
-
Für diejenigen Teilnehmer, die bestanden haben und in einem Diplom- oder
Lehramtsstudiengang eingeschrieben sind, wurden die Scheine erstellt und können
ab sofort im Sekretariat des Lehrstuhls TCS bei Frau Sigrid Roden (Zimmer Z1.05 in der
Oettingenstr. 67) abgeholt werden. Das Sekretariat ist üblicherweise montags bis
donnerstags von 9 Uhr bis 13:30 Uhr besetzt.
-
Endergebnisse der Prüfungen
5. Februar 2009:
-
Bitte nehmt an der Vorlesungsumfrage teil.
Zugangsdaten sind das SVN-Login und -Passwort.
-
Folien der Preisverleihung
und
Wettbewerbsergebnisse.
Herzlichen Glückwunsch an die Gewinner!
- Es gibt jetzt eine neue Version des Testservers,
die alle Spiele des Wettbewerbs enthält. Anstelle der
Beispielarena gibt es jetzt zwei offene Arenen,
auf denen man
gegen die Wettbewerbsstämme antreten kann, einmal
auf dem Spielfeld der Vorrunde und einmal auf dem
der Finalrunden.
Ansonsten hat sich gegenüber AntServer2 nichts
geändert.
1. Februar 2009:
- Es gibt jetzt einen Testserver,
mit dem die Client-Programme getestet werden
können.
Update (2.2.): In der Methode
getScent(int colour, int x, int y, int scentNumber)
waren die Argumente vertauscht, d.h. der Testserver hat die
Argumente wie
getScent(int colour, int scentNumber, int x, int y)
interpretiert. Dies ist jetzt korrigiert, die korrigierte
Version ist hier
erhältlich.
Die Berechnungen waren jedoch richtig, da intern nur mit
der vertauschten Variante von getScent gearbeitet
wurde. Durch die Vertauschung kann es also höchstens
zu Problemen mit der Anzeige der Duftspuren im Client
gekommen sein.
Team
Dozenten:
Tutoren:
- Martin Burger
- Bernhard Frauendienst
- Bastian Gebhardt
- Annabelle Klarl
- Andreas Lehmann
- Julien Oster
- Michael Weber
Termine
Beginnend am 16.10. findet donnerstags, 14–16 Uhr, im Hörsaal E004 (Hauptgebäude) ein
teilnahmepflichtiges Plenum statt. In diesem werden Grundlagen vermittelt, die zur
Bewältigung der Programmieraufgabe nötig sind, sowie die einzelnen Schritte des
Softwareprojekts vorgestellt.
Jede Gruppe trifft sich darüberhinaus einmal pro Woche mit ihrem Tutor.
Gruppenname
| Tutor |
Termin |
AAAAA | Martin Burger | Do
9–10 |
Ameisenhaufen | Michael Weber | Do
18–19 |
AntiBrain | Bernhard
Frauendienst | Di 13–14 |
ANTique | Annabelle Klarl | Mo
15–16 |
Ants_in_a_Game | Bastian
Gebhardt | Do 12–13 |
A–Team | Martin Burger | Di
17–18 |
BeTiJuMaPh | Bastian Gebhardt | Do
16–17 |
Farmhouse_Games | Julien Oster |
Mi 17–18 |
Fatal_Error | Bastian Gebhardt |
Do 13–14 |
mod | Annabelle Klarl | Mo
16:30–17:30 |
Mukumuku | Andreas Lehmann | Mi
12–13 |
Nimm_Das | Andreas Lehmann | Fr
10–11 |
Ohne_Name | Andreas Lehmann | Mo
8–9 |
Plagiat_2008 | Julien Oster |
Mi 12–13 |
Rabbids_42 | Bernhard
Frauendienst | Di 14–15 |
Space_Cowboys | Julien Oster | Mi
18–19 |
Sunny_Bee | Martin Burger | Do
12–13 |
Vereinte_Nationen | Michael
Weber | Do 16:15–17:15 |
Inhalt
In dem Praktikum sollen die Teilnehmer unter Anleitung ein
größeres
Programm entwerfen, spezifizieren und implementieren und dabei die in den
Vorlesungen
„Einführung in die Programmierung”
und
„Programmierung und Modellierung”
erlernten Konzepte und Techniken
praktisch einsetzen.
In Gruppen von 4 bis 5 Teilnehmern soll dazu eine größere
Java-Applikation entwickelt werden.
Das Praktikum gilt als
Wahlpflichtpraktikum für die Studiengänge Informatik Bachelor und
Medieninformatik Bachelor (sowie die Studiengänge Informatik Diplom und
Medieninformatik Diplom, jeweils vor dem Vordiplom).
Voraussetzung für die Teilnahme ist
der erfolgreiche Besuch der Vorlesung
„Einführung in die Programmierung” (bzw. Informatik II),
sowie grundlegende Kenntnisse der Programmiersprache Java.
Folgende Aspekte werden im Rahmen des Praktikums eine wichtige Rolle spielen:
- Objektorientierte Analyse und Programmentwicklung
- Dokumentation des Codes (mit javadoc)
- Verwendung von Software-Management-Tools (SVN)
- Einführung in Client-Server-Programmierung
- Benutzung von Threads (Nebenläufigkeit)
- Benutzung des Swing API zur Entwicklung einer
graphischen Oberfläche
- Zusammenarbeit an einem größeren Projekt in
einer Gruppe
Die neu zu erlernenden technischen Grundlagen
werden in einem wöchentlichen Plenum
vermittelt.
In wöchentlichen Treffen mit einem Tutor wird der Fortschritt
der einzelnen Arbeitsgruppen besprochen.
Insgesamt beträgt der Umfang des Praktikums
4 Semesterwochenstunden.
Ergebnisse
Einige Gruppen haben den Sourcecode und/oder lauffähige Versionen der von ihnen
im Rahmen dieses Praktikums erstellten Software frei verfügbar gemacht.
Wir distanzieren uns ausdrücklich von den Inhalten der hier
aufgelisteten Links und verweisen darauf, dass die dort erhältliche Software
geistiges Eigentum der jeweiligen Praktikumsteilnehmer ist und dass wir keinerlei
Garantie auf Funktionalität, Vollständigkeit, Sicherheit, Nicht-Verletzung
von Urheberrechten, etc. der von den Teilnehmern erstellten Programme geben können.
- Gruppe "Nimm Das":
- Gruppe "Rabbids 42":
- Gruppe "AAAAA":
- Gruppe "BeTiJuMaPh":
Materialien
Folien
Spezifikation
Andere
- Ein ZIP-Archiv
(15.12.2008, Changelog)
mit einem Lexer, Parser und
Interpreter für einfache arithmetische Ausdrücke, auch als
JAR-Archiv (15.12.2008) erhältich (nur Quellcode).
Der darin enthaltene Code soll beispielhaft
verdeutlichen, wie ein Lexer, Parser oder Interpreter in Java realisiert
werden kann. Er kann auch hergenommen und erweitert werden zu entsprechenden
Programmen für AntBrain.
- Ein Applet, mit dem man
die Schrittfunktion von AntBrain nachvollziehen kann
(braucht Java 5 und hat keine besonders tolle GUI...
– getestet im CIP-Pool).
- Was ist 1442 * 78? Diese Ameise hier weiß es.
Das AntBrain-Programm in dieser Datei berechnet die Multiplikation zweier beliebig
großer, natürlicher Zahlen. Dazu schreibt man die beiden Faktoren bitweise
in die Duftspur zweier, untereinanderliegenden Zeilen. Die Faktoren werden dabei
in Bytes bestehend aus 6 (!) Bits unterteilt. Das niederwertigste Bit mit der Nummer
0 ist die Duftmarke 0 in der linkesten Spalte, das Bit mit der Nummer 13 z.B. wird
dargestellt durch die Duftmarke 1 in der dritten Spalte, etc.
Es wird davon ausgegegangen, dass beide Zahlen nach rechts und links von Hindernissen
abgeschlossen sind. Die Ameise steht zu Anfang nach rechts gerichtet in der linkesten
Spalte der oberen Zeile. Darüber muss eine Zeile frei sein, die genauso lang ist
wie die Zeile, die den ersten Faktor enthält, also die obere. Die Zeilen, die die
beiden Faktoren selbst kodieren, müssen nicht dieselbe Länge haben.
Dieser Screenshot zeigt eine mögliche Anfangsaufstellung
zur Berechnung von 1442 * 78.
Die Ameise beendet ihre Berechnung links in der Zusatzzeile. In diesem Moment steht
das Ergebnis der Multiplikation in der Zeile, die ursprünglich den ersten Faktor
enthielt. Ist diese nicht lang genug, um das gesamte Ergebnis binär darzustellen,
so enthält sie lediglich die niedrigwertigsten Bits des Ergebnis.
Hinweis: Für diese Form der Multiplikation bietet es sich an, den kleineren der
beiden Faktoren in die untere Zeile zu schreiben.
- Ein Testserver zum Testen der Client-Programme.
- Wettbewerbsergebnisse und -regeln
Links