Category Archives: WS1213

Seminar, WS1213

Hier die Themenvergabe und der jeweils zuständige Betreuer:

Thema Student Betreuer
Scala Kassem Tohme Andreas Scharf
JavaFX 2.x Robert Meschkat Andreas Scharf
Clojure Tobias Benkner Andreas Scharf
Wicket Witali Schmidt Andreas Scharf
Vaadin Jan Hess Andreas Koch
Google Dart Philipp Sperber Andreas Koch
HTML 5 Thomas Geldmacher Andreas Koch
Play! Waldemar Seibel Andreas Koch
Ogema Gerhard Weiß Andreas Koch
Cocos2D-X Alex Jahl Tobias George
Blender Game Engine Florian Heerdegen Tobias George
Erlang Artem German Tobias George
Google Go Fabian Iffländer Tobias George
Gradle Sergej Bratschow Tobias George
OrientDB Ingo Witzky Tobias George
Sitebricks Dimitri Raabe Tobias George
Game-Engines Johannes Maas, Jörn Otte, Jürgen Fast, Sascha Lütkemeier Stefan Lindel
GIT Jonas Posner Stefan Lindel
Hadoop Marcel Hahn Ruben Jubeh
Seminar, WS1213

Scala

Der Hype um die neue Programmiersprache Scala nimmt kein Ende. Seit 1999 entwickelt und im Frühjahr 2011 für die Java-Platform veröffentlicht, liest man beinahe täglich News rund um Scala. Doch was ist wirklich dran an der Sprache, die alle Vorteile von Java mit Konzepten der funktionalen Programmierung kombinieren soll? Ist sie tatsächlich nicht so geschwätzig? Funktioniert die Integration mit bestehendem Java Code so unkompliziert wie behauptet wird?

Was wird erwartet?

  • Überblick über Scala (Geschichte, Syntax, Semantik, …)
  • Wo liegen die gravierendsten Unterschiede/Neuerungen/Verbesserungen im Vergleich zu Java
  • Kleine Programmbeispiele die die Vor- (und auch evtl. Nachteile) von Scala zu Java beleuchten

JavaFX 2.x

Schon begraben, hat JavaFX insbesondere in seiner neuen Version 2.x für neues Aufsehen gesorgt. JavaFX steht in Konkourrenz zu Adobe Flash und Microsoft Silverlight und eignet sich im Besonderen für die Entwicklung grafischer Anwendungen. Moderne Konzepte wie deklarative Beschreibung von GUIs und dependency injection vermitteln ein neues Programmiergefühl im Vergleich zu den mittlerweile etwas angestaubten Bibliotheken wie Swing und SWT.

Was wird erwartet?

  • Überblick über JavaFX (Geschichte, Konzepte, Eignung für versch. Szenarien, …)
  • Vor-/Nachteile von JavaFX gegenüber Swing/SWT/usw.
  • Kleine Programmbeispiele, die die “coolen” Aspekte von JavaFX beleuchten

Clojure

Clojure ist eine dynamische funktional orientierte Programmiersprache die in einer Java Virtual Machine läuft. Durch Kombination von interaktiver Programmierung wie man sie von Scriptsprachen gewohnt ist und einer robusten Infrastruktur für Multithreading eignet sich Clojure als “Mädchen für alles”.

Was wird erwartet?

  • Überblick über Clojure (Geschichte, Syntax, Semantik, …)
  • Kleine Programmbeispiele, die die Stärken/Schwächen von Clojure beleuchten

Eclipse 4

Der Eclipse 4 Zug ist angekommen und bringt mit 72 Eclipse Projekten viele Insassen mit. Nicht nur oberflächlich hat sich Eclipse durch einen moderneren Stil verändert, auch unter der Haube ist einiges passiert: Das komplette User Interface der Platform wird durch ein Modell repräsentiert, welches einfach erweitert und angepasst werden kann. Die API wurde aufgeräumt und flexibler gestaltet.

Was wird erwartet?

  • Überblick über die spannensten Neuerungen in e4
  • Spezielles Augenmerk auf das zugrunde liegende “Application Model”, welches sich durch die Platform zieht. Was geht damit? Was nicht?

Google Dart

