PhD Data Science and Artificial Intelligence

University of Edinburgh
  • Principal supervisor: Dr. Stefano V. Albrecht (Autonomous Agents Research Group)
  • Project: Collaborative Exploration in Multi-Agent Reinforcement Learning using Intrinsic Curiosity

    The challenge of multi-agent reinforcement learning is largely defined by the non-stationarity and credit assignment problem introduced by multiple agents acting concurrently. In order to learn effective behaviour in such environments, efficient exploration techniques beyond simple, randomised policies are required. This project will investigate novel methods with a particular focus on intrinsic rewards as exploration incentives. Such self-assigned rewards serve as additional feedback to motivate guided exploration, which could enable collaborative behaviour in multi-agent systems.
  • Research focus: Reinforcement Learning, Multi-Agent Systems, Exploration, Intrinsic Rewards

M.Sc. Informatics

University of Edinburgh
"Term 3"
-- supervisor: Stefano Albrecht (60 CP)

In my MSc dissertation, I applied curiosity as intrinsically computed exploration bonuses to multi-agent reinforcement learning (MARL). Count- and prediction-based curiosity approaches were considered in combination with value-based and policy-gradient MARL methods, implemented using PyTorch. All approaches were evaluated using various competitive and cooperative MARL tasks in the multi-agent particle environment, also considering partial observability and sparse rewards, to analyse the influence of curiosity under such conditions. We found that curiosity led to considerably improved stability and convergence of policy-gradient MARL trained with sparse reward signals.

Grade: 74% (A3)
Term 2
-- Pavlos Andreadis and Stefano Albrecht (10 CP)

Reinforcement learning (RL) is a category of machine learning covering algorithms capable of learning behaviour to solve sequential decision problems via repeated interaction with environment (trial and error). As guidance, the agent usually receives feedback in form of reward to reason about its behaviour. Therefore, the agent usually aims to maximise the cumulative reward gained by behaving correctly. This intuition is in many regards comparable to natural learning of humans and to the basic principle of conditioning applied in animal training.
This course served as a detailed introduction to the field of reinforcement learning from markov decision processes, dynamic programming, Monte-Carlo methods and temporal-difference learning to modern deep reinforcement learning and multi-agent reinforcement learning research. The lectures mostly followed the popular book from Sutton and Barto available here.

Grade: 82% (A2)
-- Kousha Etessami (10 CP)

Game Theory is the formal study of interaction between goal-oriented agents (or players), and the strategic scenarios that arise in such settings. Algorithmic Game Theory in particular is concerned with the computational questions that arise in and enlighten game theory. This includes first and foremost efficient algorithms to ’solve’ games
Course webpage

Grade: 98% (A1)
-- Michael Gutmann (20 CP)

"This course covers foundational material in machine learning and provides you with tools and skills to understand many different methods.\" These methods include directed and undirected graphical models for model representations and their implied independencies, exact inference, model-based learning such as maximum likelihood estimation (MLE) and Bayesian inference, variational inference, factor analysis (FA) and independent component analysis (ICA), sampling methods and lastly learning for hidden markov models (HMM) in particular.
Through this vast curriculum, the course taught a general grasp on various probabilistic modelling and reasoning concepts.
Course webpage

Grade: 75% (A3)
-- Ram Ramamoorthy (10 CP)

"This course focused on models and techniques for decision making (under uncertainty) in robots. The emphasis was on understanding how we can endow robots with the capacity to autonomously make decisions about how to interact with a dynamic environment (including, sometimes, other agents in these environments). This is motivated by questions such as the following:

  • What kinds of decisions do robots need to make in realistic autonomy domains?
  • What kinds of mathematical models and computational methods can be used to program such decision making behaviour?
  • What issues must we consider, as designers of systems that have the capacity to be deployed as autonomous agents in their own right?"

Course webpage

Grade: 86% (A2)
-- Bjoern Franke (10 CP)

