Course Home | Course Policies | Homework | Schedule & Lecture Notes

CS 314: Algorithms
Spring 2009

Erin Chambers
Contact Info: echambe5 - at -
Office: 011 Ritter Hall
Office Hours: Wednesday 2-3pm, Friday 10-11, or by appointment


Please note that any topics scheduled for future classes are tentative, and may be changed at the last minute.

Any notes provided are taken from Jeff Erickson's Algorithms Materials.

Week Day Topic Reading
January 12-16 Monday Introduction, course administration
Algorithms and Pseudocode
Wednesday Review of recurrences Recurrence notes
Friday Review of induction and proofs Your handy discrete math text book
January 19-23 Monday Martin Luther King day
No class
Wednesday Recursion - Towers of Hanoi Recursion notes
Friday Recursion: Subset sum and Mergesort Recursion notes
Divide and Conquer Notes
Chapter 5 of textbook
January 26-30 Monday Divide and Conquer: Counting inversions Section 5.3 of text
Wednesday Review of Big-O
Divide and Conquer: Integer Multiplication

Divide and Conquer Notes and Section 5.5 of Textbook
Friday Intro to Dynamic Programming:
Fibonacci numbers
Intro to weighted intervals
Dynamic Programming Notes
Chapter 6 of text
February 2-6 Monday Dynamic Programming: Weighted intervals
Weighted Knapsack
Dynamic Programming Notes
Chapter 6 of text
Wednesday Dynamic Programming: Weighted Knapsack
Sequence Alignment
Dynamic Programming Notes
Chapter 6 of text
Friday Dynamic Programming: Sequence alignment in O(n) space Chapter 6 of text
February 9-13 Monday Dynamic Programming: Problem session day Handout in class
Wednesday Greedy Algorithms: Interval scheduling Ch. 4.1 of Textbook
Greedy Algorithm Notes, Section 2
Friday No lecture due to instructor illness Finish reading either 4.1 of text or section 2 of Greedy Algorithm Notes
February 16-20 Monday Greedy Algorithms
Scheduling to minimize lateness
Section 4.2 of text
Wednesday Greedy Algorithms: Huffman codes Section 4.8 of text
Section 4 of Greedy Algorithm Notes
Friday Greedy algorithms: problem session day handout in class
February 23-27 Monday Introduction to Graphs Section 3.1-3.2 of text
Wednesday Graph Algorithms
DFS, BFS, and Topological Sort
Sections 3.2-3.5 in text
Friday Graph Algorithms
Shortest paths
Section 4.4 of text
March 2-7 Monday Graph Algorithms: MST Sections 4.5, 4.6 of text
Wednesday Review for midterm
Friday Midterm Exam
March 9-13 Monday No Class: Spring Break
March 16-20 Monday Discrete Probability
Wednesday Randomized Algorithms
Friday Randomized Algorithms
March 23-27 Monday Randomized Algorithms
Wednesday Randomized Algorithms
Friday Reductions
March 30-April 3 Monday NP-Completeness
Wednesday NP-Completeness
Friday Complexity Classes
April 6-10 Monday Approximation Algorithms
Wednesday Approximation Algorithms
Friday No Class Good Friday
April 13-17 Monday No Class Easter Monday
Wednesday Approximation Algorithms
Friday Approximation Algorithms
April 20-24 Monday Network Flow
Wednesday Network Flow
Friday Network Flow
April 27-May 1 Monday Network Flow
Wednesday Network Flow
Friday Review + overflow day
April 27-May 1 Monday Review
Wednesday Finals week