Softwareentwicklungspraktikum im WS 2014/15
Aktuelles
- Mangels ausreichender Anmeldungen vrsl. kein KI-Turnier, sorry.
- Sprechstunde Professor Ohlbach am 24.2. ab 14 Uhr, Raum E1.10
- Das KI-Turnier könnten wir Ende der Semesterferien nachholen. Wer hätte Interesse? Notwendig wäre eine KI, die automatisiert per Kommandozeile gestartet werden kann, ohne GUI (lauffähig per DISPLAY= /soft/bin/java -jar name.jar irgendwas IP:PORT im CIP-Pool), damit wir die KIs viele Runden gegeneinander spielen lassen können.
- Die Abnahmen finden im Raum Takla-Makan (L U117, Oettingenstr. 67) statt. Ihre Lösung muss zu diesem Zeitpunkt im SVN eingecheckt sein. Die schriftliche Dokumentation Ihres Beitrags bringen Sie auf Papier zur Abnahme mit. Die Abnahmen sind am 2.2., 3.2. und 5.2.2015
- Protokoll-Spezifikation auf V1.0 aktualisiert (neu: 5-6 Spieler Erweiterung möglich, aber nicht notwendig).
- Achten Sie auf ihre CPU-Last - eine hohe Last weist auf Fehler hin.
- Im CIP-Pool laufen zwei Testserver, mit dem Sie ihren Client und ihre KI testen können (Protokoll 0.4 und 1.0).
- Discovery-Code mit kleiner Korrektur (rate-limit hat nicht funktioniert).
- Der Mock-Server verwendet das Discovery-Protokoll ("Catan-server", "Mock-Server 1", "Catan-client"), und hat keine GUI. Starten Sie ihn von der Kommandozeile mit java -jar datei.jar!
- Beispiellösung Breakout der Gruppe Befugte Orakel
- Im CIP Pool ist Java 8 mit OpenJFX als /soft/bin/java installiert.
- Videos der SVN Aktivität.
- Die Anmeldung erfolgte über die Zentralanmeldung Systempraktikum und SEP. Bewerbungsende ist der So 21.09.2014, 23:55. Eine verspätete Anmeldung ist nicht mehr möglich.
- Fragen zum Anmeldeverfahren bitte an Dr. Nils gentschen Felde!
Anmeldung
Die Anmeldung erfolgt zentral über UniWorX.
- Falls Sie noch kein UniWorX-Account haben, registrieren Sie sich möglichst frühzeitig.
- Sie benötigen ebenfalls vor Semesterbeginn eine CIP Kennung für den Rechnerpool.
- Die Anmeldung wird gemeinsam mit der Anmeldung für das Systempraktikum verwaltet. Bei der Anmeldung können Sie eine Präferenz für das Systempraktikum, für das Softwareentwicklungspraktikum oder für beide angeben.
- Die Plätze in beiden Praktika werden über diese gemeinsame Anmeldung vergeben und an Sie zugewiesen. Die kombinierte Anmeldung ist notwendig, um eine Doppelanmeldung und anschließenden Rücktritt zu vermeiden. Die leider knappen Plätze werden so besser ausgenutzt, und fairer vergeben.
- Beachten Sie dass in manchen Prüfungsordnungen nur eines der beiden Praktika zugelassen ist.
- Achten Sie darauf, dass Ihre Angaben bezüglich Studienfach und Studiensemester in UniWorX aktuell sind, damit wir diese bei der Zuordnung der Praktikumsplätze berücksichtigen können. Dies ist insbesondere dann wichtig, wenn Sie aufgrund Ihres Studiengangs das Systempraktikum nicht nutzen können.
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 grundlegenden Konzepte und Techniken praktisch einsetzen.
In Gruppen von 3-4 Teilnehmern sollen in Vorprojekten grundlegende Fähigkeiten in der Programmentwicklung im Team und hinsichtlich bestimmter Programmanforderungen erworben werden. In Teams von 5-7 Teilnehmern soll dann eine größere Java-Applikation entwickelt werden.
Voraussetzungen und Vorkenntnisse
Je nach Studiengang ist das erfolgreiche Bestehen folgender Lehrveranstaltung Voraussetzung für die Teilnahme am Praktikum:
- Bachelor Kunst- und Mutlimedia: Einführung in die Informatik: Programmierung und Softwareentwicklung
- Alle anderen Studiengänge: Einführung in die Programmierung
Folgende Lehrveranstaltungen sind für das erfolgreiche Bestehen des Praktikums von Vorteil:
- Softwaretechnik
- Objektorientierte Softwareentwicklung
Organisation
- Umfang: 11 Semesterwochenstunden / 12 ECTS Punkte
- Betreuung: Prof. Dr. Hans Jürgen Ohlbach, Dr. Erich Schubert, Johannes Lohrer
- Tutoren: Michael Bohlender, Sebastian Bschorer, Markus Dichtl, David Gasser, Max Hünemörder, Michael Koopmans, Lukas Reiche, Florian Wagner, Felix Waller
Zeit und Ort
Bitte beachten: 12 ECTS entsprechen einem Arbeitsaufwand von ca. 24 Stunden pro Woche. Es ist in keiner Weise ausreichend, nur den Plenumstermin und die Tutortreffen wahrzunehmen, sondern sie müssen sehr viel eigenständig am Computer arbeiten und programmieren. Sie müssen genug Zeit für dieses Praktikum einplanen um problemlos einen Termin mit ihren Gruppenmitgliedern zu finden.
Veranstaltung | Zeit | Ort | Beginn |
Plenum | Mo, 16.00 - 18.00 Uhr | Raum B 001 (Oettingenstr. 67) | 06.10.2014 |
Tutortreffen | nach Absprache, ca 1 Stunde | bspw. CIP-Pool | 07.10.2014 |
Gruppentreffen | nach Absprache, ca 8 Stunden | bspw. CIP-Pool | 07.10.2014 |
Eigenständige Arbeit | ca. 13 Stunden |
Jede Gruppe trifft sich wöchentlich mit ihrem Tutor, die Termine dieser Treffen sind selbständig zwischen Gruppe und Tutor auszumachen. Zudem muss jede Gruppe gemeinsame Termine finden, um zusammen an den Aufgaben zu arbeiten, und gemeinsam das Projekt zu besprechen.
In den Plenum-Sitzungen sowie in den Tutor-Treffen besteht Anwesenheitspflicht. Bei unentschuldigter Abwesenheit gibt es eine Verwarnung (Gelbe Karte) und bei Wiederholung (Rote Karte) gilt die Veranstaltung als "nicht bestanden"!
Zeitplan
Datum | Themen | Aufgaben/Milestones/Material |
06.10.2014 | Überblick | Blatt 1 Breakout in der Bildersuche |
13.10.2014 | Java | Blatt 2 |
20.10.2014 | Eclipse, Design Patterns 1 | Blatt 3 Level 1 Level 2 |
27.10.2014 | Design Patterns 2 | Blatt 4 |
03.11.2014 | Netzwerk | Blatt 5 Beispielcode Netzwerk |
10.11.2014 | (Plenum entfällt wg. Abnahmen) | |
17.11.2014 | Catan-Regeln, UML-Modellierung | Siedler Milestone 1 |
24.11.2014 | Agile Softwareentwicklung | Siedler Milestone 2 |
01.12.2014 | GPU-Programmierung | Siedler Milestone 3 Protokoll V0.1 Mock-Server (hat KEINE UI - Kommandozeile!) |
08.12.2014 | Android-Programmierung | Siedler Milestone 4 Protokoll V0.2 Discovery-Klassen (Updated) |
15.12.2014 | Gewerblicher Rechtsschutz IT-Vertragsrecht | Siedler Milestone 5 Protokoll V0.3b |
22.12.2014 | entfällt | Protokoll V0.4 |
12.01.2015 | KI für Spiele | Beta-Test |
19.01.2015 | entfällt | Protokoll V1.0a Beta-Test #2 |
26.01.2015 | entfällt |
Projekte
Alle Projekte sollen über ein gemeinsames Subversion Repository verwaltet werden. Sie werden die Projekte gemeinsam in Gruppen bearbeiten, aber sie müssen dennoch das gesamte Projekt kennen und erklären können.
Vorprojekt
In den ersten Wochen wird in Gruppen von 3 Teilnehmern eine Modellierung des Spiels Atari Breakout' vorgenommen. Hierbei sammeln sie Erfahrungen in der Strukturierung eines Projektes und der Teamarbeit.
Ziel des Vorprojektes ist es, die wichtigsten Konzepte, die auch für das Hauptprojekt benötigt werden, in einem kleinen, übersichtlichen Projekt einzuüben.
Hauptprojekt
In Gruppen von 5-6 Teilnehmern wird eine netzwerkfähige JAVA-Applikation entwickelt.
Dieses Programm soll das beliebte Spiel Die Siedler von Catan mit einer Client-Server-Architektur realisieren. Dabei soll das Serverprogramm den Spielzustand repräsentieren und mit den Clientprogrammen der einzelnen Mitspieler kommunizieren. Der Spielzustand soll auf Klientenseite graphisch dargestellt werden und Spielzüge sollen über Mausklicks eingegeben werden. Der Server überwacht die Einhaltung der Regeln. Computergesteuerte Spieler (KI) können abschließend eine interessante Erweiterung bilden.
© Franckh Kosmos Verlags-GmbH 1995
Hilfsmittel
Wir verwenden die Java Standard Edition ab Version 7.0, die auch am CIP-Pool installiert ist. Falls Sie zuhause arbeiten möchten, benötigen Sie das Java Development Kit (JDK 7), das Sie hier frei herunterladen können.
Die Standardbibliothek, die mit der Standard-Edition zu Verfügung steht, ist vollständig dokumentiert und hier erhältlich.
Zusätzlich benötigen Sie Eclipse IDE for Java Developers, bevorzugt in der Version "Luna". Sowie das Subversive plugin, das Sie über den Eclipse Marketplace (in Eclipse) installieren können. Subversive wird Sie irgendwann auffordern (z.B. wenn Sie Einstellungen, Team, SVN aufrufen), einen SVN "Connector" zu installieren. Verwenden Sie SVNKit 1.8.x.
Wenn Sie sich mit ihren Teammitgliedern einigen, können sie auch Java 8 und JFX einsetzen. Beachten Sie aber, dass im CIP-Pool derzeit nur Java 7, ohne JFX, installiert sind.
Die Verwendung von GIT als Versionskontrollsystem (oder gar Dropbox) ist nicht erwünscht. Das Subversion-Repository muss die Entwicklungsgeschichte ihres Projektes nachvollziehbar dokumentieren.
Video Lectures
Die Video Lectures bringen Ihnen wesentliche Funktionen und Inhalte bei, um das Praktikum zu bearbeiten. Fangen Sie frühzeitig an, sich mit den Inhalten vertraut zu machen, da sie wesentliche Hilfestellung zum Lösen der Übungsblätter liefern.
Woche 1:
- Tools:
- Eclipse
Statt "Eclipse Indigo" verwenden Sie bitte Version "Luna". - Versionskontrolle mit Subversion (SVN)
Bitte beachten: Subversive kann inzwischen über den "Marketplace" installiert werden! - Unit Testing mit JUnit
- Eclipse
- Java / Swing:
- JavaFX (Optional):
- Timer
- Entwicklungsmethodik:
- Agile Softwareentwicklung (Folien) (Achtung: wir setzen dieses Jahr kein Redmine / Coding Dojos ein; das "Log" ist jedoch von Scrum inspiriert, und sie können in ihrer Gruppe gerne Coding Dojos organisieren!)
Woche 2:
- Nebenläufigkeit
- Besser programmieren mit Design Patterns:
- Java / Swing:
- Entwicklungsmethodik:
Woche 3:
- Datenstrukturen
- Collections (Code)
- Datenstrukturen (Folien)
- Enums (Folien, Code)
- Java / Swing:
- Tools
Woche 4:
- Tools
Nützliche Links
- Java 7 API Dokumentation
- Java Tutorials
- Einführung in Subversion
- Die-Informatiker-Forum (LMU)
- Kurzregeln Siedler von Catan
- Siedler Almanach: Ausführliche Erklärung zu einzelnen Regel-Aspekten