Teaching
You can find some educational videos on coding theory (following CS250/EE387) on youtube here.
You can find some educational videos on randomized algorithms (following CS265/CME309) on youtube here.
You can find my textbook with Eric Darve on numerical linear algebra from on Google Play here. (Sorry, not free).
Stanford University
Fall 2023:
OSPISTAN20, Dealing with Data (in Istanbul!). Webpage on Canvas.
Spring 2023:
CS161, Design and Analysis of Algorithms. (Old) webpage here.
Winter 2023:
COLLEGE102, Citizenship in the 21st Century. (Webpage on Canvas.)
Fall 2022:
CS265/CME209, Randomized Algorithms. Webpage here.
Winter 2022:
Winter 2021: CS250/EE387, Algebraic Error Correcting Codes.
(Old) course website here .
Fall 2020: CS265/CME309, Randomized Algorithms. (Old) course website here
Winter 2020: CS161, Design and Analysis of Algorithms. (Old) course website here
Fall 2019: CS57N/PHIL3N, Randomness: Computational and Philosophical Approaches.
Winter 2019:
CS250/EE387, Algebraic Error Correcting Codes. (Old) Course web page here.
CS161, Design and Analysis of Algorithms.
Winter 2018: CS250/EE387, Algebraic Error Correcting Codes. (Old) Course web page here.
Fall 2017: CS161, Design and Analysis of Algorithms.
Spring 2017: CS161, Design and Analysis of Algorithms.
Fall 2016: CS250/EE387, Error Correcting Codes: Theory and Applications.
Carnegie Mellon University
Fall 2015: 15-855, An Introduction to Computational Complexity Theory (Co-teaching with Venkat Guruswami).
University of Michigan
Fall 2011: EECS 574, Complexity Theory (GSI for Yaoyun Shi)
Fall 2009, Winter 2010, Fall 2010, Winter 2011: Math 115, Calculus 1 (primary instructor)
Short Courses
Summer 2012, Summer 2013: TA, Michigan Math and Science Scholars summer program for high school students (TA'ing for Martin Strauss's course on interpolation)
Summer 2011: TA, IAS Women's Program (TA'ing for Anna Gilbert's course on sparse approximation)