Meine Projekte

Hier findet sich eine unvollständige Auswahl an Projekten an denen ich im Laufe der Zeit gearbeitet habe. Ich versuche für jedes Projekt einen Rahmen zu schaffen, in welchem man die Funktionsweise ausprobieren bzw. demonstrieren kann. Dabei kann es sich um interaktive Beispiele, Videos, Screenshots oder auch Downloads handeln. Da ich aber noch nicht die Zeit hatte, für alle Projekte einen passenden Rahmen zu schaffen, ist es hier nicht ganz so voll wie es sein könnte.


Automatische Powerpoint Quelltext Formatierung

C# Powerpoint VSTO Oct 2020

Automatische Powerpoint Quelltext Formatierung

Der Umgang mit Quellcode in Powerpoint ist mühsam. Das Einfügen des Quellcodes funktioniert bei bestimmten Anwendungen, welche die Zwischenablage mit RTF- oder HTML-Daten füllen, aber es ist ziemlich lästig, so alle Arten von Snippets auf dem neuesten Stand zu halten. Dieses Powerpoint-Plugin fügt dem Ribbon UI-Elemente hinzu, welche Pygments ausführt, um Syntax-Highlighting auf ausgewählte Textformen anzuwenden. Der Quelltext ist auf GitHub verfügbar.
Android Image Deleter

Android Kotlin Aug 2019

Android Image Deleter

Ich sichere Bilder und Videos von meinem Handy nicht auf den Computern von Google, Microsoft, Amazon oder sonstwem. Stattdessen benutze ich einen selbst gehosteten Seafile-Server. Allerdings werden die Bilder auf dem Smartphone so nicht automatisch gelöscht. Dieses kleine Programm hilft mir alles zu löschen, was schon ordentlich gesichert wurde.
Generator von Entwicklungsumgebungen für syntaxfreie Programmiersprachen

Angular Typescript Ruby SQL Oct 2016

Generator von Entwicklungsumgebungen für syntaxfreie Programmiersprachen

Die grundlegende Motivation für die Promotion ist die Gleiche, wie schon für die Master-Thesis: Schüler sollen an echte Programmierung herangeführt werden ohne dabei schon zu Beginn auf ganz viele "professionelle Probleme" zu stoßen. Im Gegensatz zur Master-Thesis ist aber der Ansatz ein grundsätzlich anderer: Anstatt jede weitere Programmiersprache mit vergleichsweise hohem Aufwand neu für die Entwicklungsumgebung zu programmieren, soll auf Basis einer annotierten Grammatik-Definition ein zumindestens brauchbarer Editor generiert werden.
Masterthesis - BlattWerkzeug

Angular Typescript Ruby SQL Oct 2016

Masterthesis - BlattWerkzeug

Konventionelle Entwicklungsumgebungen sind speziell auf die Bedürfnisse von professionellen Anwendern zugeschnittene Programme. Aufgrund der damit verbundenen Komplexität sind sie aus didaktischer Sicht nicht für die Einführung in die Programmierung geeignet. Diese Thesis beschreibt daher ein Konzept und die prototypische Implementierung einer Lehr-Entwicklungsumgebung für Datenbanken und Webseiten namens BlattWerkzeug.
Organisation des Programmierwettbewerbs "Wedelcraft"

Angular.js Python Jan 2016

Organisation des Programmierwettbewerbs "Wedelcraft"

Der Construct-O-Mat ist ein geniales Stück Ingenieurskunst. Er stellt nahezu alles aus allem her, vorausgesetzt er hat einen gültigen Bauplan und die dafür benötigen Rohstoffe. Leider ist den Ingenieuren beim Entwurf ein wesentliches Detail entgangen: Auch wenn der Construct-O-Mat tatsächlich alles herstellen kann, tut er in der Praxis zunächst mal gar nichts, zumindest nicht von selbst ... Irgendwer muss daneben stehen und ihn mit den passenden Rohstoffen und Bauplänen "füttern". Um ihn zu vervollständigen ist es nun eure Aufgabe, das letzte Modul dieses Roboters zu programmieren. Aus einer begrenzten Menge an Rohstoffen und vorgegebenen Bauplänen sollen in begrenzter Zeit möglichst viele teure Produkte produziert werden.
Symmetrieerkennung mit der Hough-Transformation

