This text features a gradual approach to object-oriented programming that covers problem solving and algorithm development but also offers solid grounding in objects and classes. Problem solving is emphasized throughout the text through numerous exercises, programming problems, and projects.