Presents a careful balance between traditional problem-solving techniques and object-oriented design. Teaches the sound problem solving skills that beginning programmers must understand alongside the basics of object-oriented programming using the Java programming language. Softcover.