One can argue about exact starting dates, but Object-Oriented Programming has been a ``hot topic'' in Computer Science since at least the early 1980's. For a field that reinvents itself every six months, that is a phenomenally long run. So a natural place to begin is with the question ``what exactly is object-oriented programming, and why is it so popular''.
In this first chapter I will endeavor to give you an overview, an intuitive description of object-oriented programming. We will then build on and expand on this intuition as we progress through the course.
As part of this process, I will try to convince you two contradictory statements. First, OOP is a revolutionary idea, that is totally unlike anything that occurred previously in programming languages. Second, that if we examine the history of programming languages and look at this history from the point of view of historical development, then OOP is simply an evolutionary step, which in hindsight seems to follow naturally on the heels of earlier programming abstractions.