http://coursera.cs.princeton.edu/algs4 - Princeton University's Algorithms Part I Java programming environment