# 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