Google Dart ist eine objektorientierte, statisch typisierte Open-Source Sprache für Web-Applikationen, die als Alternative zu JavaScript eingesetzt werden kann. Neben der Ausführung in einer eigenen Dart-VM kann der Quelltext auch nach JavaScript übersetzt werden.

Was wird erwartet?

Im Seminar soll neben einer Vorstellung der grundlegenden Ideen und Prinzipien hinter Dart der Schwerpunkt auf der Abgrenzung zu JavaScript liegen. Dazu gehört beispielsweise:

  • Was macht Dart besser bzw. schlechter?
  • Wie gut ist die Ausführungsgeschwindigkeit?
  • Wie ist die Tool-Unterstützung?

The CDO Model Repository

CDO ist ein in Java entwickeltes Repository für EMF-Modelle und Meta-Modelle. Mit CDO verwaltete Modelle können sowohl persistiert als auch verteilt bearbeitet werden.

Was wird erwartet?

Für das Seminar soll der Schwerpunkt neben einem grundlegenden Einblick in CDO auf der verteilten Bearbeitung von Modellen liegen. Dazu gehört beispielsweise:

  • Wie ist der Arbeitsablauf?
  • Wie wird mit Konflikten umgegangen?
  • Wie liegen die Vor- und Nachteile?

HTML 5

HTML5 soll das in die Jahre gekommene HTML4 beziehungsweise XHTML 1 ablösen und besser an die neuen Anforderungen des vielzitierten Web 2.0 angepasst sein. Aufwändige Workarounds sollen damit der Vergangenheit angehören. Die Entwicklung wird von der WHATWG (englisch) (Web Hypertext Application Technology Working Group) vorangetrieben, einer Arbeitsgruppe, die aus dem W3C heraus entstanden ist. Es sollen Neuerungen des Standards sowie unterstützende Browser vorgestellt werden.

Was wird erwartet?

  • Überblick über die Ziele von HTML5
  • Vorstellungen der Neuerungen
  • Macht HTML5 das Leben der Entwickler einfacher?

Game-Engine Vergleich (mind. 3 Personen)

Vergleich aktueller Game-Engine für 2D-Spiele. Vergleich von JMonkey, AndEngine, Slick, libGDX, …. Der Vergleich soll über unterschiedliche 2D-Game Engine für Java erstellt werden. Erstellung eines einfachen Spiel „Tic Tac Toe“ in den unterschiedlichen Engines und vergleich der Frameworks.

Was wird erwartet?

  • Empfehlung des einfachsten Game-Engine zur Entwicklung von 2D-Spielen.
  • Welches Framework läuft auf welcher Plattform?
  • Wie sieht es mit der Performance aus?
  • Wie lange ist die Einarbeitungszeit?

GIT – das neue SVN?

Techniken von GIT und dessen Vorteile gegenüber SVN. Was genau ist GIT und SVN. Welche Clients und Server gibt es und wie werden Sie angewendet?

Was wird erwartet?

  • Vor und Nachteile von GIT in Gegensatz zu dem im Moment weitverbreiteten SVN.
  • Welche Clients kann man empfehlen?
  • Wie sieht es mit der Portierung von Projekten aus?
  • Auswertbarkeit von Changes Arbeitsaufwand

Blender Game Engine

Die Blender Game Engine ist Teil des 3D Modelling-Tools Blender. Mit ihr lassen sich Desktop- sowie Browser Spiele entwickeln. In diesem Seminar sollen die Möglichkeiten und Grenzen der Blender Game Engine aufgezeigt werden.

Was wird erwartet?

  • Verwendung von logische Bausteinen (“Sensoren”, “Controller” und “Aktuatoren”), Python Scripting, OpenGL, OpenAL 3D Sound
  • Entwickeln eines 3D Mini-Spiels für den Browser
  • Wie performant ist die Game Engine?
  • Ist die Game Engine für Browserspiele geeignet?

Cocos2D-X

Cocos2D-X ist eine 2D Spiele Engine und zeichnet sich durch ihre Cross-Platform-Fähigkeit aus (Mobile, Desktop & Browser Applikationen). Im Rahmen des Seminars soll herausgefunden werden wie beherrschbar es ist, ein Spiel für Android, iOS und z.B. Google Chrome zu entwickeln.

