2017
- Machine Learning (Stanford)
- Week 1: Introduction (notes)
- Design and Analysis of Algorithms (Stanford)
- Course 1: Divided and Conquer, Sorting and Searching, and Randomized Algorithms
- Course 2: Graph Search, Shortest Paths, and Data Structures
- Week 1: Breadth-first and depth-first search;computing strong components; applications (notes)
- Week 2: Dijkstra's shortest-path algorithm
- Week 3: Heaps; balanced binary trees;
- Week 4: Hashing; bloom filters
- Course 3: Greedy Algorithms, Minimum Spanning Trees and Dynamic Programming
- Course 4: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them