Search:
Lehrstuhl  |  Institut  |  Fakultät  |  LMU
print

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


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.

catan.gif
© 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:

  • 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:


Woche 3:


Woche 4:


Nützliche Links


Vorhergehende Semester

SS 16, WS 14/15, WS 11/12, WS 10/11, WS 09/10

blank