# Teaching

## 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