Teaching
CS 294: Algorithmic Aspects of Machine Learning, Fall 2024@Berkeley
 Graduate course on modern algorithmic approaches in machine learning
		     
 See the course webpage here
18.200: Principles of Discrete Applied Mathematics, Spring 2024
 Undergraduate course on discrete math and proof writing co-taught with Peter Shor
		     
 See the course webpage here
6.C06/18.C06: Linear Algebra and Optimization, Fall 2023
 Undergraduate course on linear algebra and optimization co-taught with Pablo Parrilo
                        
 See the course webpage here
18.408: Algorithmic Aspects of Machine Learning, Spring 2023
 Graduate course on modern algorithmic approaches in machine learning
                        
 See the course webpage here
6.S084/18.061: Linear Algebra and Optimization, Fall 2022
 Undergraduate course on linear algebra and optimization co-taught with Pablo Parrilo
                        
 See the course webpage here
18.200: Principles of Discrete Applied Mathematics, Spring 2022
 Undergraduate course on discrete math and proof writing co-taught with Michel Goemans
		     
 See the course webpage here
6.S084/18.061: Linear Algebra and Optimization, Fall 2021
 Undergraduate course on linear algebra and optimization co-taught with Pablo Parrilo
                        
 See the course webpage here
18.408: Theoretical Foundations for Deep Learning, Spring 2021
 Graduate course on theoretical foundations, and open questions, in deep learning
                        
 See the course webpage here
6.S084/18.S096: Linear Algebra and Optimization, Fall 2020
 New undergraduate course on linear algebra and optimization co-taught with Pablo Parrilo
                        
 See the course webpage here
6.042/18.062: Mathematics for Computer Science, Fall 2019
 Undergraduate course on discrete math and probability co-taught with Zachary Abel and Ronitt Rubinfeld
                        
 See the course webpage here
6.042/18.062: Mathematics for Computer Science, Fall 2018
 Undergraduate course on discrete math and probability co-taught with Tom Leighton
                        
 See the course webpage here
18.200: Principles of Discrete Applied Mathematics, Spring 2018
 Undergraduate course on discrete math and proof writing co-taught with Michel Goemans
		     
 See the course webpage here
18.408: Algorithmic Aspects of Machine Learning, Fall 2017
 Graduate course on modern algorithmic approaches in machine learning
                        
 See the course webpage here
6.042/18.062: Mathematics for Computer Science, Fall 2016
 Undergraduate course on discrete math and probability co-taught with Tom Leighton
                        
 See the course webpage here
6.854/18.415J: Advanced Algorithms, Spring 2016
 Graduate course on advanced topics in algorithms
		     
 See the course webpage here
18.200: Principles of Discrete Applied Mathematics, Fall 2015
 Undergraduate course on discrete math and proof writing co-taught with Peter Shor
		     
 See the course webpage here
18.409: Algorithmic Aspects of Machine Learning, Spring 2015
 Redesigned graduate course on modern algorithmic approaches in machine learning
		     
 See the course webpage here
6.042/18.062: Mathematics for Computer Science, Fall 2014
 Undergraduate course on discrete math and probability co-taught with Tom Leighton
                        
 See the course webpage here
18.434: Seminar in Theoretical Computer Science, Spring 2014
 Undergraduate seminar on polytopes and optimization
                        
 See the course webpage here
18.S996: Algorithmic Aspects of Machine Learning, Fall 2013
 New graduate course on modern algorithmic approaches in machine learning
		     
 See the course webpage here
The Math Behind the Machine, Summer 2013
 Summer course for high school students introducing them to theoretical computer science
		     
Taught at Rutgers University through the New Jersey Governor's School