I have (co) taught the following courses / lectures:

Graduate seminar on physics and computation - Fall 2018

Harvard CS121: Introduction to Theoretical Computer Science - Fall 2018, Fall 2017.

Harvard CS127/CS227R: Cryptography - Spring 2018, Spring 2018.

Harvard CS229r / MIT 6.S898: Proofs, beliefs and algorithms through the lens of Sum of Squares - Fall 2016 - graduate course/seminar on the Sum of Squares algorithm.

Winter school on the Sum of Squares algorithm - January 2017, San Diego.

Addis Coder 2016 -summer course on algorithms and coding for high school students in Ethiopia, August 2016, co taught with Timnit Gebru, Jelani Nelson and a wonderful team of TA’s. (I taught week 3 of the course; lecture notes for my lecture, in Jupyter notebook format, are available here. )

Lecture on the Rossman-Servedio-Tan circuit depth hierarchy for average-case complexity - guest lecture in Dana Moshkovitz’s advanced complexity course, May 12, 2015.

Sum of squares upper bounds, lower bounds, and open questions - seminar series at MIT, Mondays 2pm-5pm.

Summer course on the Sum of Squares method - in the Swedish Summer School of Computer Science, July 2014.

MIT 6.889 BU CAS CS 937: New Developments in Cryptography - co taught with Shafi Goldwasser, Leo Reyzin, Yael Kalai, and Salil Vadhan

Princeton COS 433 - Cryptography - Spring 2010

Princeton COS 522 - (graduate) Computational Complexity - Spring 2009

Preceptor in Princeton COS 226 - Algorithms and Data Structures - Fall 2008.

Princeton COS 598D - Mathematical Methods in Theoretical Computer Science - Spring 2008

Princeton COS 433 - Cryptography - Fall 2007

Princeton COS 522 - (graduate) Computational Complexity - Spring 2007

Princeton COS 522 - (graduate) Computational Complexity - Spring 2006

Princeton COS 433 - Cryptography - Fall 2005

I maintained the home page for Gil Kalai and Avi Wigderson’s course on Mathematical Methods in Computer Science at the Hebrew University.

I maintained the home page for Nati Linal and Avi Wigderson’s course on Expander Graphs and Their Applications at the Hebrew University. Note: these lecture notes have been superseded by this excellent survey by Hoory, Linial and Wigderson.

I once gave a crash course on the Java programming language. Notes for it (in Hebrew) can be found here.