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, January 12
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, January 17
Preparation:

Chapter 3, Growth of Functions
Thursday, January 19
Tuesday, January 24
Prerequisite exam
Wednesday, January 25
Programming assignment #0 due
Thursday, January 26
Preparation:
Tuesday, January 31
Preparation:
Wednesday, February 1
Programming assignment #0, resubmission #1 due
Thursday, February 2
Selfbalancing trees, continued
Tuesday, February 7
Preparation:
Wednesday, February 8
Programming assignment #0, resubmission #2 due
Programming assignment #1 due
Thursday, February 9
Binomial and Fibonacci Heaps, continued
Tuesday, February 14
Preparation:
Wednesday, February 15
Programming assignment #0, resubmission #3 due
Programming assignment #1, resubmission #1 due
Thursday, February 16
Preparation:
Tuesday, February 21
First concept exam:

Solving recurrences

Selfbalancing search trees

Binomial and Fibonacci heaps

Disjoint sets

Graphs and graph exploration
Wednesday, February 22
Programming assignment #0, final resubmission due
Programming assignment #1, resubmission #2 due
Thursday, February 23
Tuesday, February 28
Preparation:
Wednesday, March 1
Programming assignment #1, resubmission #3 due
Thursday, March 2
Preparation:
Tuesday, March 7
Dynamic programming, continued
Wednesday, March 8
Programming assignment #1, final resubmission due
Programming assignment #2 due
Thursday, March 9
Preparation:
Tuesday, March 14
Spring break
Thursday, March 16
Spring break
Tuesday, March 21
Medians and order statistics, continued
Wednesday, March 22
Programming assignment #2, resubmission #1 due
Thursday, March 23
Preparation:
Tuesday, March 28
Second content exam:

Minimum spanning trees

Shortest paths

Dynamic programming (including memoization)

Linear time selection
Wednesday, March 29
Programming assignment #2, resubmission #2 due
Programming assignment #3 due
Last day to drop a class
Thursday, March 30
Preparation:
Tuesday, April 4
Preparation:
Wednesday, April 5
Programming assignment #2, resubmission #3 due
Programming assignment #3, resubmission #1 due
Thursday, April 6
Preparation:
Tuesday, April 11
Amortized analysis, continued
Wednesday, April 12
Programming assignment #2, final resubmission due
Programming assignment #3, resubmission #2 due
Thursday, April 13
Preparation:
Tuesday, April 18
Preparation:
Wednesday, April 19
Programming assignment #3, resubmission #3 due
Thursday, April 20
P, NP, and NPcompleteness, continued
Tuesday, April 25
Dead week
Wednesday, April 26
Programming assignment #3, final resubmission due
Thursday, April 27
Dead week, last day of class
Friday, April 28
Last day to withdraw from the term
Wednesday, May 3
Final exam (cummulative), 11:30am to 2:00pm