Java Software Solutions Foundations of Program Design - William Loftus (Addison-Wesley)