ETH Zurich

undergraduate
Algorithms and Data Structures
Fall 2020 (co-taught with M. Püschel), Fall 2019 (co-taught with M. Püschel), Fall 2018 (co-taught with M. Püschel), Fall 2017 (co-taught with M. Püschel and P. Widmayer)

undergraduate
Algorithms, Probability, and Computing
Fall 2020 (co-taught with B. Gärtner, M. Ghaffari, and R. Kyng), Fall 2019 (co-taught with B. Gärtner, M. Ghaffari, and A. Steger), Fall 2018 (co-taught with M. Ghaffari, A. Steger, E. Welzl, and P. Widmayer), Fall 2017 (co-taught with M. Ghaffari, A. Steger, E. Welzl, and P. Widmayer)

graduate
Optimization for Data Science
Spring 2020 (co-taught with B. Gärtner), Spring 2019 (co-taught with B. Gärtner), Spring 2018 (co-taught with B. Gärtner)

graduate
Seminar in Theoretical Computer Science
Fall 2020, Spring 2020, Fall 2019, Spring 2019

Princeton University

COS 597F—graduate seminar
Proofs, beliefs, and algorithms through the lens of sum-of-squares
Fall 2016 (co-taught with Pravesh Kothari)

Cornell University

CS 4814—undergraduate
Introduction to Computational Complexity
Fall 2015

CS 4820—undergraduate
Introduction to Analysis of Algorithms
Spring 2015 (co-taught with Éva Tardos), Spring 2014 (co-taught with Robert D. Kleinberg)

CS 7800—graduate seminar
Constraint Satisfaction — Approximation and Hardness
Spring 2013

CS 4810—undergraduate
Introduction to Theory of Computing
Fall 2013

CS 6810—graduate
Theory of Computing
Spring 2016, Fall 2012

CS 7890—graduate seminar
Theory Seminar
Spring 2016, Fall 2015, Spring 2015, Spring 2014, Fall 2013, Spring 2013, Fall 2012