CS 170
Efficient Algorithms and Intractable Problems a.k.a. Introduction to C.S. Theory Prof. Luca Trevisan Fall 2001

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.14.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.125.4 or CLRS, Sections 24.024.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 mincut  Notes [ps] [pdf];  
October 4  MIDTERM I  covers Lectures 18 (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.13 or CLRS, Sections 21.13 
. 
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.23 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.129.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 790791) and 29.4 (no proof of Thm. 29.10) 
. 
19: November 8  Network Flows  Notes [ps] [pdf];
CLR, Sections 27.127.3 CLRS, Sections 26.126.2 

Homework 9
solutions [ps] [pdf] 

20: November 13  Matchings  Notes. [ps][pdf]  . 
November 15  MIDTERM II  covers Lectures 118 (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  NPcompleteness I  Notes [ps][pdf]
(originally meant for lecture 21);
CLR, Sections 36.1 36.3 CLRS, Sections 34.134.3 
. 
23: November 29  NPcompleteness II  Notes [ps][pdf];
CLR, Sections 36.45 CLRS, Sections 34.45 Homework 11 [ps] [pdf] 
Homework 10 
24: December 4  NPcompleteness III
Approximation algorithms I 
Notes [ps][pdf];
CLR, Section 37.12; CLRS 35.12 
. 
25: December 6  Approximation algorithms II
Review 
see notes and reading for lecture 24  Homework 11 
Additional notes on NPcompleteness (this is additional reading material that is not required):
The FINAL EXAM
is Wednesday, December 19, 12:303:30P, in 1 Pimentel.
.
Prerequisites: CS 61B, Mathematics 55 (or CS 70).