Algorithm Assignment of Algorithms, Part I & II by Princeton University https://www.coursera.org/learn/algorithms-part1