Course info
Lectures
Homeworks
Contact
Piazza
UW CS
Theory Group

Announcements
 03/01. I will not be holding office hours on March
6. Instead, I will hold office hours at the same time on the 4th,
and will be happy to meet by appointment.
 02/13. Some changes have been made to problem 3 on HW1. You can find a new
version of the homework here. Also,
you can find a scanned version of problem 5.8 from
the book (which is problem 3 on HW1) here.
 01/21. We will use Piazza for discussions related to this
course. Please follow this link to signup.
 01/20. Welcome! Please check this space frequently for announcements. More information about the syllabus, instructor, course work, etc. can be found here.
Course Description
Algorithm design and analysis is a fundamental and important part of computer science. This course introduces students to advanced techniques for the design and analysis of algorithms, and explores a variety of applications. Read more ...
Lecture notes & readings
Lecture topics and readings will be posted here over
time. Please check frequently. We will use Probability and Computing
by Mitzenmacher and Upfal as our main text.
Lecture 
Topic 
Suggested readings/references 

1 (1/23) 
Introduction, basics of algorithm design: greedy algorithms 
Revise chapters 2, 3, 4, 5, 6, 8 from Kleinberg and Tardos 
2 (1/25) 
Dynamic programming 
Revise chapters 2, 3, 4, 5, 6, 8 from Kleinberg and Tardos 
3 (1/28) 
Random variables and events, quicksort 
§1, 2 
4 (1/30) 
Quicksort contd., verifying polynomial identities and matrix multiplication 
§1, 2 
5 (2/6) 
Basic concentration bounds: Markov and Chebyshev 
§3, Notes on Piazza 
6 (2/8) 
Counting via sampling, Counting DNF solutions, median of means approach 
Notes on Piazza 
7 (2/13) 
Balls and bins problems, Hashing 
§5.1, 5.2, 5.5.1 
8 (2/15) 
Pairwise independence, universal and perfect hashing 
§13.1.1, 13.3 
9 (2/18) 
Bloom filters, NPhardness 
5.5.3, Chapter 8 from Kleinberg and Tardos 
10 (2/20) 
Approximation algorithms, linear programming 
Notes on Piazza 
11 (2/25) 
LP rounding 
Notes on Piazza 
12 (3/1) 
Randomized rounding, Chernoff bounds 
4.1, 4.2 
13 (3/4) 
Applications of Chernoff bounds: randomized rounding, packet routing 
4.5 and notes on Piazza 
14 (3/8) 
Packet routing contd. 
4.5 
15 (3/13) 
Online algorithms 
Notes on Piazza 
16 (3/15) 
Online algorithms contd. 
Notes on Piazza 
17 (3/18) 
Streaming algorithms 
Notes on Piazza 
18 (3/20) 
Streaming algorithms contd. 
Notes on Piazza 
19 (4/5) 
The probabilistic method 
6.16.4 
20 (4/8) 
Lovasz Local Lemma 
6.7 
21 (4/10) 
Martingales, optional stopping theorem 
12.112.3 
22 (4/12) 
Concentration of measure for Martingales 
12.4, 12.5 
23 (4/15) 
Applications of Azuma's inequality 
12.4, 12.5 
24 (4/17) 
Random walks and cover time 
7.4, Notes on Piazza 
25 (4/19) 
Cover time, Monte Carlo method 
7.3, 10.4 
26 (4/22) 
Rapid mixing, coupling 
11.1, 11.2 
27 (4/24) 
Power of two choices 

Homeworks
 HW1 Out: 2/8, Due: 3/1
 HW1.5 Out: 3/1, Due: 3/15
 HW2 Out: 3/8,
Due: 4/5
 Takehome Final
Out: 5/6, Due: 5/13
