| Week 1 | Simple Sorting Algorithms, maintain a sorted list |
| Week 2 | Divide and conquer: mergesort and quicksort |
| Week 3 | Heap and Heapsort, lower bounds on comparison sort |
| Week 4 | Count sort and Radix sort |
| Week 5 | Growth functions, asymptotics, recurrence |
| Week 6 | Minimums, maximums, Median Finding, Analysis, randomized algorithm |
| TBD | Project 1 class presentation (5min/team) |
| Week 7 | Greedy algorithms, Huffman codes |
| Week 8 | Dynamic Programming, scheduling problem |
| Week 9 | Longest Common Subsequence, matrix multiplication |
| TBD | Midterm Exam (90mins) |
| Week 10 | Graph Algorithms: BFS, DFS |
| Week 11 | Topological sort and Stronly Connnected Component, Minimum Spanning Trees |
| Week 12 | Single-source Shortest Path, Bellman-Ford, Dijkstra Algs. |
| Week 13 | Multi-source Shortest Path, Floyd-Warshall Alg. |
| Week 14 | Network Flow & Bipartite Matching |
| TBD | Projects 2/3 class Presentation (5 mins per team) |
| Week 15 | NP-completeness |
| Week of Dec 8 | Final Exam (90 mins) date/time determined by the university |