Vviewpoints
DOI: 10.1145/1810891.1810905
Viewpoint
Objects never?
Well, hardly ever!
Revisiting the Great Objects Debate.
At the 2005 SIGCSE (Special Interest Group in Comput- er Science Education) Sym- posium in St. Louis, MO, a packed audience listened
to the Great Objects Debate: Should we
teach “objects first” or “objects later”? 1
In the objects-first approach, novices
are taught object-oriented programming (OOP) in their initial introduction to programming, as opposed to an
objects-later approach, where novices
are first introduced to procedural programming, leaving OOP to the end of
the first semester or the end of the first
year. Kim Bruce and Michael Kölling
spoke in favor of the objects-first approach, while their opponents Stuart
Reges and Eliot Koffman argued for
teaching procedural programming
first. One of Bruce’s arguments was:
since OOP is dominant in the world
of software development, it should be
taught early. I later contacted Bruce to
ask for a warrant for the dominance of
OOP, but he could not give me one, nor
could any of several other experts to
whom I posed the same question.
I claim that the use of OOP is not
as prevalent as most people believe,
that it is not as successful as its proponents claim, and, therefore, that its
central place in the CS curriculum is
not justified.
is ooP Dominant?
In assessing the dominance of OOP, we
have to watch out for proxies. The exten-
sive use of languages that support OOP
proves nothing, because languages are
The classical definition of OOP was
given by Peter Wegner9: object-
oriented = objects + classes