I am taking this MIT OpenCourseWare MOOC to strengthen my Algorithms foundations.
- 6.0001 Introduction to Computer Science and Programming in Python: Basic experience programming in Python 3.
- 6.042J Mathematics for Computer Science: Basic knowledge of discrete mathematics: set theory, relations and logic, combinatorics, proofs, recursion, number theory, graph theory, and probability.
Throughout this course I have referred to the Introduction to Algorithms Textbook by Cormen, Leiserson, Rivest, and Stein (Third Edition, MIT Press) ISBN: 9780262033848, commonly known as CLRS.
Week | Lectures | Key Assignments |
---|---|---|
1 | Lecture 1: Introduction | Problem Set 0 ✅ |
Lecture 2: Data Structures | ||
2 | Lecture 3: Sorting | Problem Set 1 ✅ |
Lecture 4: Hashing | ||
3 | Lecture 5: Linear Sorting | Problem Set 2 |
4 | Lecture 6: Binary Trees, Part 1 | Problem Set 3 |
Lecture 7: Binary Trees, Part 2: AVL | ||
5 | Lecture 8: Binary Heaps | Problem Set 4 |
Lecture 9: Breadth-First Search | ||
6 | Lecture 10: Depth-First Search | Problem Set 5 |
Lecture 11: Weighted Shortest Paths | ||
7 | Lecture 12: Bellman-Ford | Problem Set 5 |
Quiz 1 | ||
8 | Lecture 13: Dijkstra's Algorithm | Problem Set 6 |
Lecture 14: Johnson's Algorithm | ||
9 | Lecture 15: Dynamic Programming, Part 1: Recursive Algorithms | Problem Set 7 |
Lecture 16: Dynamic Programming, Part 2: Subproblems | ||
10 | Lecture 17: Dynamic Programming, Part 3: APSP, Parens, Piano | Problem Set 7 |
Quiz 2 | ||
11 | Lecture 18: Dynamic Programming, Part 4: Pseudopolynomials | Problem Set 8 |
Lecture 19: Complexity | ||
12 | Lecture 20: Course Review | Quiz 3 |
13 | Lecture 21: Algorithms—Next Steps |