CSE 712: Advanced Topics in Algorithm Design (Fall 2015)

Important Announcements


      Course credits    :    1, 2 or 3
      Time                   :    2:00pm - 4:30pm, Wed
      Location             :    Davis 310


     Shi Li
     328 Davis Hall,
     Buffalo, NY 14260,

     Email                :       shil*buffalo*edu    (first * to @, second * to .)
     Office Hours     :       2:00pm - 3:00pm, Tue, Davis 328


This graduate-level seminar course will cover algorithmic concepts and techniques in the research frontier in algorithm design. There are three main themes for the course:

  1. Approximation and randomized algorithms;
  2. Streaming algorithms;
  3. Online algorithms.

The main goal of course is not to give an in-depth coverage of tools and techniques for any of these themes, but rather, to let students have a taste of these different models for algorithm design and some of the basic ideas used to tackle problems in these models. Some topics of the course are:

The course is based on student and instructor presentations of research papers and book chapters/sections. Each student needs to give a presentation once (unless he/she registered the course only for 2 credits). Students can always volunteer to give more presentations. The instructor will give the presentations when a lecture is not assigned to any student.


Students should have mastery of basic mathematical tools such as mathematical induction, probability theory and matrix multiplication, and should be comfortable with mathematical proofs. The course is intended for graduate students who are already or are interested in pursuing research in theoretical computer science. Exceptional undergraduate students who have strong interest in research in algorithms and have taken CSE331 can ask the instructor for permission to register the course.


The grading contains 3 parts:

  1. Class attendance and participation. Maximum score: 20.
  2. Presentation. Maximum score: 40.
  3. Project. Maximum score: 40.

The final score for the course will be S/U (S means satisfactory; U means unsatisfactory). You may choose to register the course for 1 credit, 2 credits or 3 credits. To get an "S" with 3 credits, you need to get at least 75 total score. If you registered the course for 2 credits, you can choose between part B and part C. To get an "S" with 2 credits, your score for part A plus the maximum of your score for part B and for part C must be at least 45. To get an "S" for 1 credit, your score for part A must be at least 15.


Participation of class is required and graded. Each lecture (except for the first and last lectures) is worth 10 points:

The score will be scaled so the maximum possible score for this part is 20.


The score for a presentation is based on how well the presentation is organized and how clear the presenter delivers the ideas and techniques. If you give more than one presentations, your score for this part will be the best score of all presentations. The presenter for a lecture should also design a homework problem for the rest of the class.

It is recommended that the presenter meets and discusses the papers/sections he/she will present with the instructor on Tuesday, the day before the presentation day. The discussion does not affect the score of the presentation on Wednesday; so the presenter is encouraged to ask as many questions as possible.

Final Project

The final project can be one of the following forms:

  1. A report on a papper you read.
  2. An implementation of a known algorithm.

Academic Integrity

Please refer to the university Academic Integrity Policy regarding academic dishonesty:


Lec# Date Content Reading Material Presenter
1 Sep 3 Introduction Shi Li
2 Sep 9 TSP and k-center Section 1.1, 2.2, 2.4 of WS book Shi Li
3 Sep 16 LP rounding for set cover Section 1.2, 1.3, 1.7 of WS book Rohit Dubey
4 Sep 23 Greedy and primal-dual for set cover Section 1.4, 1.5, 1.6 of WS bookSai Vikneshwar
5 Sep 30 FPTAS for knapsack problem Chapter 8 of Vaz book Erika Santos
6 Oct 7 LP rounding for multi-cut Section 8.3 of WS book Poonam Kumari
7 Oct 14 SDP rounding for max-cut Section 6.1, 6.2 of WS book Chaowen Guan
8 Oct 21 Online paging problem Chapter 1,2, 3.1 of BRICS minicourse Shiva Mariswamy Subramnir
9 Oct 28 Move-to-front algorithm for list-accessing ST paper Sathish Kumar Deivasigamani
10 Nov 4 KVV online algorithm for bipartite matching KVV paper Dhinesh Nakkeerar
11 Nov 11 Streaming algorithm for estimating L_0 norm Lecture Notes by Tim Roughgarden
Section 1,2,3,5
Sahajdeep Singh Bedi
12 Nov 18 Streaming algorithm for estimating L_2 norms Lecture Notes by Tim Roughgarden
Section 4
Subramanian Madhanagopal Sivasankaran
13 Dec 2 Lower bound via communication complexity Lecture Notes by Tim Roughgarden
Section 6,7,8,9
14 Dec 9 Summary

Homework Problems

Papers for the Final Project (Topics for the Approximation Algorithms part)

You can choose one of the following topics. For the topic you selected, read one paper from the list. You can either write a 5-10 page report, or implement the algorithm in the paper. The report should be self-contained and should contain formal proofs. If you choose to implement the algorithm, you need to provide some necessary comments in your source files and some sample inputs and ouputs. If you have any questions, do not hestitate to ask the instructor.

You can find the list of topics and papers here.