CS201 Data Structures and Algorithms

Schedule

## 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

### Tuesday, September 5

Prerequisite exam

### Thursday, September 7

Preparation:
Programming assignment #0 due

Preparation:

### Thursday, September 14 (On-your-own Day)

Self-balancing trees, continued

### Monday, September 18

Constitution Day!

Preparation:

### Thursday, September 21 (On-your-own Day)

Binomial and Fibonacci Heaps, continued

Preparation:

Preparation:

### Tuesday, October 3

First concept exam:
• Solving recurrences
• Self-balancing search trees
• Binomial and Fibonacci heaps
• Disjoint sets
• Graphs and graph exploration

### Thursday, October 5

Preparation:
Programming assignment #0, resubmission #1 due

Preparation:

### Thursday, October 12

Preparation:

Programming assignment #0, resubmission #2 due
Programming assignment #1 due

### Tuesday, October 17

Dynamic programming, continued

### Thursday, October 19

Preparation:
Programming assignment #0, resubmission #3 due
Programming assignment #1, resubmission #1 due

### Tuesday, October 24

Medians and order statistics, continued

### Thursday, October 26

Fall break

Programming assignment #0, final resubmission due
Programming assignment #1, resubmission #2 due

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 #1, resubmission #3 due
Programming assignment #2 due

Preparation:

### Thursday, November 9

Preparation:
Programming assignment #1, final resubmission due
Programming assignment #2, resubmission #1 due
Programming assignment #3 due

Preparation:

### Thursday, November 16

Amortized analysis, continued

Programming assignment #2, resubmission #2 due
Programming assignment #3, resubmission #1 due

Preparation:

Thanksgiving

### Friday, November 24

Programming assignment #2, resubmission #3 due
Programming assignment #3, resubmission #2 due

Preparation:

### Thursday, November 30

P, NP, and NP-completeness, continued

Programming assignment #2, final resubmission due
Programming assignment #3, resubmission #3 due

### 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