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

Softwareentwicklungspraktikum (A+B) im WS 2016/17

Aktuelles

  • Herzlichen Glückwunsch an die Gewinner des KI-Turniers!
  1. Dichte Fidele Lurche
  2. Mautfreie Drohnen
  3. Kesse Jojos
  • Das KI-Turnier wird am Mittwoch, den 22.02.2017, 14:00 - 16:00 Uhr, in Raum 027 stattfinden.
    • Damit wir die KIs viele Runden gegeneinander antreten lassen können, sollten diese ohne GUI durch java -jar name.jar parameter IP:PORT über die Kommandozeile gestartet werden können.
    • Künstliche Verzögerungen, die für einen natürlicheren Spielfluss sorgen (wie Aufrufe an Thread.sleep()) sollten deaktiviert werden können, etwa über einen Kommandozeilenparameter oder die Bereitstellung eines zusätzlichen jar-Archivs.
    • Einzelne Partien können auf dem von den Kessen Jojos entwickelten Server mit integriertem Beobachter-Modus durchgeführt und mitverfolgt werden.
  • Die Abnahmetermine für die einzelnen Gruppen stehen nun fest.
  • Die Abnahmen für das Hauptprojekt werden in der Woche vom 13.02. bis zum 17.02.2017 stattfinden. Die finale Deadline sowie die genauen Termine und Einzelheiten zur Anmeldung werden auf dem letzten Übungsblatt bekannt gegeben.
  • Der Testserver (passwortgeschützt) für das Protokoll ist online.
  • Die Abnahmen des Vorprojekts "Game of Life" sind abgeschlossen und die Gruppeneinteilung für das Hauptprojekt ist erfolgt.
  • Das 3. Aufgabenblatt zum Vorprojekt "Game of Life" ist online und die Referatsthemen für das 3. Plenum wurden vergeben. Die Abnahmen für das Vorprojekt werden in der Woche vom 14.11. bis 18.11.2016 durchgeführt. Mögliche Termine und weitere Einzelheiten für die Abnahmen werden im Laufe der Woche bekannt gegeben.
  • Der Plenumstermin am 31.10. fällt aus. Das letzte Aufgabenblatt zum Vorprojekt wird gemeinsam mit einem Merkblatt zu den Abnahmen zur gewohnten Zeit online gestellt. Die Gruppen für die neuen Referatsthemen werden ebenfalls am 31.10. zugelost und über die Webseite bekannt gegeben.
  • Der Webserver für die Projekthomepages ist jetzt online (SVN update alle 30 Minuten). Beachten Sie auch die Hinweise zum SVN und zu den Seiten der Gruppen.

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 den Anmeldungen für die anderen Softwareentwicklungspraktika und das Systempraktikum verwaltet. Bei der Anmeldung können Sie eine Präferenz für jedes der angebotenen Praktika angeben.
  • Die Plätze in den 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.
  • 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.
  • Anmeldeschluss ist am 04.10.2016, 06:00 Uhr.



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:

  • Einführung in die Programmierung oder
  • Programmierung und Modellierung

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, 12.00 - 14.00 Uhr c.t. Raum L 155 (Oettingenstr. 67) 17.10.2016
Tutortreffen nach Absprache, ca 1 Stunde bspw. CIP-Pool
Gruppentreffen nach Absprache, ca 8 Stunden bspw. CIP-Pool
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
17.10.2016 Model-View-Control,
Merkblatt
  • Für das Praktikum empfehlen wir die Verwendung von Eclipse. Folgende Video Lectures sollen Ihnen den Einstieg in das Arbeiten mit Eclipse und Subversion erleichtern. Verwenden Sie die jeweils aktuelle bzw. im CIP-Pool verfügbare Version.
Game of Life 1

Gardner-Artikel

Konfigurationsdateien:

