Introduction to programming in Java : an interdisciplinary approach - Sedgewick, Robert, 1946- (Addison-Wesley, 2017)
Includes index.