Teaching

6.172: Performance Engineering of Software Systems, Fall 2017
Course webiste: https://learning-modules.mit.edu/class/index.html?uuid=/course/6/fa17/6.172#dashboard
6.S898: Advanced Performance Engineering for Multicore Applications, Spring 2017
Case Study: Matrix Multiplication
Lecture slides: [pdfKeynote]
A Quick Introduction to the Intel Cilk Plus Runtime System
Lecture slides: [pdfKeynote]
6.172: Performance Engineering of Software Systems, Fall 2012
Chromatic Scheduling
Lecture slides: [pdf]
6.172: Performance Engineering of Software Systems, Fall 2011
Professor Charles Leiserson and I are currently transforming our course notes into a textbook for 6.172.
6.046: Design and Analysis of Algorithms, Fall 2009
Asymptotic Notation and the Master Method
Recitation notes: [pdf]
Matrix Multiplication and Matrix Product Checking
Recitation notes: [pdf]
Deterministic Select
Recitation notes: [pdf]
Augmentation, Order Statistic Trees, Range Trees
Recitation notes: [pdf]
Dynamic Programming, Viterbi Algorithm
Rectiation notes: [pdf]
Reductions, SAT to 3-SAT, 3-SAT to Vertex Cover, Adaptive Cook Reductions
Recitation notes: [pdf]
Approximation Algorithms, Set Cover, TSP
Recitation notes: [pdf]
Sublinear Time Algorithms, Streaming Algorithms
Recitation notes: [pdf]