This course was a continuation of the Informatics Research Review. While IRR prepared students to efficiently read, filter and critically evaluate research publications, the Informatics Project Proposal directly prepares the disseration project. Throughout this course, the project will be further defined, planned and outlined after allocations are done at the beginning of the semester. The final goal of the course is to write a comprehensive proposal for the project in which goals and purpose of the project are outlined, milestones with appropriate schedules are planned and justified. This serves as preparation for the dissertation project.
Course webpage

Grade: 73% (A3)
Term 1
-- Iain Murray (20 CP)

"Machine learning is about developing algorithms that adapt their behaviour to data, to provide useful representations or make predictions."
This course taught the fundamental concepts and understanding of the widely popular field of Machine Learning focusing on its theory for application in research. It covered linear regression, regularisation, multivariate Guassians, (Naive) Gaussian classifiers, logistic regression, neural networks and its backpropagation, Gaussian processes, Bayesian logistic regression and more.
Course webpage

Grade: 64% (B)
-- Zhibin (Alex) Li (20 CP)

This course introduced several core areas in robotics: kinematics and dynamics of robots, robot control, classical and modern control theories, motion planning, state estimation and signal processing, localisation and mapping.
The lecture also involved a large practical part in which learned techniques had to be applied in order to solve a real-world robot task. Therefore, a robot had to be planned, constructed and implemented for a navigation task involving the localisation of the robot in a predetermined environment, the detection and communication of points of interest as well as the safe return to the robot`s deployment location.
The robot was built using primarily LEGO, a Raspberry Pi computer and sensory technology. We implemented particle-filter localisation and obstacle avoidance based on IR and sonar sensors, odometry modelling was achieved using a hall-effect sensor and POIs on the floor were detected using light sensors. (Github project webpage)
Course webpage

Grade: 87% (A2)
-- Michael Herrmann (10 CP)

Natural Computing involves algorithms which employ natural materials (e.g., molecules) to compute, based on natural phenomena or take inspiration from nature for the development of novel problem-solving techniques.
This course taught essential algorithms from this field and analysed their use-cases and applicability for real-world applications and research. It primarily focused on Genetic Algorithms, Particle Swarm Optimisation, Ant-Colony Optimisation, Genetic Programming and Neurocomputation.
The course also involved the critical analysis and reproduction of a metaheuristic algorithm and its underlying paper in a group of two. I implemented and analysed the Galaxy-based Search Algorithm (GbSA) for PCA approximation. For comparison we also implemented a Particle Swarm Optimisation variation for PCA computation which drastically outperformed GbSA. We analysed the algorithms limitations and proposed concrete adjustments as well as provided proof in form of an evaluation showing the positive effect on the performance.
Course webpage

Grade: 84% (A2)
-- Bjoern Franke (10 CP)

Being able to search, filter understand and critically evaluate research papers is an essential ability in order to carry out own research.
For this course, a field of research had to be chosen and thoroughly researched before writing a comprehensive research review providing a balanced, detailed report on the state-of-the-art while critically comparing recent approaches applied in research.
I chose to research the field of reinforcement learning and specifically its application for video-game playing. Reinforcement Learning is experiencing novel excitement given the opportunities gained by the breakthrough of deep learning. During this research, games and in particular video games like Atari and StarCraft developed to highly interesting challenges. Their multi-agent reinforcement learning tasks and partial observability in particular are currently addressed in order to widen the possibilities of the vast real-world applications for such behaviour learning approaches. This lead, among others, to the re-discovery of intrinsic rewards in the form of curiosity which seems to be a promising technique for exploratory challenges.
"Reinforcement Learning for Video Game Playing"
Course webpage

Grade: 72% (A3)

B.Sc. Computer Science

Saarland University
Year 3
-- reviewers: Jörg Hoffmann & Mario Fritz (12 CP)

My thesis "Domain-Dependent Policy Learning using Neural Networks in Classical Planning" involved the implementation, translation of the neural network architecture of Action Schema Networks, proposed by Sam Toyer for Probabilistic Planning in 2017, to the field of Classical Planning as well as an extensive evaluation of the network`s suitability for this branch of Automated Planning.

