This course will be about algorithm design and analysis.

In this course we will 

(1) introduce classic computer science algorithms; 

(2) introduce a few techniques regarding how to design algorithms; 

(3) show how to prove the correctness of algorithms, and analyze their complexity;

(4) introduce simple online algorithms.

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

We will also review and provide sample solutions to many interesting interview problems, e.g., by Google and Facebook, that are related to algorithms.