ROSE - Random model of Simulated Evolution

392163 Dörr, Willing SS 2012 Di 12-14 im Hilbertraum (3x), danach n.V. ekvv


This project is about the simulation of evolution.

Here, an individual may be represented by its DNA or protein sequence, its genome, or any other collection of characteristic data items. The production of new individuals may happen by random events, through recombination with other individuals (a.k.a. sex), or a combination of both.

An existing software Rose v2 should be extended and enhanced. Technically, the implementation will be done in Java, following a modular, service-oriented software architecture.

Possible tasks

… include programming algorithms or graphical user interfaces or -on the biological side- thoroughly researching in different areas (at species or genome level).


team player, basic insights in evolutionary processes, on the programming side: knowledge of Java programming.

Rules and requirements to pass this course

This course is meant to bring 10 credit points, which is equal to 300 hours of work, or, in other words 7.5 weeks of continuous programming! This amount of time will allow you to get deeply familiar with simulated evolution, software analysis and the source code of Rose v2 that you are meant to bring onto the next level!

To pass this course you will need to

  • regularly participate during project meetings that we call, if we have something to discuss.
  • manage and plan your software project via a Trac, a project management system. After you got familiar with this system, you should organize your project by setting milestones, create, process and complete tickets. The Trac system should be your main source of communicating and distributing upcoming work in this project.
  • write unit-tests and bug fixes for your code. A build server will be provided to you so that you can continuously keep track on the current status and quality of the source code.
  • write a technical documentation of functionality that you implemented, as well as the surrounding functionality that already exists. The goal of this exercise is to have a complete documentation of the software at the end of the project. The audience of this documentation should be future generations of students who will further develop this software. Thus, when writing your documentation, you should mention all important aspects of the implementation that you find necessary to know in order to understand the functionality of the software. You should also document how your implemented functionality is supposed to be used, too. It is recommended that you write this document in Latex. At the end of this project you must present a single document that comprises the documentation of all participants.
  • do lots of hacking, of course!


Project Managment System