Department of Computer Science
Stanford University
CS 161 - Introduction to Algorithms and Data Structures
Summer 2008

Instructor: Dave Kauchak
e-mail: [first_initial][last_name]@stanford.edu
office hours: Monday 11-12am, Gates 195

TA: Neha Kumar
e-mail: [first_name][last_initial]@stanford.edu
Homework submission e-mail: [first_name].[last_name]@gmail.com
office hours: Tuesday 10-12am, Bytes Cafe, Packard building

location: Gates B03
web page: http://www.stanford.edu/class/cs161/
discussion board: http://groups.google.com/group/su_cs161_sum08

scores:
    Individual: coursework
    Class anonymized: scores

textbook:


Announcements

I've posted a student's solution that did well on homework 5 here
There will be a review session for the final: Aug. 14, 4:00-5:30pm - Skilling 191
Homework 6 is available and due Wednesday, Aug. 13 before class.
I've posted some notes for greedy algorithms and dynamic programming from the winter 08 class thanks to Tim Roughgarden
I've posted a student's solution that did well on homework 4 here
I've posted a student's solution that did well on homework 3 here
Homework 5 is available and due Wednesday, Aug. 6 before class.
I've posted the scores we have so far here and will update regularly
Homework 4 is available and due Wednesday, July 30 before class.
No office hours this week (July 21,22). If you have questions/problems e-mail Neha or Dave
I've posted a student's solution that did well on homework 2 here
I've posted a student's solution that did well on homework 1 here
Here is a set of sample midterm questions
The optional (i.e. won't be graded) homework on hashtables is available
There will be a review session for the midterm: July 17, 4:15-5:05pm - Skilling 193
Point values have been added to homework 3. For final grades, all homeworks are equally weighted.
Homework 3 is available and due Wednesday, July 16 before class.
E-mailed homework should be sent to Neha's gmail account (see above)
Homework 2 is available and due Wednesday, July 9 before class.
Neha's office hours on Tuesday July 1 will be moved to Thursday, July 3 from 10-12am.
Homework 1 is available and due Thursday, July 3 by midnight.

Schedule

Note: This is a tentative schedule and is subject to change
DateTopicReadingNotes/Handouts
6/25Admin. material, IntroductionCh. 1, 2Admin. material, Introduction notes
6/30O-notationCh. 3BigO
7/2RecurrencesCh. 4.1-4.3Recurrences
7/7Quicksort, Randomized algorithmsCh. 7,8.1-8.3Quicksort
7/9Elementary data structures, HeapsCh. 6, 10Heaps
7/14Binary search trees, B-TreesCh. 12,18Search Trees
7/16HashtablesCh. 11, except 11.3.3 & 11.5Hashtables
7/21Midterm  
7/23Graph algorithmsCh. 22Graphs
7/28Minimum spanning trees and
single source shortest paths
Ch. 23, 24Graphs2
7/30Greedy algorithmsCh. 16, except 16.4Greedy
8/4Dynamic programmingCh. 15, except 15.5Dynamic Programming
8/6String algorithmsCh. 32, except 32.4Strings
8/11NP CompletenessCh. 34NP-Complete
8/13Advanced algorithms/Review Review
8/16Final - 3:30-6:30 pm, Gates B03  

Handouts

DP notes from winter 08 thanks to Tim Roughgarden
Greedy notes from winter 08 thanks to Tim Roughgarden
Homework 4
Graphs
Optional Hashtable Homework
Hashtables
Search Trees
Homework 3
Heaps
Quicksort
Homework 2
recurrences
BigO
Administrive material
Introduction notes
Homework 1