Book in programming-languages/java Introduction to programming in java: an interdisciplinary approach (2008) (introcs.cs.princeton.edu)