Back

University Projects

Here is a list some of my university software projects that I did. The source code to those is not public.

TUM: Technical University of Munich
HM: University of Applied Science Munich

re:quest by re:edu (2022, 4th semester HM)

In our Software Architecture lecture, we partnered with re:edu to create a website where virtual escape games can be made for the participants to learn things. The idea was that museums can create "quests" so that young visitors are encouraged to learn about the expositions. At the same time, a focus was made to also convey computer science skills while solving the quests.
Our part in the project consisted in building the website and the backend in AWS and find a good architecture so that any museum can make its own escape game.

Mills (Nine men's morris) in Java with a SenseHat (2021, 2nd semester HM)

In CS2 we had to program a table-top game of our choice in Java in such a way that it is playable on a SenseHat, an 8x8 LED Matrix.
In our group we chose the game Mills.
In the end, we went further then necessary and also added a bot which the player (or another bot) could play against. Required was only a dumb bot that makes moves at random but we also added a bot that used the Min-Max-Algorithm with Alpha-Beta-Pruning to make it intelligent. We also did machine learning training to have better scoring parameters to use during the normal bot operation.
We also did a short comedy video of our process to show at the end of the course and put it on Youtube

"Mini"-Java Parser and Assembler Interpreter (2017, 1st semester TUM)

In my first year the TUM, we had a project where we slowly build a big program that could take in a "Mini"-Java (reduced Java) program and translate it into Assembler and then execute this Assembler code virtually.
The program consisted of multiple parts:
  • A parser that takes in a string containing a "Mini"-Java program and gives the program in Java objects.
    For example: int x; x = 5; would be translated into:

    Program ( declarations: [ Declaration ( type: Type ("int"), name: Name ("x") ) ], statements: [ AssignmentStatement ( name: Name("x"), expression: NumberExpression(5) ) ] )
  • A parser that takes that Java object and creates an Assembler program string.
  • An Interpreter that takes an Assembler program string and executes it using a virtual stack-machine. The stack-machine was also part of the program