Lectures:
Synchronous lectures are held via Zoom on Tuesdays and
Thursdays (at 14:30 - 15:50). They will be recorded and
the recording will be made available shortly after each
lecture. These lectures are "content delivery" lecture
that introduces the concepts to be learned for the week.
Lectures will be broadcast live on Zoom and also recorded
via Zoom (link to be added)
This is an advanced course in design and analysis of
algorithms. The course exposes students to various
topics in design, analysis, application, and
restrictions of algorithms. We cover various
topics in exact algorithms (e.g., flow, matching, string
algorithms), approximation algorithms (graph problems,
knapsack), randomized algorithms (e.g., primality
testing, random walks) geometric algorithms (convex
hull, art-gallery, geometric matching), streaming
algorithms (majority problem, lower bounds), online
algorithms (ski-rental, search, paging, and regret
minimization), linear programming (algorithms and
applications), and algorithmic fairness.
Students will learn various tools and analysis
techniques to allow them design algorithms with provable
guarantees in practical scenarios. While the course
covers a wide range of algorithmic problems, one or two
algorithms from each topic will be discussed in depth.
By the end of this course, students are expected to be
able to design algorithms that use techniques such as LP
duality or randomization and be able to analyze and
improve these algorithms using analysis techniques that
provide performance guarantee in terms of time
complexity or quality of the solutions.
Textbooks:
No book is required to be purchased. References and
lecture notes will be posted for various topics.
TOPICS
Possible topics to be covered include (note that these
material is subject to slight change):