Problem solving with data structures using Java a multimedia approach - Guzdial, Mark (Pearson, 2011)