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 |