CS161 Class Page
Data Structures and Algorithms

(Summer Quarter 1996)

This class is offered by,
Stanford University
Department of Computer Science
Theory Division
In association with,
SCPD/SITN

Previous quarters offered:
Spring 95-96

Contents of this page


Data Structures and Algorithms is a basic course on the design and analysis of algorithms. On one hand, the course will focus on presenting general techniques for designing efficient algorithms, such as dynamic programming, divide and conquer, greedy methods, etc. On the other hand, we will study how to compare different algorithms by formally analyzing their complexity (e.g. running time). The problems will will study involve sorting, searching, graph algorithms, computational geometry, and a sprinkling of other topics which vary from year to year. The techiques we look at include, divide and conquer, use of randomization, dynamic programming, approximation algorithms, and using parallelism.
Prerequisites: The official prerequisite for this course is CS109AB (Introduction to Computer Science) or the equivalent. Although this course will be entirely a ``pen-and-paper'' course, (i.e. no programming), familiarity with programming concepts such as pointers, arrays, records, procedures, and recurssion will be needed. In addition, a solid background in mathematics will prove invaluable for this course, in that we will argue formally about the correctness and performance of almost every algorithm and data structure we introduce. The ability to write clear and formal proofs will be relied upon.

The People:

Instructor: Michael Goldwasser
E-mail: wass@cs.stanford.edu
Office Hours: Tues/Thurs 3:05-4:30pm (or by appointment - Tu/Th)
Office Location: Gates 482 (Tues/Thurs)
Office Phone: 723-4532
FAX: 725-4671 [Attn: Goldwasser]

Teaching Assistant: Iacovos Koumas

E-mail: koumas@cs.stanford.edu
Office Hours: M 4:00 - 6:00 pm
Office Location: Gates 193B
Office Phone: 723-6077

Secretary: Phyllis Winkler

E-mail: winkler@cs.stanford.edu
Office Location: Gates 495
Office Phone: 723-4377

The Lectures:

Class Lectures: Michael Goldwasser
Time: Tues/Thurs 1:15pm-3:05pm
Location: Skilling 191
Live Broadcast: Stanford Channel E4

Recitation Section: Iacovos Koumas

Time: Friday 1:15pm-2:05pm (originally a typo)
Location: Skilling 193
Live Broadcast: Stanford Channel E4

The Textbook:

Introduction to Algorithms by Cormen, Leiserson, and Rivest. (McGraw Hill)
The current list of known bugs can be found here.

Online Information:

Web Page: http://www-leland.stanford.edu/class/cs161
FTP Site: ftp://ftp.stanford.edu/class/cs161
Handouts: /usr/class/cs161
Newsgroup: su.class.cs161

The Syllabus:

[Note: Topics of future lectures are subject to change.]

# Date Topic Reading Due Out
1 Tuesday,
June 25th
Introduction, Admininistration,
Asymptotics, Sorting
Ch. 1, 2 HW1
2 Thursday,
June 27th
Recursion, Divide & Conquer,
Master Theorem
Ch. 3, 4
3 Tuesday,
July 2nd
Lower Bound for Sorting,
Linear Sorts, Order Statistics
Ch. 9.1-9.3,
10.1, 10.3
HW1 HW2
Thursday,
July 4th
4 Tuesday,
July 9th
Priority Queues, Heaps,
Dynamic Sets, Search Trees
Ch. 7, 13.1-13.3,
and pp.197-198
HW2 HW3
5 Thursday,
July 11th
Balanced Trees Ch. 14
skim Ch. 19
6 Tuesday,
July 16th
Augmented Data Structures Ch. 15 HW3 Midterm
7 Thursday,
July 18th
Randomization, Quicksort,
Median Finding, Treaps
Ch. 6, 8,
10.2, 13.4
8 Tuesday,
July 23rd
Skip Lists and Hashing Ch. 12 and
additional reading
Midterm HW4
9 Thursday,
July 25th
Dynamic Programming Ch. 16
10 Tuesday,
July 30th
Graphs (1 of 3)
The basics
Ch. 5.4, 23 HW4 HW5
11 Thursday,
August 1st
Graphs (2 or 3)
Spanning Trees
Ch. 24
12 Tuesday,
August 6th
Graphs (3 of 3)
Shortest Paths
Ch. 25.1-25.4, 26.1-26.3 HW5 HW6
13 Thursday,
August 8th
Computational Geometry Ch. 35
14 Tuesday,
August 13th
Advance Topics
(dead week)
parts of
Ch. 30, 37
HW6
15 Thursday,
August 15th
Review
(dead week)
F Saturday,
August 17th
Final Exam
12:15-3:15pm
Skilling 191
In-class
Final


Handouts:

Online: /usr/class/cs161
Hard Copy: 4th floor - Gates Building
# Date Topic Format
1 Tues, June 25th Course Information postscript, dvi, latex
2 Tues, June 25th Sign-up Questionnaire postscript, dvi, latex
3 Tues, June 25th Homework 1 postscript, dvi, latex
4 Tues, July 2nd Homework 2 postscript, dvi, latex
5 Tues, July 2nd HW1 - Solutions hard copy only
6 Tues, July 9th Homework 3 postscript, dvi, latex
7 Tues, July 9th HW2 - Solutions hard copy only
8 Tues, July 16th Midterm postscript, dvi, latex
9 Tues, July 16th HW3 - Solutions hard copy only
10 Tues, July 23rd Homework 4 hard copy only
11 Tues, July 23rd Midterm - Solutions hard copy only
12 Tues, July 23rd Skip Lists postscript
13 Tues, July 30th Homework 5 postscript, dvi, latex
14 Tues, July 30th HW4 - Solutions hard copy only
15 Tues, August 6th Homework 6 postscript, dvi, latex
16 Tues, August 6th HW5 - Solutions hard copy only
17 Tues, August 13th Final Exam Info postscript, dvi, latex
18 Tues, August 13th Sample exam postscript
19 Tues, August 13th Sample exam - Solutions hard copy only
20 Tues, August 13th HW6 - Solutions hard copy only
21 Saturday, August 17th Final Exam postscript, dvi, latex
22 Saturday, August 17th Final - Solutions hard copy only


CS161 Class Page
wass@cs.stanford.edu