"Das Baltikum"

A game, about the history of the three baltic states. The history of all states is told and you can re-play one historic event for each state. With this work, together with Anne Ullrich, I won a first prize at the contest "The Germans and their eastern neighbours".


The goal of this project is to employ the Design-by-Contract principle on the Java programming language. The solution will use a perprocessor to statically weave contract checks into the code. At the moment only some experiments were made and I wrote a list of requirements, goals and methods of resolution. The preprocessor is developed independently in the JLFX project. Currently I am working on the preprocessor which is why the ContractJ project will still be idle for a while.

Dynamic AOP (dipl. thesis)

I am still at the beginning of my diploma thesis. The general idea is to offer virtual machine support for dynamic weaving of aspects. Aspect Oriented Software Engineering is a new design principle. To get familiar with it, I suggest to study the homepage of AspectJ which is a static aspect weaver. Dynamic weaving means that aspects can be enabled and disabled at any time during runtime at any possible joinpoint. As we want to offer a new granularity for joinpoints, namely dynamic structures, I have to implement a new objectmodel for the vm. Also I will implement an efficient approach for dynamic weaving for a just-in-time compiling virtual machine. The vm I extend is the Jikes Research Virtual Machine.

Karel J. Robot

A preprocessor that translates a simplified Java-syntax into 100% pure Java code. The simplifications are penned by Joseph Bergin et al. in their manuscript Karel J. Robot. This work was used in the basic course "Basics of Computer Science I" winter 2001 and winter 2002 at Darmstadt University of Technology.

Accessing robotic head's media (stud. res. project)

For a student research project I implemented this software platform which accessed the video and audio data of a robotic head. The head uses a standard pc soundcard and two pc video grabber cards. The developed program takes advantage of conversions that can be done by the hardware. The assembled data can be accessed by other processes through a simple api which was also provided by my work.


This work was done for a hands-on project for my studies in a group of three students. We exteded the event-driven middleware Rebeca and implemented a prototypical application, a meta-auktion. Parts we implemented together are the event model and other general parts of the prototype. My special job for this project was to employ the possibility to use different strategies of serialization to the middleware. I also implemented a generic and configurable (de)serializer.


Java Language eXtention Framework - at least that is the goal of this project. So far it is a preprocessor which can parse Java sourcecode building a tree which represents the code. It can parse any Java 1.4 source plus sourcecode using generic classes as proposed in the Java Specification Request 14. Visitors can be used to perform code transformations and -instrumentation. The framework already offers type inference (which is not yet fully functioning). Now it is possible to access comments before and after any code part to extend the language. later it will be possible to extend the grammar which is parsed.


YAGG stands for "Yet Another Great Game" and is a joint-work with Sven Rettig. We are implementing a computer game which is modeled after the board-game "Roborally". The goal is to use different third-party tools and technologies and to get familiar with C++. We are currently using the Apache's XML-Parser Xerces and the graphics library SDL which also offers support for networks. The game used OpenGL to show a neat 3D graphic. Although it is working for the most part, there won't be any releases soon as we're not sure if and how to distribute it. YAGG has its own homepage. There you can see some screenshots and will in future find further information on this project and perhaps sometime a release.