24.10.2016
  • T1: Einführung in JavaFX (Ergebene Eidechsen)
    • Fensterelemente in JavaFX: Application, Stage, Scene, Scene-Graph, Nodes
    • Kontrollelemente in JavaFX: Buttons, Slider, Radiobuttons, Menü, Dialogfelder,Textelemente, etc.
    • Layout in JavaFX: Layout container (BorderPane, HBox, VBox, GridPane, etc.), Alignment
  • T2: Observer/Listener (Originale Ostereier)
    • Designpattern "Observer"
    • Actionhandling in JavaFX, Events
    • Schwerpunkt auf Maus- und Tastaturlistener
  • T3: Dokumentation eines Java-Projektes (Nagelneue Nilpferde)
    • Lesbarer Code durch Coding-Standards: Namenskonventionen, Formatierung, Kommentare, Orientieren Sie sich an den Google Java Style Guidelines
    • Dokumentation mit Javadoc: Tags, Overview-Seiten, Stil-Konventionen, Erzeugen der HTML-Dokumentation
Game of Life 2
31.10.2016

kein Plenum

Game of Life 3
Abnahme Game of Life
07.11.2016
  • T4: Überblick über die Spielregeln und den Spielablauf "Siedler von Catan" (Infrarote Igel)
    • Bei Unklarheiten bezüglich der Spielregeln sind die offiziellen Regeln und Regelauslegungen maßgeblich (siehe z.B. Hinweise hier und hier)
  • T5: Modellierung und Entwurf mit UML (Besonnene Bananen)
    • Insbesondere statische Modellierung, Klassendiagramme
  • T6: Software-Entwicklungsprozess (Harte Hacks)
    • Überblick über verschiedene Modelle (Wasserfall, Extreme Programming) und Techniken (Pair-Programming etc.)
Siedler von Catan 1
Abnahme Game of Life - Termine
14.11.2016
  • T7: Netzwerk (Kesse Kamine)
    • Kurze Einführung: Netzwerkschichtmodelle, Client-Server Modell, Protokolle (IP, TCP, UDP)
    • Sockets und JSON
  • T8: Test-driven development (Clevere Coyoten)
    • Unit testing mit JUnit
    • Test-driven development cycle
  • T9: Design-Pattern "Strategy" (Mautfreie Meersalze)
Abnahme Game of Life und Bildung der Hauptgruppen
21.11.2016
  • T10: Nebenläufigkeit (Fidele Forste)
    • Nebenläufigkeit, Prozesse und Threads
    • Probleme bei nebenläufigen Prozessen/Threads
    • Synchronisation mit Monitoren
  • T11: Nebenläufige Programmierung in Java (Lockere Lurche)
    • Die Klasse Thread, das Interface Runnable
    • Synchronisation von Threads in Java
  • T12: Weiterführende Themen zu JavaFX (Dichte Drohnen)
    • Zeichnen mit der Canvas API
    • Styling mit CSS
Siedler von Catan 2
28.11.2016
  • T13: Logging (Gediegene Gletscher)
    • Logging APIs in Java, Log-Level, ...
  • T14: Refactoring (Junge Jojos)
    • Häufige Refactoring Patterns, z.B. Extract Interface, Extract Superclass, Extract Subclass, Push Up Field/Method/Contructor Body, Push Down Field/Method, Collapse Hierarchy, Form Template Method, ...
  • T15: Spiele/KI-Strategien (Achtbare Atomuhren)
    • Anregungen für "Siedler von Catan"-KIs
Siedler von Catan 3
Protokoll V0.1
05.12.2016

kein Plenum

Siedler von Catan 4
Protokoll V0.2
12.12.2016

kein Plenum

Siedler von Catan 5
Protokoll V0.3
19.12.2016

kein Plenum

09.01.2017

kein Plenum

Siedler von Catan 6
Protokoll V1.0
16.01.2017

kein Plenum

23.01.2017

kein Plenum

Siedler von Catan 7
30.01.2017

kein Plenum

Abnahme Siedler von Catan
06.02.2017

kein Plenum

Abnahme Siedler von Catan - Termine

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

Hauptprojekt


Hilfsmittel


Video Lectures


Nützliche Links


Vorhergehende Semester

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

blank