Was wird erwartet?

  • Mini-Spiel für Android, iOS und einen HTML5-fähigen Browser
  • Welche Einschränkungen muss der Entwickler in Kauf nehmen?
  • Fühlen sich die Spiele auf allen Platformen gleich an?

Spock

Spock ist ein Unit-Testing Framework für Java und Groovy. Die Tests werden über Funktionsblöcke und Hilfsmethoden realisiert. Hier sollen die Vorteile und Grenzen des Frameworks ausgelotet werden.

Was wird erwartet?

  • Mehrere Beispieltests jeweils für Java und Groovy
  • Was sind die Vor- und Nachteile gegenüber den etabliertesten Unit-Test Frameworks beider Programmierspachen
  • Kann Spock z.B. JUnit komplett ablösen?

JSF 2.2

JavaServer Faces ist ein Java Standard zur komponentenbasierten Webentwickling. Es gibt mehrere Frameworks, wie z.B. Apache MyFaces die auf diesen Standard aufsetzen. Mit JSF 2.2 ist ein volles JSR-Release und bietet essentielle neue Features. In diesem Thema sollen diese neuen Features auf ihre alltagstauglichkeit überprüft und ein geeignetes Framework gefunden werden.

Was wird erwartet?

  • Was hat sich seit JSF 2.1 getan?
  • Welches Framework kann man empfehlen?
  • Implementierung einer Beispiel-Applikation mit neuesten Features

Play!

Play! ist ein Framework zur Erstellung von Web-Applikationen mit Java oder Scala. Eine Besonderheit von play! liegt in der Philosophie für möglichst viele Bereiche (sowohl im Backend als auch im Frontend) Typsicherheit zu gewährleisten und Laufzeitfehler zu minimieren.

Was wird erwartet?

Für das Seminar soll neben einem allgemeinen Überblick der Schwerpunkt auf die Template Engine von play! gelegt werden. Dazu gehört beispielsweise:

  • Wie ist der Arbeitsablauf beim Einsatz des Play-Frameworks?
  • Wo liegen die Vor- und Nachteile einer solchen Engine?
  • Wie gut und einfach können Templates wiederverwendet werden?

Gradle

Gradle ist ein Build-Management-Tool, vergleichbar mit Apache Ant oder Apache Maven. Der wesentliche Unterschied: Statt XML-Konfigurationen zu verwenden wird zur Konfiguration eine Domain Specific Language (DSL) verwendet.

Was wird erwartet?

  • Überblick über Gradle
  • Wo liegen die Stärken/Schwächen, vor allem im Vergleich zu Ant oder Maven?
  • Bauen einer einfachen Beispiel Applikation, die aus mehreren Projekten besteht

Sitebricks

Bei Sitebricks handelt es sich um ein leichtgewichtiges Web Framework welches auf frühe Erkennung von Fehlern, ausdrucksstarker Syntax sowie schnelle Entwicklung setzt. Sitebricks liegt Guice zugrunde, ein leichtgewichtiges dependency injection framework für Java.

Was wird erwartet?

  • Überblick über Sitebricks (Geschichte, Architektur, …)
  • Wie mächtig ist Sitebricks? Was kann es? Was nicht?
  • Entwicklung einer kleinen Beispiel Web Applikation

Vaadin

Vaadin ist ein komponentenbasiertes Webentwicklungsframework.

Was wird erwartet?

  • Überblick über Vaadin
  • Wie mächtig ist Vaadin? Was kann es? Was nicht?
  • Entwicklung einer kleinen Beispiel Web Applikation

Apache Wicket

Apache Wicket ist ein komponentenbasiertes Webentwicklungsframework.

Was wird erwartet?

  • Überblick über Apache Wicket
  • Wie mächtig ist Apache Wicket? Was kann es? Was nicht?
  • Entwicklung einer kleinen Beispiel Web Applikation

Mockito

Mockito ist ein Test Framework. Gegenüber den allgemeinen Testframeworks, welche einen expect-run-verify-Zyklus verfolgen, arbeitet Mockito nach dem Prinzip “questions about interactions after execution”.

Was wird erwartet?

  • Überblick über Mockito
  • Mehrere Beispieltests jeweils für Java
  • Kann Mockito JUnit ablösen?