Class Update:

Date Topic Slides Assignments Notes
1/9 Syllabus, Algorithm Examples Available in D2L
1/12 Computational Tractability, big O Available in D2L
1/17 Graphs Available in D2L


1/19 Greedy alg Available in D2L
1/24 Greedy: single link clustering Available in D2L
1/26 Divide & conquer, Binary search Available in D2L  
1/31 VLSI Design via Divide and Conquer, Fibonacci Number Available in D2L
2/2 Fibonacci Number Calcuation via Golden Ratio Equations,Matrix Multiplication with only 7/8 fraction of the original time Median & seletion,
2/7 video on Fibonacci Number, median selection Available in D2L
2/9 Dynamic Programming
2/14 Dynamic Programming
2/16 Review for Exam I
2/21 Exam 1 (In Class, online, 75 minutes)
2/23 Dynamic Programming
2/28 Recitation on Exam 1, introduction to net flow
3/2 Max flow min cut  
3/7 Max flow min cut  
3/9 More on net flow  
3/14 Capacity Scaling  
3/16 Review for Exam 2, sample exam  
3/21 Exam 2 (In Class, online, 75 minutes)
3/23 Presentation of Term Project
3/28 Recitation of Exam 2
3/30 Shotest augmenting path
4/11 Quiz, Intractability
4/13 Approximation Algorithms
4/18 Approximation Alg  
4/20 Randomized algorithm
4/25 Review
4/27 Final Exam.

Instructor:    Xue Chen (Email: and
Xiaohua Xu (Email:
TA:              (update soon)
Class Time: Thursday 09:45-12:10 (week 2-18)
Location:     GT103
Office Hour:       Xue Chen (Every Wednesday 16:00-17:30 in Room 1410 of Library of the west campus or talk after the class; extra appointments are available by email)
Xiaohua Xu (update soon)

The class covers classic and modern algorithmic ideas that are central to many areas of Computer Science. We will discuss three concepts of algorithms --- randomized algorithms, approximation algorithms, and online algorithms. The focus is on the most powerful paradigms and techniques of how to design algorithms and analyze their performance. Besides advanced algorithmic techniques, we will also explore a variety of applications.

(Tentative) Course outline

  1. Randomized Algorithms:
    1. Hash and its applications: Power of 2 choices, cuckoo hashing, bloom filters and heavy hitters.
    2. Random Walk: Martingale, page-rank, counting and MCMC.
    3. Karger's min-cut algorithm and a simple max-cut algorithm.
  2. Approximation Algorithms:
    1. Randomized numerical linear algebra: matrix sketch, sparsification.
    2. Linear programming and semi-definite programming
    3. Load balancing
    4. Center Selection
  3. Online Algorithms
    1. Weighted majority algorithm
    2. Multi-armed Bandit

Course requirement
Except COMP6001P (Design and Analysis of Algorithms), we will assume some mathematical maturity. The class is based on theoretical ideas and is proof-heavy. You are expected to be able to read and write formal mathematical proofs. Some familiarity with algorithms, combinatorics and probability theory will be assumed as well.

10% participation, 50% homework, 20% midterm exam, and 20% final exam.
Both exams are in class (in week 10 and week 18 separately). Final is cumulative (covering all material).

We will have one problem set every two weeks, posted on Please submit the electronic version of your solution on
We strongly recommend students to type their answers in Latex. Here is a template and a LaTex reference

Homework Policies
All coursework is to be done independently WITHOUT reading any published literature or websites besides the class text and notes. Plagiarizing the homework will be penalized by maximum negative credit and cheating on the exam will earn you a 0 in the course.

Collaboration policy: While you shall first think about the problems on your own, you are encouraged to collaborate on homework. However, you MUST write up your own solutions. You should also state the names of those you collaborated with on the first page of your submission. Homework that appears overly similar will be considered to violate the honor code. 

Late policy: Each homework set will be due on Thursday before the class. For each day late 20% points of that homework are discounted, after the third day no more submissions are allowed.

Text and references

There is no required textbook. Lecture notes or slides will be available.
Similar courses with notes offered at Harvard, Columbia, Wisconsin-Madison.
You may find these books helpful in some topics:

  1. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, MIT press
  2. Probability and Computing (Randomized Algorithms and Probabilistic Analysis) by Michael Mitzenmacher and Eli Upfal, Cambridge University Press
  3. Randomized Algorithms by Rajeev Motwani and Prabhakar Raghavan. Cambridge University Press, 1995