CSC 301  Grinnell College  Fall, 2013 
Analysis of Algorithms  
Class sessions will follow several formats, reflect student preferences.
Monday, August 26 New Student Days  Wednesday, August 28 Registration Day  Friday, August 30 Course Introduction Possible Class Formats Examining algorithm efficiency Read: CLR&S, Chapters 1, 2 
Monday, September 2 Growth of functions
Problems for Chapter 3 (Due, Friday, September 6)  Wednesday, September 4 Divide and conquer
Program for class discussion: simpleloopanalysis Problems for Chapter 3, Part 2 (Due, Monday, September 9)  Friday, September 6 Divide and conquer

Monday, September 9 Writing Proofs
 Wednesday, September 11 Divide and conquer
Problems for Chapter 3. Part 3 (Due, Monday, September 16) Revision of the first code analysis exercise also due Monday, September 16  Friday, September 13 Divide and conquer
Problems for the Master Theorem Due Wednesday, September 18) 
Monday, September 16 Probabilistic analysis and randomized algorithms
Revision of CLS&R, Problem 34, Due Friday, September 20  Wednesday, September 18 Heap sort (Student Group EA)
 Friday, September 20 Quicksort (Student Group 1A)

Monday, September 23 Sorting in Linear and in O(n log n) Time
 Wednesday, September 25 Pause for Breath Review for Test 1  Friday, September 27 Test 1 
Monday, September 30 Finding roots of functions
Supplemental Problem 1 (comparing sorting algorithms due Monday, October 14.  Wednesday, October 2 Hash tables
 Friday, October 4 Hash tables (Student Group 1C)

Monday, October 7 Binary search trees
 Wednesday, October 9 Multiway search trees (Student Group 1D)
 Friday, October 11 Multiway search trees (Student Group 1B)
Problems from Dale/Walker Handout. Chapter 9, Part A (Due, Friday, October 18) 
Monday, October 14 Multiway search trees (Student Group 1E)
Due: Supplemental Problem 1 (comparing sorting algorithms Problems from Dale/Walker Handout. Chapter 9, Part B (Due on Friday, November 1, based on 234 Trees and B Trees)  Wednesday, October 16 Redblack trees (Student Group 1F)
 Friday, October 18 Redblack (Student Group EC)

Monday, October 21 Break  Wednesday, October 23 Break  Friday, October 25 Break 
Monday, October 28 B Trees (Student Group EB) Read: Dale/Walker, pp. 417424  Wednesday, October 30 Dynamic programming
 Friday, November 1 Dynamic programming
Problems from Dale/Walker Handout. Chapter 9, Part B (Due, based on 234 Trees and B Trees) Procedure/program for dynamic programming (Due, based on dynamic programming) 
Monday, November 4 Greedy Algorithms
 Wednesday, November 6 Pause for Breadth Review for Test 1  Friday, November 8 Test 2 
Monday, November 11 Greedy Algorithms
 Wednesday, November 13 Elementary graph algorithms
 Friday, November 15 Graph algorithms (Student Group 2A)
Due: Analysis and Effiency Problem 
Monday, November 18 Graph algorithms (Student Group 2B)
 Wednesday, November 20 Unionfind algorithm (Student Group 2G)
 Friday, November 22 Minimum spanning trees
Due: Graphs, Part 1 
Monday, November 25 Optimal Binary Search Trees (Student Group 2C)
 Wednesday, November 27 Singlesource Shortest Paths (Student Group 2D)
Due: Graphs, Etc. Part 2  Friday, November 29 Thanksgiving Holiday 
Monday, December 2 Singlesource Shortest Paths (Student Group 2E)
 Wednesday, December 4 Disjoint sets (Student Group 2F)
 Friday, December 6 Pause for breath No class meeting 
Monday, December 9 String Matching (Student Group EC)
Due: More Graphs  Wednesday, December 11 String Matching (Student Group ED)
 Friday, December 13 Review Endofcourse evaluations Wrap up Due: Sets, Strings, and Algorithm Choices 
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/~walker/courses/301.fa13/semestersched.shtml
created 1 September 2013 last revised 2 December 2013 

For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. 