Stanford University

Summer 2009

**Instructor:** Dave Kauchak

**e-mail:** [first_initial][last_name]@stanford.edu

**office hours:** Monday 11-12am, Gates 195

**TA:** Wenxiu Ma

**e-mail:** [first_name]@stanford.edu

**office hours:** Wednesday 4-6pm, Gates B24A

**TA:** Tiyu Wang

**e-mail:** [first_name][last_name]@gmail.com

**office hours:** Tuesday 7-10pm, Gates B02

**location:** Gates B01

**web page:** http://www.stanford.edu/class/cs161/

**discussion board:** http://groups.google.com/group/su_cs161_sum09

**textbook:**

- Introduction to Algorithms, 2nd edition (2007). Thomas H. Cormen, Charles E. Leiserson Ronald L. Rivest and Clifford Stein.

- Also useful: Algorithms (2008). Sanjoy Dasgupta, Christos Papadimitiou and Umesh Vazirani.

- Also useful: Algorithm Design (2006). Jon Kleinberg and Eva Tardos.

Homework 6 solution now available

Homework 5 solution now available

Sample final available

Homework 6 now available

Final review session Wednesday, 8/12 3:15-5:05pm in Skilling Auditorium

Homework 4 solution now available

Homework 5 now available

Anonymized scores for homeworks and the midterm can be found here

Homework 4 now available

Homework 3 solution now available

Sample midterm available

Optional hashtable homework available

Homework 2 solution now available

Sample midterm available

Midterm review session Friday, 7/17 2:15-4:05pm in Skilling Auditorium

Homework 3 now available

Homework 2 due date extended to Fri. 7/10, 5pm

Homework 1 solution now available

Homework 2 now available

7/1 office hours will be in Gates 195

Homework 1 now available

Date | Topic | Reading | Notes/Handouts |
---|---|---|---|

6/24 | Admin. material, Introduction | Ch. 1, 2 | Admin material, Introduction.v3 |

6/29 | O-notation | Ch. 3 | BigO, BigO slides.v2 |

7/1 | Recurrences | Ch. 4.1-4.3 | Recurrences.v3, Recurrences slides.v2 |

7/6 | Quicksort, Randomized algorithms | Ch. 7,8.1-8.3 | Quicksort, Quicksort slides.v2 |

7/8 | Elementary data structures, Heaps | Ch. 6, 10 | Heaps, Heap slides |

7/13 | Binary search trees, B-Trees | Ch. 12,18 | Search Trees.v2, Search Trees slides.v2 |

7/15 | Hashtables | Ch. 11, except 11.3.3 & 11.5 | Hashtables, Hashtables slides.v3 |

7/20 | Midterm | ||

7/22 | Graph algorithms | Ch. 22 | Graphs.v3, Graphs slides.v3 |

7/27 | Minimum spanning trees and single source shortest paths | Ch. 23, 24 | Graphs2.v3 Graphs2 slides.v4 |

7/29 | Greedy algorithms | Ch. 16, except 16.4 | Greedy.v2, Greedy slides.v2 |

8/3 | Dynamic programming | Ch. 15, except 15.5 | Dynamic Programming.v2, DP slides.v2 |

8/5 | String algorithms | Ch. 32, except 32.4 | Strings.v5, Strings slides.v3 |

8/10 | Linear programming | Ch. 7 from Dasgupta et. al sections 7.1, 7.6, 7.7 Optional Ch. 29 | LP slides.v4 |

8/12 | Advanced algorithms/Review | Review, Review slides | |

8/14 | Final | 3:30pm - 6:30pm, Gates B01 |