I have taught at London School of Economics and ETH Zürich. At ETH Zürich I have assisted Peter Widmayer with the supervision of his PhD students and I have advised one Bachelor Thesis and one semester paper.

At London School of Economics

Fall 2017, 2016, 2014
Game Theory
Bachelor and Master-level course, also offered as distance learning course by University of London
Course guide: MA300.1, MA301, MA402
The course studies the theory of games and its applications in economics: Game trees with perfect information, NIM, combinatorial games. Backward induction. Extensive and strategic (normal) form of a game. Nash equilibrium. Commitment. Zero sum games, mixed strategies. Maxmin strategies. Nash equilibria in mixed strategies. Finding mixed-strategy equilibria for two-person games. Extensive games with information sets, behaviour strategies, perfect recall. If time permits: The Nash bargaining solution. Multistage bargaining.
Lecture notes and slides: Moodle (restricted)

Spring 2015
Algorithms in Java
Bachelor level-course
Course guide: MA314
Basics of Java programming. The Euclidean algorithm. Time complexity of algorithms. Asymptotic notation. Heaps. Sorting. Recursive algorithms. Stacks and queues. Linked lists. Graphs. Breadth-first and depth-first search. Connectivity and topological sorting. Dijkstra’s algorithm. Closest pair in the plane.
Slides: Moodle (restricted)

At ETH Zürich

Fall 2015
Algorithmic Game Theory
Bachelor, Master, and PhD-level course
Taught together with Peter Widmayer
Course guide: 252-1407-00 L
Game theory provides a good model for the behavior and interaction of the selfish users and programs in large-scale distributed computer systems without central control. The course discusses algorithmic aspects of game theory, such as a general introduction to game theory, auctions, mechanisms, the costs of a central control optimum versus those of an equilibrium under selfish agents, and algorithms and complexity of computing equilibria.
Lecture Notes: CADMO Coursepage
Lecture #1: Motivation
Lecture #1: Congestion Games
Lecture #2: Complexity of Pure Nash Equilibria in Congestion Games
Lecture #3: No Regret Dynamics
Lecture #4: Price of Anarchy in Congestion Games
Lecture #5: Price of Stability in Congestion Games
Lecture #5: Introduction to Mechanism Design
Lecture #6-#7: Truthful Single-Parameter Mechanisms
Lecture #8: The Tradeoff between Incentives and Computation
Lecture #9: Truthful Multi-Parameter Mechanisms and Black-Box Reductions
Lecture #10: Non-Truthful Mechanisms and the Smoothness Framework
Lecture #11: Non-Truthful Mechanisms beyond the Worst Case
Lecture #12: Mechanism Design without Money I
Lecture #13: Mechanism Design without Money II
Note: These lecture notes are open access, but they are copyrighted. Any unauthorized distribution is prohibited.

Spring 2016
Algorithmic Game Theory Seminar
Master and PhD-level course
Taught together with Peter Widmayer and Sven Seuken
Course homepage: UZH Coursepage
Course guide: 252-4302-00 S
In this seminar, we will discuss advanced topics in economics and computation (list of topics was made available in the kick-off meeting). Students review a paper, independently acquire the necessary background knowledge, and write a ca. 10 pages manuscript. They give a presentation (20 min) on the topic of their paper, and lead a short discussion (10 min) following their presentation. Students support each other as “buddies”.