Material covered by schedule subject to change, although midterm & final dates are fixed.
Schedule is numbered by week.
- (1/3): Introduction, math and basic analysis tools, including recurrence equations.
Read 1.1-1.4, 1.6, Appendix A, 2, 3.1.
(1/5): Review data structures: sequences, trees, Priority queues. - (1/10): Assignment #1 due. Review sorting algorithms, (heap sort, merge sort). Intro to divide and conquer.
Read 4.1, 5.2
(1/12): More recursive analysis and recurrence equations. - (1/17): Holiday, no class.
Read 4.3-4.5.
(1/19): Assignment #2 due. More divide and conquer algorithms. Possibly bucket & radix sort. - (1/24): Midterm 1 on Monday, Jan. 24th.
Read 4.2, 4.7.
(1/26): Master Theorem, Big integer multiplication. - (1/31): Assignment #3 due. Dynamic programming.
Read chapter 5.3
(2/2): More dynamic programming. - (2/7): Assignment #4 due. Greedy algorithms.
Read chapter 5.1, 6.1-6.2, 7.1
(2/9): Intro to Graphs and Graph ADT. Start Dijkstra's algorithm. - (2/14): Midterm 2 on Monday, Feb. 14th.
Read chapter 6, 7.1
(2/16): Finish Dijkstra's shortest path algorithm, DFS and DFS-based algorithms; BFS. - (2/21): Holiday, no class.
Read chapter 7
(2/23): Assignment #5 due. Finish DFS & BFS. - (2/28): Minimum spanning tree; Floyd-Warshall's.
Read chapter 7.
(3/2): Finish Floyd-Warshall's. Assignment #6 due. - (3/7): Least Common Subsequence.
Read chapter 9.4. Skim 13.1-13.3.
(3/9): Intro to NP. Review. Assignment #7 due. - Final Exam date: Wednesday, Mar. 16th