Coursera Algorithms, Part 1. Taught by Prof. Sedgewick