Abstract:
After decades of experience, the computer education community
has settled upon a relatively standard way of teaching procedural
programming. With the growing use of object-oriented languages,
the question is whether new ways are required. Some in the
community argue that object-oriented programming languages
are an extension of the 3GL approach, and students should still
be taught the 3GL way first, even if students are using an objectoriented
language. On the other hand, the "objects early"
proponents argue for radical change. As with most debates, the
points raised by both sides contain implicit assumptions. Our
real differences of opinion are at a more abstract level: our teaching
objectives. This paper describes my experiences in trying to
make teaching objectives more explicit, within the domain of
object-oriented programming. First, I discuss PigWorld, a microworld
for teaching programming that blends "objects-early" with
a traditional emphasis on algorithms. Second, I describe my use
of Bloom's taxonomy to make my assessment objectives more
explicit. Finally, I look beyond introductory programming, to
describe how an explicit acknowledgement of objectives clarifies
the debate on whether the teaching of data structures needs to
change if we teach "objects early".