Grade: 2x 1.0
-- Jörg Hoffmann (9 CP)

This seminar of the Foundations of Artificial Intelligence (FAI) Group at Saarland University, mostly focused on Automated Planning, hosts introductory and colloquium talks of BSc and MSc students prior and past their dissertations. Besides these presentations, it also involves the writing of a background paper connected to the introductory presentation before starting the main research of the thesis. This allows practising academic writing prior the the dissertation and gives a general overview of the current research done at this university chair.
Course webpage

Grade: 1.0
-- Jörg Hoffmann (9 CP)

"Automated Planning is one of the fundamental sub-areas of Artificial Intelligence, concerned with algorithms that can generate strategies of action for arbitrary autonomous agents in arbitrary environments." This course specifically focuses on "so-called classical planning, where the actions and environment are assumed to be deterministic; this is a central area in planning, and has been the source of many influential ideas. It is also successfully applied in practice, as [it will be exemplified] in the course." The lecture particularly covers four different ideas for generating heuristic functions: critical paths, ignoring delete lists of actions, abstractions and landmarks. Besides the algorithmic introduction of these techniques, the course is also concerned how they compare to each other involving analysis of such estimators.
While such theoretical observation is essential to follow the field, the course also involves the implementation of an own planning system based on the well-known Fast-Downward framework. We therefore implemented varying heuristic functions, search algorithms and pruning techniques and competed in a lecture competition against other student`s systems.
Course webpage

Grade: 1.0
-- Jörg Hoffmann (7 CP)

"State space search is a basic method for analysing reachability in large deterministic transition systems, across several areas of CS including in particular automatic planning, model checking, and game playing. To tackle the state space explosion -- the systems to be analysed are exponentially large in the size of their description, and practical systems may have billions of states or more -- one kind of technique that has been instrumental is what we entitle admissible search enhancements here: Techniques that allow to ignore part of the state space without changing the reachability property being analysed, i.e., preserving the completeness/optimality of the underlying search. Using automatic planning as a uniform framework, we consider four major families of admissible search enhancements, namely partial-order reduction, symmetry reduction, dominance pruning, and decoupled search."
Course webpage

Grade: 1.0
-- Jannik Strötgen and Jilles Vreeken (9 CP)

"Information Retrieval (IR) and Data Mining (DM) are methodologies for organising, searching and analysing digital contents from the web, social media and enterprises as well as multivariate datasets in these contexts. IR models and algorithms include text indexing, query processing, search result ranking, and information extraction for semantic search. DM models and algorithms include pattern mining, rule mining, classification and recommendation. Both fields build on mathematical foundations from the areas of linear algebra, graph theory, and probability and statistics."
Course webpage

Grade: 1.7
-- Dietrich Klakow (6 CP)

This lecture covers a range of machine learning and especially neural network models with focus on their practical implementation. Therefore, it briefly introduces metrics, validation options, techniques as dropout and regularisation in order to overcome the challenge that is over- and underfitting, linear algebra foundation of NNs including SVD, PCA, gradients for gradient-based optimisation algorithms from "vanilla" gradient descent over SGD to Adam and Backpropagation. The lecture generally covered (fully-connected) feedforward neural networks, convolutional neural networks and recurrent neural networks, focusing on LSTMs, with implementations based on plain Python as well as using the popular framework Tensorflow.
Course webpage

Grade: 3.0
-- Hideki Yamaguchi (5 CP)

This seminar discusses the development of Japan from the Meiji Restoration in 1868, which completely changed the Japanese political and societal landscape, until Japan past the Second World War. While I was always fascinated with history, my knowledge was mostly limited to the western world, as German history lessons during my school years hardly covered any developments in Asia. It was therefore immensely interesting to learn about many events I was never aware of as well as learning new perspectives on already well-known historical incidents.
In my final work (written in German), I analysed the upcoming of Japanese right-wing extremism in the 1930s with its consequences and compared this tragic development to the well-researched rise of far-right extremism and nationalism in Germany in the form of National Socialism, also known as Nazism.

Grade: 1.0
-- Hideki Yamaguchi (5 CP)

This seminar discussed general Japanese culture from typical food, over religions and societal aspects to Kendo, business culture, politics and more. I personally focused on Japanese politics and specifically analysed the creation and history of Article 9 of the Japanese constitution, which basically denounces and prohibits war as a means of settling disputes and severely limits Japan`s possibilities with respect to an own military. There was and still is an ongoing discussion in Japan whether this article should be modified or even removed from the constitution to allow further expansion of its military forces. I address the history of its creation as well as the modern discussion in my final written work (in German) for this course.

