Eigenpoll : Compare courses : Algorithms: Design and Analysis, Part 1 

Algorithms: Design and Analysis, Part 1
Tim Roughgarden

In this course you will learn several fundamental principles of algorithm design: divide-and-conquer methods, graph algorithms, practical data structures, randomized algorithms, and more.

https://www.coursera.org/course/algo