Coursera's Princeton University Algorithms, Part I