This textbook is intended for the novice as well as for the experienced programmer who wants to learn more about object-oriented programming. The reader is expected to have sufficient experience with structured and modular programming, as these techniques constitute the foundation on which the object-oriented principles are based.