CS 170
Efficient Algorithms and Intractable Problems
a.k.a. Introduction to C.S. Theory

 Prof. Luca Trevisan

Fall 2001
Tuesdays and Thursdays, 3:30-5:00 pm
10 Evans


Marge, I agree with you -- in theory. In theory, communism works. In theory.
Homer Simpson

Final grades

available as an excel spreadsheet

Required Readings

Information

Work



Lectures

The following schedule is tentative. There will definitely be changes as the semester progresses, so check here periodically. Midterm dates may also change! In the readings, ``CLR'' is shorthand for the Cormen, Leiserson, and Rivest textbook.

Homeworks and projects that are currently available can be accessed by clicking on them. All homeworks and projects are due Mondays at 4 pm unless otherwise stated.

All lecture notes in a single file (ps, pdf). (Don't even think of printing it on an instructional lab printer.)
 

Topic Readings Due Monday
1: August 28 Overview; Fibonacci numbers Notes [ps] [pdf]
CLR, Chapters 2, 7 or CLRS Chapters 5, 6
.
2: August 30 Algorithm design; recurrences Notes [ps] [pdf]
CLR, Chapters 3, 4 or 
CLRS Sections 4.1-4.3 and Appendix A
Homework 1 [ps] [pdf]
3: September 4 Graphs and trees Notes [ps] [pdf]
CLR, Section 23.1 or CLRS Section 22.1
.
4: September 6 DFS, topological sort Notes [ps] [pdf]
CLR, Sections 23.3, 23.4 or 
CLRS, Sections 22.3, 22.4
Homework 2 [ps] [pdf]
September 10 Homework 1
solutions [ps] [pdf]
September 11 CANCELED .
5: September 13 Strongly connected components  Notes [ps] [pdf]
CLR, Section 23.5 or CLRS 22.5
Homework 3 [ps] [pdf]
September 17 Homework 2
solutions [ps] [pdf]
6: September 18 BFS Notes [ps] [pdf]
CLR Section 23.2 or 
CLRS  Sections 22.2
.
7: September 20 Shortest Paths Notes [ps] [pdf]
CLR, Sections 25.1-25.4 or
CLRS, Sections 24.0-24.3
Homework 4 [ps] [pdf]
Homework 3
solutions [ps] [pdf]
8: September 25 Minimum spanning trees Notes [ps] [pdf]
CLR, Chapter 24 or
CLRS, Chapter 23
.
9: September 27 Probability, Randomized hashing Notes [ps] [pdf]
CLR, Section 12.3 or
CLRS, Section 11.3
Homework 5 [ps] [pdf]
.
Homework 4
solutions [ps] [pdf]
10: October 2 Randomized min-cut Notes [ps] [pdf]
 October 4 MIDTERM I covers Lectures 1-8 (and the part on MST done in lecture 9), no randomness
Homework 6  [ps] [pdf]
11: October 9 Disjoint sets Notes [ps] [pdf]
CLR, Sections  22.1-3 or CLRS, Sections 21.1-3
.
October 10 Homework 5
solutions [ps] [pdf]
12: October 11 Disjoint sets II
Dynamic Programming I
Notes [ps] [pdf] (revised Oct. 23);
CLR, Sections 16.2 or
CLRS, Sections 15.3
Homework 6
solutions [ps] [pdf]
October 16 CANCELED
13: October 18 Dynamic Programming II Notes [ps] [pdf] (revised Oct. 25);
CLR, Section 16.3 and 16.1 or CLRS, Section 15.4 and 15.3
Homework 7 [ps] [pdf]
14: October 23 Dynamic Programming III Notes [ps] [pdf];
 CLR, Sections 26.2 or CLRS, Sections 25.2
Project
.
15: October 25 Data Compression I Notes [ps] [pdf]
CLR, Section 17.3 or CLRS, Sections 16.2-3
Homework 8 [ps] [pdf]
Homework 7
solutions [ps] [pdf]
16: October 30 Data Compression II Notes [ps] [pdf] .
17: November 1 Linear Programming I Notes  [ps] [pdf]
CLRS Sections 29.1-29.2 (no slack form)
Homework 9 [ps] [pdf]
Homework 8
solutions [ps] [pdf]
18: November 6 Linear Programming II Notes  [ps] [pdf]
CLRS Sections 29.3 (only pages 790-791)
and 29.4 (no proof of Thm. 29.10)
.
19: November 8 Network Flows Notes [ps] [pdf]
CLR, Sections 27.1-27.3
CLRS, Sections 26.1-26.2
Homework 9
solutions [ps] [pdf]
20: November 13 Matchings Notes. [ps][pdf] .
 November 15 MIDTERM II covers Lectures 1-18 (and the part on linear programming in Lecture 19), no max flow
Homework 10 [ps] [pdf]
21: November 20 Matching II
LP Duality
Notes from lecture 20 Project
Nov 22 no class
22: November 27 NP-completeness I Notes [ps][pdf] (originally meant for lecture 21);
CLR, Sections 36.1- 36.3
CLRS, Sections 34.1-34.3
.
23: November 29 NP-completeness II Notes [ps][pdf];
CLR, Sections 36.4-5
CLRS, Sections 34.4-5
Homework 11 [ps] [pdf]
Homework 10
24: December 4 NP-completeness III
Approximation algorithms I 
Notes [ps][pdf]
CLR, Section 37.1-2; 
CLRS 35.1-2
.
25: December 6 Approximation algorithms II
Review
see notes and reading for lecture 24 Homework 11

Additional notes on NP-completeness (this is additional reading material that is not required):


The FINAL EXAM is Wednesday, December 19, 12:30-3:30P, in  1 Pimentel.
.

Course Description

Concepts and basic techniques in the design and analysis of algorithms; models of computation; lower bounds; algorithms for optimum search trees, balanced trees, and union-find algorithms; numerical and algebraic algorithms; combinatorial algorithms. Turing machines, how to count steps, deterministic and nondeterministic Turing machines, NP-completeness. Unsolvable and intractable problems.

Prerequisites: CS 61B, Mathematics 55 (or CS 70).

Grading


Mail inquiries to cs170@cory.eecs.berkeley.edu

Last modified on November 30, 2001, or later if I forgot to change this line