C++ OpenCL Nov 2015

Symmetrieerkennung mit der Hough-Transformation

In Kooperation mit Prof. Dr. Helmut Alt von der FU Berlin habe ich zusammen mit meinem Komilitonen Timm Hoffmann im Rahmen eines kombinierten Seminars & Projektes bei Prof. Dr. Iwanowski ein Verfahren zur Symmetrieerkennung implementiert, die Hough-Transformation. Daneben haben wir noch andere Verfahren untersucht und den Algorithmus auf OpenCL portiert um ihn anschließend auf einem FPGA auszuführen.
FH Wedel Android Phonetracker

Android Java Web Jun 2015

FH Wedel Android Phonetracker

Im Sommersemester 2015 durfte ich mir an der Fachhochschule Wedel erstmals ein Büro teilen. Ich habe Hermann Höhne als Gast bei mir begrüßen dürfen, was aber einige unerwartete Konsequenzen hatte: Bisher bekam ich nicht mit, wenn Studierende vergeblich versucht haben, mich im Büro zu erreichen. Seit dem geteilten Büro sah sich Hermann aber gezwungen regelmäßig Studierende zu enttäuschen, da er nicht wusste wo ich mich gerade aufhalte. Dieses Problem löst der Phonetracker: Eine einfache Android App die auf Basis von bekannten Standorten einiger WLAN Access Points meine Position innerhalb der Hochschule bestimmt.

Hackerschool: Spieleentwicklung mit Scratch

Scratch Apr 2015

Hackerschool: Spieleentwicklung mit Scratch

Die Hacker School will Kinder und Jugendliche für das Programmieren begeistern und damit Talente entdecken und bei der Entfaltung unterstützen, die sonst verborgen blieben. Dieser von mir entwickelte Kurs führt Interessenten in die Spieleentwicklung mit Scratch ein. Die Teilnehmer werden in die Lage versetzt eigene Geschicklichkeitsspiele zu gestalten und lernen dabei die Grundlagen der Programmierung kennen.

» Zu den Unterlagen
Hackerschool: Webentwicklung

HTML Feb 2015

Hackerschool: Webentwicklung

Die Hacker School will Kinder und Jugendliche für das Programmieren begeistern und damit Talente entdecken und bei der Entfaltung unterstützen, die sonst verborgen blieben. Dieser von mir entwickelte Kurs führt Interessenten in die Webentwicklung mit HTML und Jekyll ein. Alle im Kurs verwendeten Unterlagen sind online abrufbar. Wer sich für die Inhalte interessiert, kann dort gerne stöbern.

» Zu den Unterlagen
Parsen von deutschen Zahlen

Haskell Sep 2014

Parsen von deutschen Zahlen

Wer schon immer nach einem Weg gesucht hat automatisch zwischen langweiligen konventionellen Zahlendarstellungen und natürlichsprachigen Darstellungen zu wechseln wird hier fündig. Dieses Projekt war eine Fingerübung um sich mit dem Parserframework Parsec vertraut zu machen.

Javascript Meteor MongoDB Aug 2014

Wichtelplattform

Wichteln (bei "mir" in Norddeutschland auch als Julklapp bekannt) ist ein vorweihnachtlicher Brauch, bei dem sich Menschen innerhalb einer Gruppe gegenseitig beschenken. In meinem Fall ist diese "Gruppe Menschen" schlicht meine Familie und die Zulosung der zu Beschenkenden wurde mit kleinen Zetteln gelöst. Kleine Zettel, die im Laufe der Zeit gerne mal verloren gingen ... In den Augen eines Informatikers ein unhaltbarer Zustand.

Die Lösung dieser Problematik ist die Wichtelplattform. Hier können sich die Familienmitglieder anmelden, erfahren wen sie beschenken sollen und sehen auch seine Wunschliste.

C++ Jul 2014

Dictionary Operationen in (a,b)-Bäumen

Im Rahmen der Algorithmik Vorlesung von Prof. Iwanwoski (FH Wedel) im SS 2014 habe ich als Übungsaufgabe einen ab-Baum in C++ implementiert und mit der Variante eines Kommilitonen verglichen. Gegenstand einer oberflächlichen Untersuchung war dabei weniger die Laufzeit der Implementierung selbst, sondern das Verhalten für verschiedene Werte von a und b.
Typescript Bowling

