Daily preparation guide
Study the material listed in the preparation section prior to
attending class that day. Try to formulate precise questions concerning
the parts you don't understand or the importance of the material.
If you come across some really difficult material, try searching
the web for alternative explanations.
Thursday, August 24
Introduction:

Classes begin

Review of syllabus

Review of order notation

Review of logarithmic identities

Review of sorting algorithms

Example prerequisite material questions: http://beastie.cs.ua.edu/concepts/cs/ds/
Tuesday, August 29
Preparation:

Chapter 3, Growth of Functions
Thursday, August 31
Tuesday, September 5
Prerequisite exam
Thursday, September 7
Preparation:
Programming assignment #0 due
Tuesday, September 12
Preparation:
Thursday, September 14 (Onyourown Day)
Selfbalancing trees, continued
Monday, September 18
Constitution Day!
Tuesday, September 19 (Onyourown Day)
Preparation:
Thursday, September 21 (Onyourown Day)
Binomial and Fibonacci Heaps, continued
Programming assignment #0, resubmission #1 due
Tuesday, September 26
Preparation:
Thursday, September 28
Preparation:
Programming assignment #0, resubmission #2 due
Programming assignment #1 due
Tuesday, October 3
First concept exam:

Solving recurrences

Selfbalancing search trees

Binomial and Fibonacci heaps

Disjoint sets

Graphs and graph exploration
Thursday, October 5
Preparation:
Programming assignment #0, resubmission #3 due
Programming assignment #1, resubmission #1 due
Tuesday, October 10
Preparation:
Thursday, October 12
Preparation:
Programming assignment #0, final resubmission due
Programming assignment #1, resubmission #2 due
Tuesday, October 17
Dynamic programming, continued
Thursday, October 19
Preparation:
Programming assignment #1, resubmission #3 due
Tuesday, October 24
Medians and order statistics, continued
Thursday, October 26
Fall break
Programming assignment #1, final resubmission due
Programming assignment #2 due
Tuesday, October 31
Preparation:
Wednesday, November 1
Last day to drop a class
Thursday, November 2
Second content exam:

Minimum spanning trees

Shortest paths

Dynamic programming (including memoization)

Linear time selection
Programming assignment #2, resubmission #1 due
Tuesday, November 7
Preparation:
Thursday, November 9
Preparation:
Programming assignment #2, resubmission #2 due
Programming assignment #3 due
Tuesday, November 14
Preparation:
Thursday, November 16
Amortized analysis, continued
Programming assignment #2, resubmission #3 due
Programming assignment #3, resubmission #1 due
Tuesday, November 21
Preparation:
Thursday, November 23
Thanksgiving
Friday, November 24
Programming assignment #2, final resubmission due
Programming assignment #3, resubmission #2 due
Tuesday, November 28
Preparation:
Thursday, November 30
P, NP, and NPcompleteness, continued
Programming assignment #3, resubmission #3 due
Tuesday, December 5
Dead week
Thursday, December 7
Dead week, last day of class
Programming assignment #3, final resubmission due
Friday, December 8
Last day to withdraw from the term
Thursday, December 14
Final exam (cummulative), 11:30am to 2:00pm