Grade: 1.0
Year 2
-- Jörg Hoffmann (9 CP)

"This course explores key concepts of Artificial Intelligence (AI), including formal knowledge representation, automated deduction, heuristic search algorithms, the automatic generation of heuristic functions in planning, reasoning under uncertainty, rule-based systems, and description logics. It highlights how these concepts are used in several AI application-fields like spoken-dialog systems, expert systems, and intelligent network security."
Course webpage

Grade: 1.7
-- Andreas Zeller (9 CP)

This lecture covers essential topics of the field of software engineering including:

  • Requirements Engineering
  • Software Specification
  • Software Design and Architecture
  • Advanced Programming Techniques
  • Software Quality Assurance
  • Software Maintenance and Evolution
  • Software Project Management
Aside the usual course, it also includes a project for which I was part of a team of five students for a real customer to plan, design and engineer a prototype to a proposed problem. We implemented a plagiarism detection tool for Prof. Dr. Christian Rossow, which is now used in his lectures to find suspicious similarities in student submissions.
The project went through all stages of software engineering from requirement gathering over planning and designing the architecture up to implementing and properly testing our prototype.
Course webpage

Grade: 1.3
-- Sebastian Hack (5 CP)

This seminar was about the investigation of modern, imperative programming language, mostly focusing on C++, Go, Rust and Scala. Besides discussing fundamental papers of the fields, every participant was assigned one of these specific languages and presented a core aspect of the language. I personally chose Rust and presented its features inspired by functional programming.
In addition to this theoretical aspect, I planned and implemented a concurrent Conflict-Driven Clause Learning SAT-Solver using the modern imperative programming language Rust together with two colleagues. We optimised literal assignment using multiple heuristic strategies, detected and handled pure variables for efficiency and parallelised the solver`s processing.
Course webpage

Grade: 1.3
-- Holger Hermanns (6 CP)

"Nowadays, multi-cores and other parallel architectures (e.g. graphics processors) can be found on every desk. In order to efficiently make use of such systems is a big challenge. However, according to hardware manufacturers this will soon be daily routine for each computer scientist." This lecture teaches the theory and praxis necessary in order to understand and be able to implement concurrent systems.
Therefore, the lecture first focuses on the concepts involved explaining parallelism, concurrency, how these are applied in operating systems, multi-core processors and distributed systems. It explains challenges involved just as fairness, deadlocks and starvation. All such concepts are illustrated and analysed using transition systems based on the calculus of communicating systems (CSS), introduced by Robin Milner.
After this theoretical part, the lecture explains how these concepts can be implemented in real applications at the example of Java, Go and pseuCo using both message passing and shared memory approaches.
Course webpage

Grade: 2.7
-- Andreas Karrenbauer (6 CP)

This lecture covers essential algorithms and data structures frequently used in computer science in detail, including extensive correction proofs and determining the complexity. It analysis the following structures and concepts in detail:

  • Lists
  • Heaps
  • Trees
  • Graphs
Therefore, it also covers a variety of sorting algorithms, amortised analysis besides the typical asymptotic analysis and typical graph algorithms like depth- and breadth-first-search and the well-known Dijkstra algorithm.
Course webpage

Grade: 1.7
-- Joachim Weickert (9 CP)

This third and last lecture about mathematical foundations covers two main areas. First, it introduces already known concepts as continuous functions, differentiable functions, limits, integrals and more for multidimensional analysis while also covering some numerical computation, e.g. Newtons method.
Secondly and mainly however, this course is concerned with probability theory. This includes combinatorics, generating functions, random variables, mean, variance, moments, Chebyshev, Markov, Jensen and Chernoff`s inequalities, essential uni- and multivariate distributions (Gaussian, Binomial, Poisson), confidence intervals, hypothesis testing, Markov chains and -models.
Course webpage

