Design and analysis of efficient algorithms for combinatorial problems. Graph algorithms; linear programming; data structures; analysis of data structures; online algorithms; primal-dual methods; approximation algorithms; randomized algorithms; streaming; learning from experts; word RAM model.
This is a graduate course, though there may be room for a limited number of advanced undergraduate students satisfying the following prerequisites: mathematical maturity and comfort with algorithms (e.g. CS 170), discrete probability, and linear algebra.