Material covered by schedule subject to change, although
midterm & final dates are fixed.
Schedule is numbered by week.
- (9/30): Introduction, math and basic analysis tools, including recurrence equations.
Read 1.1-1.4, 1.6, Appendix A
- (10/5): Review data structures: sequences, trees. Assignment #1 due.
Read 2, 3.1, 4.1
(10/7) Priority queues.
- (10/12): Finish priority queues. Heap sort. Intro to divide and conquer: Merge sort. More recursive analysis and recurrence equations.
Assignment #2 due.
Read 4.1,
5.2, 4.3-4.5.
(10/14): Finish Merge Sort, more complicated recurrence equation solving. More introductory
divide and conquer algorithms.
- (10/19):Midterm review. Assignment #3 due.
Read 4.2, 4.7.
(10/21): Midterm 1 on Thursday, Oct. 21st.
- (10/26): Master Theorem, Big integer multiplication.
Read chapter 5.3
(10/28): bucket sort, radix sort. Dynamic programming. Assignment #4 due.
- (11/2): More dynamic Programming.
Read chapter 5.1
(11/4): Greedy algorithms
- (11/9): Intro to Graphs and Graph ADT. Assignment #5 due.
Read chapter 6.1-6.2.
(11/11): Holiday, no class.
- (11/16):
Midterm 2 on Tuesday, Nov. 16th.
Read chapter 6.
(11/18):
Graph Algorithms: DFS, BFS.
- (11/23): More graph algorithms. shortest path.
Assignment #6 due.
Read chapter 7.
(11/25): Holiday, no class.
- (11/30):
Minimum spanning tree. Floyd-Warshall's.
Read chapter 9.4.
(12/2):Least Common Subsequence. Assignment
#7 due.
- Week 11 (12/7): Introduction to
NP.
Read chapter 13.1-13.3.
(12/9): Review. Assignment #8 due.
- Final Exam date: Thursday, Dec. 16th