Rationale

This chapter introduces the terminology of OOP as well as some of its history. Its purpose is to outline the major theme of the book, which may be characterized as the unification of a software engineering perspective and a foundational perspective. (The minor theme may be characterized by saying that a considerable amount of technology is involved.) The major theme is particularly expressed in the section covering responsibilities in OOP. This chapter also sketches the possible impact of OOP on the software lifecycle, and discusses the position of OOP in the landscape of programming paradigms, as a preliminary to the treatment in the chapters that follow.

Hints

Many students are to some extent already familiar with OOP. It is wise to test their knowledge by engaging in a discussion about the pro and cons of OOP. This discussion may later be used as a reference when introducing new material.

Further literature

See section Overview.

Project assignments

Given the wide range of subjects touched upon in this chapter, many paper assignments may be thought of, including subjects such as Since many research papers and books, nowadays, require a brief introduction to OOP, any of these assignments may be valuable as an exercise for the student to phrase the characteristics and features of OOP in his or her own words.

Comments

Presenting the material straight away will probably lead to bedazzlement by the students. It is worth stressing that they have to develop their own thoughts about the subject. Discussion is a good way in which to activate such a thought process. As a suggestion, for a thought provoking question one might consider: ``Think of any arguments against the employment of object-oriented technology.''