CMSC 27200 - Winter 2007
Theory of Algorithms


General information

Instructor:Pedro F. Felzenszwalb
Email:pff (at) cs.uchicago.edu
Lecture:MWF 11:30-12:20 Ryerson 251
Office hours:Monday 3:00-4:00 in Ryerson 162C

TAs
Paolo Codenotti
Email: paoloc (at) cs.uchicago.edu
Office hours: Thursday ?
Duru Turkoglu
Email: duru (at) cs.uchicago.edu
Office hours: Tuesday 1:00-3:00 in Ryerson 256

Textbook: Algorithm Design - Jon Kleinberg and Eva Tardos

Grading will be based on weekly homework assignments (50%) and two exams (50%).

Homework

Students are encouraged to work together, but each student must independently write up their solutions. Write-ups must include the names of any collaborators and any sources used to help solve a problem. Do NOT search the web for homework problems!

Students may submit up to two assignments late. Late homework is due Friday after the original deadline.

Homework 1, due Wednesday January 10.
- Exercises 2,3,4 in Chapter 1.
- Exercise 6 in Chapter 2.

Homework 2, due Wednesday January 18.
- Exercises 2,5,8,9,17 in Chapter 4.
- Extra credit: exercise 26 in Chapter 4.

Homework 3, due Wednesday January 24.
- Exercise 8 in Chapter 2.
- Exercise 3 in Chapter 5.
- Merging sorted arrays.
-
Finding high-capacity paths.
- Extra credit: give an O(n) algorithm for the problem in Exercise 3 in Chapter 5.

Homework 4, due Friday February 2nd.
- Exercises 1,4,6,20 in Chapter 6.
-
Sleep pattern.

Homework 5, due Wednesday February 14th.
- Exercises 1,2,4,5 in Chapter 7.

Homework 6 due Wednesday February 21st.
- Exercise 7 in Chapter 7.
-
k-connected graphs.
- Excercises 1,14 in Chapter 8.

Homework 7 due Friday March 2nd.
- Exercises 1,3 in Chapter 11.
- Exercises 9,12 in Chapter 13.
Extra credit: Exercise 7 in Chapter 5.

Approximate Syllabus

LectureTopicsReading
1Stable matchingsChapter 1
2Running time analysisChapter 2
3Interval SchedulingSection 4.1,4.2
4Minimum Spanning TreesSection 4.5
5Union-FindSection 4.6
6Dijkstra's shortest-pathsSection 4.4
7Sorting: lowerbound and mergesortSection 5.1,5.2
8Closest pair of points / DPSection 5.4
9Shortest paths, Sequence alignmentSection 6.8,6.6
10Convex hulls
11Max-flow part 1Section 7.1
12Max-flow part 2Section 7.2
13Matchings, Image segmentationSection 7.5
14Circulations, etc.Section 7.7
15ReductionsSection 8.1
16Satisfiability, NPSection 8.2,8.3,8.4
17Set cover & Vertex cover approximationSection 11.3,11.4
18Knapsack approximationSection 11.8
19Randomized 3-SAT approximationSection 13.4
20Global min-cuts (random contraction)Section 13.2
21QuicksortSection 13.5
22Local search for max-cutSection 12.4
23Matrix search, min-filter
24Matrix chain multiplication