Introduction to programming in Java : an interdisciplinary approach / Robert Sedgewick and Kevin Wayne. - Sedgewick, Robert, 1946- (Pearson/Addison-Wesley, 2008)