Teaching Experience
Teaching Assistant
Over the course of my PhD, I assisted in the teaching of several courses. My responsibilities included organizing exercise courses & exams, creating exercises and exams, giving students tutorials and sometimes lectures.
- Secure Software Engineering, Bachelor Course in English, Paderborn University
- Sommer 2021 (Lead Teaching Assistant), Sommer 2020 (Lead Teaching Assistant), Sommer 2019 (Lead Teaching Assistant), Winter 2017
- Content: This course covers the following core areas of cyber-attack-proof software design: threat modeling, secure design, secure programming, security validation, secure deployment and maintenance, common security vulnerabilities and exploits, common cryptographic algorithms and pitfalls, automatic vulnerability detection.
- Software Engineering Training (Softwaretechnikpraktikum), Bachelor Course in German, Paderborn University
- Winter 2019
- Content: This course is a practice-oriented course including lectures on software project management. Students work in a team of size ten to develop a complex software application. The students will experience a group-based software development process: project management planning, preparation of project plans, effort estimations, requirements specification, software design and implementation.
- Designing Code Analyses for Large-scale Software Systems, Master Course in English, Paderborn University
- Sommer 2018
- Content: This course covers various topics in static code analysis: type systems, finite lattices, fixed points, intra- and inter-procedural code analysis, call graph construction algorithms, pointer analysis, data-flow analysis, analysis frameworks (IFDS, IDE, VASCO).
- Seminar Secure Systems Engineering, Master Course in English, Paderborn University
- Winter 2017 (Lead Teaching Assistant)
- Content: In this seminar, students learn basic skills on how to conduct scientific research. They will be assigned with hot topics in Software and Systems Engineering as well as Software and System Security. Often, students are expected to do a literature survey on an assigned topic, develop their opinions on the state-of-the-art, write a seminar paper on this topic, deliver a presentation and participant in a peer review process of other students’ seminar papers.
- Programming (Programmierung), Bachelor Course in German, Paderborn University
- Winter 2017
- Content: This course enables students to use a programming language (Python/Java) for software development, apply basic concepts of object-oriented programming (classes, objects, types) and implement algorithms.
Student Tutor
During my bachelor’s and master’s studies, I worked as a student tutor since the second year of my bachelors. My responsibilities included giving students tutorials in the exercise courses and evaluating homework.
- Introduction to Computability, Complexity and Formal Languages (Einführung in Berechenbarkeit, Komplexität und Formale Sprachen), Bachelor Course in German, Paderborn University
- Winter 2017
- Content: This course covers various topics in the theory of computation, languages, and automata: Turing machines, halting problem, decidable and recursively enumerable languages, non-decidable problems, nonrecursively enumerable languages, classes P and NP, NP-completeness, Cook-Levin theorem, reduction, formal languages and regular languages, context-free grammar and languages, pushdown automaton.
- Data Structure and Algorithms (Datenstrukturen und Algorithmen), Bachelor Course in German, Paderborn University
- Sommer 2016, Sommer 2015, Sommer 2014, Sommer 2013, Sommer 2012
- Content: This course covers design and analysis methods for efficient algorithms and data structures as well as basic examples: computational models, efficiency measures, invariants, sorting algorithms, data structures (list, tree, graph, hash tables), graph algorithms (DFS, BFS, shortest paths, minimal spanning trees), divide-and-conquer, greedy algorithms, dynamic programming.
- Analysis, Bachelor Course in German, Paderborn University
- Winter 2012
- Content: The course covers basic concepts of calculus such as induction, real and complex numbers, sequences and series, limits of functions, continuity, differentiation and integration in a real variable, theorems of differential and integral calculus, power series.
- Modeling (Modelierung), Bachelor Course in German, Paderborn University
- Winter 2011
- Content: The course covers basic concepts of modeling and calculus in computer science: value ranges, terms, algebras, propositional logic, verification of algorithms, graphs, context-free grammars, XML, UML diagrams, entity-relationship model, finite automata, Petri nets
Student Supervision
Supervised Thesis at Paderborn University
- Master Thesis: Extending MagpieBridge by Supporting IDE Integration of SAST Tools. 2021.
- Master Thesis: Extending MagpieBridge to Visualize Data-Flow Analysis Results. 2021.
- Master Thesis: Targeted Testing Input Generation for Android Applications. 2021.
Project Repository - Bachelor Thesis: Jimple LSP Support – Erweiterbare IDE Unterstützung für Jimple. 2020.
Project Repository - Master Thesis (Co-supervision with Johannes Späth): Path Cconditions to Enhance Comprehension of Cryptographic Misuses. 2019.
Project Repository