Class schedule

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