Data abstraction & problem solving with Java walls and mirrors - Prichard, Janet J. (Pearson, 2011)