Timothy Budd lays out the principles of object-oriented programming, illustrating object-oriented principles. The reader learns the basic concepts of object-oriented programming as well as the principles of designing by responsibility and encapsulation.