Starting out with Java from control structures through data structures - Gaddis, Tony (Pearson Addison Wesley, 2007)
Tony Gaddis emphasizes problem-solving and program design by teaching the Java programming language through a step-by-step detailed presentation. He introduces procedural programming early and covers control structures and methods before objects. Students are engaged and have plenty of opportunity to practice using programming concepts through practical tools that include end-of-section and chapter exercises, case studies and programming projects.