Grade: 1.7
-- Raimund Seidel (9 CP)

This lecture solely focuses on concepts from theoretical computer science. It starts with the concept of countability on sets, relations and strings, (logic) decidability, determinism, final automata, Turing machines, formal (regular) languages, grammars and expressions and the connection of all these ideas.
Secondly, the course takes a look at complexity theory and (complexity) reduction proofs as well as essential complexity space notations as D/NSpace and Time, P, NP and properties like NP-hard and NP-complete
Course webpage

Grade: 1.0
-- Wolfgang J. Paul (6 CP)

This lecture introduces database systems and information systems. It covers general architectures used for such systems, how databases are modelled via the entity-relationship model and how these translate to relations.
Secondly, the lecture covers a variety of relational algebra, operators that can be applied in database systems as well as their concrete implementation using SQL. Challenges as the consistency of data, integrity conditions and concepts as MapReduce are also briefly discussed.
Course webpage

Grade: 1.3
-- multiple lecturers (1 CP)

This brief one-week course teaches some essential methods and didactics for teaching positions in the computer science department at Saarland University. I participated in it prior to my teaching position for the 'Programming 1' lecture and learned alongside my fellow tutors, so the course was also partly a team-building activity.

Grade: ungraded
-- Hideki Yamaguchi (6 CP)

This course is the first Japanese course offered at the Institute for Language and Communication. It introduces the three components of the Japanese writing system, Hiragana, Katakana and Kanji, and teaches the first two with some Kanjis. Besides, fundamental concepts as basic pronouns of the language are taught and grammatical structure so that first sentences and phrases can be formed and understood.

Grade: 1.3
-- Hideki Yamaguchi (6 CP)

This second Japanese course builds upon 'Japanese Foundations - Shokyu 1' and directly continues covering a wider range of pronouns and Kanjis, while introducing a new range of vocabulary.

Grade: 2.0
Year 1
-- Gert Smolka (9 CP)

Functional programming, while not widely used in practise, is a powerful tool to implement complex structures in a short and elegant way. This lecture introduced programming as a synthesis of theory and praxis while teaching the fundamentals of functional programming using Standard ML (SML). Core topics included the general structure of programming languages, which can be inferred using grammars and inference rules, programming of interpreters, lexers and more. The lecture also covered theoretical concepts as recursive data structures, (inductive) proofs of correction and runtime complexity.
Course webpage

Grade: 1.0
-- Sebastian Hack (9 CP)

This lecture focused on the core ideas of imperative and object-oriented programming. It thereby covered assembly code at the example of MIPS, C as a comparable low-level programming language and implementing more complex, object-oriented systems in Java. While the lecture covered topics like abstractions, type-hierarchies, modularity, dynamic programming, data structures as hash-tables, varieties of lists and more, it did not limit itself to the theoretical ideas but students needed to implement small to mid-sized projects in MIPS, C and Java themselves. Projects covered a seam carving implementation in C, a Tetris project with the implementation of a simple game-playing AI as well as building a simple C-compiler in Java which covers a subset of the C programming language including pointers and translates them to MIPS machine code.

Grade: 1.0
-- Andreas Zeller (9 CP)

In this extensive summer group project, I was part of a 7 person group of students in which we implemented an entire fictional turn-based strategy game in which various different computer- and player-controlled characters can move on a hexagonal-map and attack other characters.
For this project, we had to implement the entire game-logic, game-server connection and a GUI for players. Therefore, we went through the prominent stages of software engineering first planning the architecture, creating multiple prototype visualisations and diagrams, implementing and testing our software. In the end, each student had to individually implement an AI for a character family which had to beat the provided baseline implementation.
The project was supported by lectures on software engineering concepts as UML class diagrams, software patterns, unit and system testing as well as GUI implementation.
Course webpage

