This text takes an objects-first approach to programming and problem solving using material from the authors Java, Java, Java! Object-Oriented Problem Solving handbook. A flexible design allows instructors to choose between Command-Line Interface, Graphical User Interface (GUI), or file input and output.