Introduction to programming with java: a problem solving approach: second edition - Dean, John (2014)