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.
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 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.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.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.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.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.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.
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 UnterlagenHTML 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 UnterlagenHaskell 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 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 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.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.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.
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.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.
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.C# Windows.Forms Sep 2009