Advanced Algorithms

About This Course  

Algorithm design and analysis is a fundamental and important part of any discipline of computer science including data science.This course assumes that every student has passed an undergraduate course in this area, or has an equivalent background. Compared to the undergraduate algorithms course, the goal of the course is to study some topics more deeply and to learn more advanced algorithms.

Learning Objectives  

The topics we plan to cover include network flow, linear programming and duality theory, hard problems (NP and PSpace), Tree decomposition and tree width, Approximation algorithms, and Randomized algorithms.


(No information at the moment, a place holder for future announcements.)

Reading Material

Required Reading

  • “Algorithm Design”, Jon Kleinberg and √Čva Tardos (Cornell University)

Recommended Reading

  • “Introduction to Algorithms”, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein (MIT)


Assessment and Feedback 

(will links to a separate page)

Marking Criteria 

  • 30% Homework Assignments (6)
  • 10% Programming Assignment
  • 30% Midterm
  • 30% Final