Object-Oriented Programming

It has been said that teaching OOP to those with no programming background is easier than those with experience in (procedural or functional) programming.1 Experienced programmers get used to procedural (or functional) thinking and modeling. On the other hand, for non-programmers, the object-oriented way of decomposing a problem is similar to the way they are used to look at real-life situations. Indeed, we live in a world made up of interacting objects.

We expect that you have modest programming experience in OOP languages (at least in Java); a very brief and high-level overview of important OOP concepts follows.


1

Alan Key, for example, discovered that children learned SmallTalk faster than experienced programmers; see Key A., "Microelectronics and Personal Computer." Scientific American 237(3):230-244 (1977)