Bachelor's and Master's Theses

I am currently advising several bachelor's students in writing their theses. The topics include automatic parallelization as well as programmer productivity and test case generation. I have always plenty of topics available and if time admits I will be happy to accept more students. My main field of interest in that regard is clearly automatic parallelization, where coincidentally the most topics are available.

Automatic Parallelization in the Polyhedral Model

In the winter term of 2012/2013 I organized a seminar on automatic parallelization in the polyhedral model at the compiler design group of Prof. Sebastian Hack. In this seminar we read and discussed several papers, starting from the basics and reaching to state-of-the-art polyhedral optimization techniques.

Software Praktikum (Software Design Lab)

In the software design lab, students are planning, organizing and implementing a medium sized project in groups of 5 to 6 people. The annual lab takes place in the lecture free time, lasts six weeks and is mandatory to every student of a field of study related to Computer Science. In the last instance I was involved in, 112 students attended the lab. The task was to implement a multi-player version of the popular board game of Settlers of Catan. The project included planning (in form of UML class and sequence diagrams) of a client application to connect to our game server and implementing a graphical user interface for human players to participate in a game, as well as an artificial intelligence which was able to beat a reference player of our chair. I helped in organizing the lab in the years 2007, 2008 and 2009 as one of two responsible teaching assistants. As such I was supporting two to three groups of students in each instance of the lab as well as organizing the work of the regular teaching assistants. I held one tutorial and one group meeting with each group every day and gave lectures, mostly on user interface design and usability. In the year 2011 I was responsible for the lab and organized it together with Clemens Hammacher. In 2013 I was responsible for the lab and organized it together with Andrey Tarasevich.

Among other tasks we took care of:

  • preparing the task specification and description
  • managing all legal affairs with the inventor of the game Settlers of Catan
  • providing a reference implementation of all parts required by the students
  • implementing a fail-safe game server for the students to connect to
  • setting up the complete infrastructure to coordinate the work of the students (Redmine, Git, mailing lists, ...)
  • recruiting and training the teaching assistants
  • organizing guest lectures during the lab

Testing and Debugging

As a head teaching assistant of the advanced lecture Testing and Debugging in 2010, I helped to elaborate the task descriptions of the four projects and provided reference solutions. The topics of these projects were measuring coverage and statistical debugging, Mutation Testing, Random Testing and Test-case generation driven by a genetic algorithm. In addition I gave tutorials, supported the students, gave lectures and supervised and corrected the two written exams.

Qualitätssicherung (Quality Assurance)

In the winter term 2010 I was responsible for organizing the undergraduate seminar on quality assurance together with Dr. Gordon Fraser and Prof. Andreas Zeller. This included selecting and preparing the reading material for the students, advising the students concerning their presentations and grading at the end of the semester.

Programmierung 2 (Programming 2)

As technical assistant I programmed and supported a Subversion plugin for the BlueJ Java IDE which was used by the students during the course of the lecture in 2007. The plugin handled checking out the project tasks and handing in the solutions of the approximately 250 students of the lecture.
In addition I supervised and corrected the three written exams and gave weekly office hours. The lecture mainly dealt with object oriented design and implementation of small to medium sized projects in the Java programming language.

Programmierung 1 (Programming 1)

In the lecture Programming 1 in 2006 I gave weekly tutorials for 25 students and a weekly office hour to answer questions. Additionally I supervised and corrected weekly quizzes as well as the three written exams. On a volunteer basis I organized a session which students could attend to install and configure a Linux operating system on their own notebooks. The lecture introduced the students to important concepts in programming. The chosen programming language for the practical parts of the lecture was Standard ML (SML).