Lectures occured on Tuesdays and Thursdays. Recitations took place on Wednesdays and Fridays. Optional problem sessions were held on Fridays.

Week | Lectures | Recitations | Problem Sessions | Key Dates |
---|---|---|---|---|

1 | Lecture 1: Introduction Lecture 2: Data Structures | Recitation 1 Recitation 2 | Problem Session 1 | Problem Set 0 Due |

2 | Lecture 3: Sorting Lecture 4: Hashing | Recitation 3 Recitation 4 | Problem Session 2 | Problem Set 1 Due |

3 | Lecture 5: Linear Sorting | Recitation 5 | Problem Session 3 | Problem Set 2 Due |

4 | Lecture 6: Binary Trees, Part 1 Lecture 7: Binary Trees, Part 2: AVL | Recitation 6 Recitation 7 | Problem Session 4 | Problem Set 3 Due |

5 | Lecture 8: Binary Heaps Lecture 9: Breadth-First Search | Recitation 8 Recitation 9 | Quiz 1 Review | Problem Set 4 Due Quiz 1 Review |

6 | Lecture 10: Depth-First Search Lecture 11: Weighted Shortest Paths | Recitation 10 Recitation 11 | Problem Session 5 | |

7 | Lecture 12: Bellman-Ford | Recitation 12 | Problem Session 6 | Problem Set 5 Due Quiz 1 |

8 | Lecture 13: Dijkstra's Algorithm Lecture 14: Johnson's Algorithm | Recitation 13 Recitation 14 | Problem Session 7
| Problem Set 6 Due Quiz 2 Review |

9 | Lecture 15: Dynamic Programming, Part 1: Recursive Algorithms Lecture 16: Dynamic Programming, Part 2: Subproblems | Recitation 15 Recitation 16 | Problem Session 8 | |

10 | Lecture 17: Dynamic Programming, Part 3: APSP, Parens, Piano | Recitation 17 | No problem sessions | Problem Set 7 Due Quiz 2 |

11 | Lecture 18: Dynamic Programming, Part 4: Pseudopolynomials Lecture 19: Complexity | Recitation 18 Recitation 19 | Problem Session 9
| Problem Set 8 Due Quiz 3 Review |

12 | Lecture 20: Course Review | Recitation 20 | No problem sessions | Quiz 3 |

13 | Lecture 21: Algorithms—Next Steps | No recitations | No problem sessions | |

14 | Final Exam |