Grade: ungraded
-- Jan Reineke (9 CP)

This lecture covered ideas of technical computer science focusing mainly on computer architectures and operating systems. This contained boolean algebra, logic, (arithmetic) circuits for addition, subtraction, encodings of numbers, different forms of memory and caches, MIPS, concurrency and pipelining in system architecture. For operating systems I/O, scheduling, virtual memory, paging and scheduling was covered.
Course webpage

Grade: 1.0
-- Hannah Markwig (9 CP)

This mathematical lecture focused on analysis. It first covered discrete mathematics with core concepts as sets, relations, predicate logic and functions. It then contained groups, rings, fields, sequences, series, continuous and differentiable functions, integrals Taylor series and further fundamental ideas of analysis.

Grade: 1.0
-- Michael Sagraloff (9 CP)

This second mathematical lecture continued with linear algebra. It introduces real spaces of arbitrary dimensionality, abstract vector space, systems of linear equations and matrices, groups, symmetry, determinants, eigenvalues and -vectors, principal component analysis, singular value decomposition and Fourier series.

Grade: 2.3
-- multiple lecturers (2 CP)

This lecture provided an overview over computer science research done at Saarland University. Therefore, every week a professor from the field of computer science presented a topic or project they worked on in their research. These presentations gave interesting insight into cutting-edge research in the field done at the university or its connected institutes.
Course webpage

Grade: ungraded
-- Andreas Jäger (4 CP)

As part of my original started minor subject of psychology, I attended this seminar in which students of the field of psychology presented various topics. It covered the beginnings and history of the field, experimental psychology as science, essential schools in research, potential futures of psychology, clinical psychology and more. The general idea was to provide an overview of this field of studies. Myself, I presented the ideas of Sigmund Freud on psychoanalysis.

Grade: ungraded
-- Dirk Wentura (8 CP)

This lecture was held over both semesters of the first year covering a variety of topics from the field of cognitive psychology. It tought concepts of attention, awareness, visual and further forms of perception, short- and long-term memory, thinking capability and judgement as well as motoric control of humans.
It was certainly interesting to learn about such concepts and a rewarding change of environment compared to the usual mathematical and scientific computer science lectures I attended.

Grade: 3.3

Deutsche Hochschulreife (Abitur)

Warndtgymnasium Geislautern
  • Graduated Abitur 1.0 with examination subjects:
    Mathematics - 15, English - 12, Computer Science - 14, German - 15, History - 15
  • Awards received:
    • Year’s best student award of the Warndtgymnasiums Geislautern
    • Computer Science award 2015 of Saarland University
    • Mathematics award 2015 of Saarland University
    • History award 2015 of the historic society for the Saar-Region (historischer Verein für die Saargegend e.V.)

Research Experience

Curiosity in Multi-Agent Reinforcement Learning (M.Sc. Thesis)

University of Edinburgh
May 2019 - Aug 2019

"Curiosity in Multi-Agent Reinforcement Learning"

  • Applied curiosity as intrinsically computed exploration bonuses for multi-agent reinforcement learning (MARL)
  • Implemented count- and prediction-based curiosities for value-based and policy-gradient MARL methods using PyTorch
  • Evaluated the influence of curiosity on cooperative and competitive MARL under partial observability and sparse rewards in a multi-agent particle environment
  • Applied curiosity led to improved stability and convergence of policy-gradient MARL trained with sparse reward signals
  • Received grade 74% (A3)

Reinforcement Learning for Video Game Playing (IRR)

University of Edinburgh
Sep 2018 - Jan 2019