Typescript May 2014

Typescript Bowling

Lösung einer Programmieraufgabe der Firma blau.de. Gefordert ist eine qualitativ hochwertige Implementierung der Punktezählung beim Bowling. Gelöst wurde diese Aufgabe ohne bestimmten Grund mit Typescript. Das komplette Programm ist daher voll im Browser lauffähig und zeigt in interaktiven Tests, dass es auch die korrekten Ergebnisse berechnet.
Typescript Pathfinder

Typescript May 2014

Typescript Pathfinder

Lösung einer Programmieraufgabe der Firma Silpion IT Solutions in Typescript. Alles in allem eine recht simple Wegfindung mit dem Algorithmus von Dijkstra, um Typescript einmal kennenzulernen. Neben der eigentlichen Lösung der Aufgabenstellung wurde noch eine webbasierte "Testumgebung" entwickelt, in der verschiedene Spielfelder getestet werden können.
FH Wedel Programmierwettbewerb - Sommersemester 2014

C++ OpenCL Apr 2014

FH Wedel Programmierwettbewerb - Sommersemester 2014

Wenige Wochen vor diesem Wettbewerb hat im Netz das Gelegenheitsspiel 2048 die Runde gemacht. Und was für Menschen spannend ist, könnte ja auch eine spannende Programmieraufgabe sein. Entwickelt wurde die Lösung C++11, um die Möglichkeiten des Standards bezüglich Threading und der move Semantik kennenzulernen.
WebIsoRogue

Javascript Meteor MongoDB Apr 2014

WebIsoRogue

Wie kommt man an viel Gold ohne sich in gefährlichen Verliesen die Finger schmutzig zu machen? Man bietet aufstrebenden Abenteurern einen rundum Sorglos Service. Natürlich gegen entsprechende Bezahlung. WebIsoRogue war ein im Browser spielbares, relativ klassiches Roguelike.

Bachelorthesis

Java JSF Hibernate Sep 2013

Bachelorthesis

Meine Bachelorarbeit mit dem Titel "Ein Routeninformationssystem für die Maritime Netzwerkplanung einer globalen Linienreederei" habe ich bei Hapag-Lloyd im Team "FIS Operations Research Services" geschrieben. Der Inhalt der Arbeit ist leider nicht öffentlich.
Parallelisierung des Smart Growing Cells Algorithmus

C++ Boost.Thread Jan 2012

Parallelisierung des Smart Growing Cells Algorithmus

Der Smart Growing Cells Algorithmus ist ein Ansatz zur Oberflächenrekonstruktion aus Punktwolken mittels eines künstlichen neuronalen Netzes. Er wird zum Beispiel eingesetzt um Messdaten, wie sie z.B. von einem Laserscanner erzeugt werden, in ein für die Computergrafik typisches Netz aus Dreiecken zu überführen.

Das Verfahren wurde von Hendrik Annuth im Rahmen seiner Dissertation implementiert und verfeinert. In meinem 5. Semester habe ich, zusammen mit einem Kommilitonen, den Versuch unternommen die damals bestehende Implementierung zu parallelisieren.

FreePaTris

Freepascal Oct 2009

FreePaTris

An dieser Stelle möchte ich den "Vergangenheits-Marcus" zu Wort kommen lassen. Dieser hat es zu Beginn seines Studiums geschafft, sich von der verpflichtenden Übung "Programmiersprachen 1" befreien zu lassen, indem er an einem Wochenende einen Tetris Klon in der ihm noch unbekannten Sprache Pascal implementiert. Zur Beschreibung dieses Projekts verwende ich einen Blogeintrag, welcher im Jahr 2009 unmittelbar nach Abnahme meiner Lösung verfasst wurde.
GX.Tile

C# Windows.Forms Sep 2009

GX.Tile

Zu Schulzeiten war ich der festen Überzeugung, dass jedes "vernünftiges" Projekt unbedingt mit einem komplexen Benutzerinterface einhergehen müsse. Anstatt ein "kleines" Spiel zu schreiben entschied ich mich daher einen ganzen Spieleditor zu entwickeln. Natürlich wurde der Editor nicht im eigentlichen Sinne "fertig", aber ich habe dabei eine Menge gelernt.

Kontakt & Impressum