I studied computer science with a minor in economics at Leibniz Universität Hannover from 2010 to 2014 and completed my bachelor's and master's degree in 7 semesters. Afterwards, I did a PhD (Dr. rer. nat.) in computational complexity and graph theory under the supervision of Prof. Heribert Vollmer. Before studying computer science, I worked as freelancing software developer building specialized content management systems and bots. Currently, I am a lecturer at Leibniz Universität Hannover.
I am working on facilitating programming and making it more accessible. To simplify the process of translating a mental representation of an algorithm into code, I developed a method where a program is constructed from traces and which untangles the tasks of determining the control flow, operations and predicates (watch demonstration / in German). It is based on the observation that it is easier to translate a mental representation of an algorithm with non-trivial control flow into traces and then into code as opposed to doing this directly. The traces can be seen as a blueprint of the final program, which can also help others to understand it. Shrimp is a tool which transpiles programs resulting from this method into Haskell. The method complements formal verification since its purpose is to faithfully formalize an algorithm whereas any form of formal verification starts with the assumption that such a formalized representation is available.
I'm particularly interested in finding ways to effectively teach children how to program. Many of the current approaches are based on block-based programming languages such as Scratch. While such languages eliminate the syntactic complexity as a source of frustration, they do not help in figuring out how to translate algorithms to programs. As an alternative, I invented machine programs whose syntax and semantics are very simple. They can be used to describe algorithms for theoretical and technical models of computation. Writing syntactically correct machine programs is trivial and a simplified version of the aforementioned trace-based programming method can be applied to construct machine programs in a principled manner. In contrast to the block-based approach the complexity of translating algorithms is addressed as well.
E-mail: email@example.com (PGP Key)
Institut für Theoretische Informatik
30167 Hannover, Germany