An Introduction to Object-Oriented Programming with Java takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students learn how to use the standard classes first, then learn to design their own classes. Wu uses a gentler approach to teaching students how to design their own classes, separating the coverage into two chapters. GUI coverage is also located independently in the back of the book and can be covered if desired.