Regardless of major, students will be able to grasp concepts of problem-solving and programming - thanks to Liang's fundamentals-first approach, students learn critical problem solving skills and core constructs before object-oriented programming. Liang's approach has been extended to application-rich programming examples, which go beyond the traditional math-based problems found in most texts. Students are introduced to topics like control statements, methods, and arrays before learning to create classes. Later chapters introduce advanced topics including graphical user interface, exception handling, I/O, and data structures. Small, simple examples demonstrate concepts and techniques while longer examples are presented in case studies with overall discussions and thorough line-by-line explanations. Increased data structures chapters make the Eighth Edition ideal for a full course on data structures.