"Reinforcement Learning for Video Game Playing"

  • Reviewed the development of reinforcement learning research for game playing and the challenge from board games Backgammon, Chess and Go to video games focusing on Atari and StarCraft
  • Outlined the development of common reinforcement learning approaches and highlighted the challenge of multi-agent tasks, particular in partially-observable environments
  • Proposed concept of curiosity for application in multi-agent reinforcement learning to overcome challenging tasks involving partial observability

Domain-Dependent Policy Learning using Neural Networks in Classical Planning (B.Sc. Thesis)

Foundations of Artificial Intelligence (FAI) Group
Aug 2018 - Jul 2018

"Domain-Dependent Policy Learning using Neural Networks in Classical Planning"

  • Transferred domain-dependent policy learning neural network architecture of Action-Schema Networks to classical automated planning
  • Implemented the network using Keras, slightly adjusted its training for classical planning and extended the FastDownward planning framework
  • Extensive evaluation and analysis was conducted on IPC domains of varying complexity identifying limita- tions in generalisation and scalability
  • Received best grade 1.0 of both reviewers

Teaching Experience

Teaching Assistant

School of Informatics, University of Edinburgh
Oct 2019 - Present

Teaching assistant, demonstrator and marker for the Reinforcement Learning lecture at the University of Einburgh under Dr. Stefano V. Albrecht

  • Designing reinforcement learning (RL) project covering wide range of topics including dynamic programming, single- and multi-agent RL as well as deep RL
  • Marking project and exam for reinforcement learning course
  • Advising students on various challenges regarding lecture material and content

Lecturer and Coach

Mathematics Preparation Course, Saarland University
Sep 2017 - Oct 2017

Voluntary lecturer and coach for the mathematics preparation course preparing upcoming computer science undergraduate students for their studies

  • Assisted the organisation of the mathematics preparation course for upcoming computer science students aiming to introduce them to foundational mathematical concepts, the university and student life as a whole
  • Introduced ∼250 participants to the importance of mathematics for computer science, formal languages and predicate logic in daily lectures of the first week
  • Supervised two groups to provide feedback and further assistance in daily coaching-sessions
  • The course received the BESTE-award for special student commitment 2017 at Saarland University

Teaching Assistant

Dependable Systems and Software Chair, Saarland University
Oct 2016 - Mar 2017

Tutor for the Programming 1 lecture about functional programming at the Dependable Systems and Software Group chair of Saarland University under Prof. Dr. Holger Hermanns

  • Taught first-year students fundamental concepts of functional programming, basic complexity theory and inductive correctness proofs in weekly tutorials and office hours
  • Corrected weekly tests as well as mid- and endterm exams
  • Collectively created learning materials and discussed student progress as part of the whole teaching team


Curiosity in Multi-Agent Reinforcement Learning
-- MSc Thesis Project
Reinforcement Learning for Soccer Playing
-- Reinforcement Learning Lecture
Plagiarism Detection Tool
-- Software Engineering Lecture
-- Modern Imperative Programming Languages Seminar
Turn-based Game
-- Summer Software Project
Domain-Dependent Policy Learning in Classical Planning
-- BSc Thesis Project
Autonomous Robot Localisation
-- Robotics: Science and Systems Lecture
Galaxy-based Search Algorithm
-- Natural Computing Lecture
Automated Planning System
-- Automated Planning Lecture
Concurrent Exam Correction Simulation
-- Concurrent Programming Lecture


Due to the fact that these projects are (mostly) university projects, I am unable to provide access to code or used repositories. However, I would gladly discuss more details regarding the projects wherever possible. If you would like further information or have any general questions, please do not hesitate to contact me. Contact-details can be found at the bottom of each page.


Skills and Knowledge
 Reinforcement Learning  • Machine Learning  • Robotics  • Automated Planning  • Software Engineering 
Programming Languages
 Python  • C  • C++  • Java  • Rust  • SML  • MATLAB  • Bash 
Frameworks and Tools
 PyTorch  • Tensorflow  • Keras  • NumPy  • Unix  • Git 
 HTML  • CSS  • LaTeX  • Markdown 
 English (fluent)  • German (native)  • French (advanced)  • Japanese (beginner)