This course will be about algorithm design and analysis.

In this course we will (1) introduce a few techniques regarding how to design algorithms; (2) introduce several classic algorithms for graph problems and show their correctness; (3) introduce simple online algorithms and dynamic algorithms.

Many examples will be provided throughout the course to help understand how these algorithm work.

We will also review and provide answers to many interesting interview problems by Google and Facebook that are related to algorithms.