Object-centered design: a five-phase introduction to object-oriented programming in CS1–2

With Pascal waning in popularity as the CS1 language of choice, many colleges and universities are considering the adoption of C++ (an imperative and object-oriented hybrid language) as its replacement. An important issue that must be addressed in making such a change is the question of what software design methodology should be taught to CS1 students. Two common answers are (i) continue teaching structured design in CS1 and switch to object-oriented design in CS2; or (ii) teach object-oriented design from the outset in CS1. We believe that both of these approaches have significant drawbacks. To avoid these drawbacks, this paper describes a graduated approach to object-oriented design that we call object-centered design. The approach introduces students to object-oriented design by the end of CS2 without an abrupt paradigm shift, and without requiring an early introduction of inheritance.

[1]  M ReekMargaret A top-down approach to teaching programming , 1995 .

[2]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[3]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[4]  Owen Astrachan The Applied Apprenticeship Approach (AAA): An Object-Oriented/Object-Based Framework for CS2 , 1995 .

[5]  Margaret M. Reek,et al.  A top-down approach to teaching programming , 1995, SIGCSE.

[6]  Mark Guzdial,et al.  Centralized mindset: a student problem with object-oriented programming , 1995, SIGCSE.

[7]  Martin Hitz,et al.  Modula-2 versus C++ as a first programming language—some empirical results , 1995, SIGCSE '95.

[8]  Richard J. Reid The object oriented paradigm in CS 1 , 1993, SIGCSE '93.

[9]  Edward Yourdon,et al.  Object-oriented design , 1991, Yourdon Press Computing Series.

[10]  Peter Wegner,et al.  New directions in the introductory computer science curriculum , 1994, SIGCSE '94.

[11]  Richard E. Pattis The “procedures early” approach in CS 1: a heresy , 1993, SIGCSE '93.

[12]  David Reed,et al.  AAA and CS 1: the applied apprenticeship approach to CS 1 , 1995, SIGCSE.

[13]  Rick Decker,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994, SIGCSE '94.

[14]  Eric S. Roberts,et al.  Loop exits and structured programming: reopening the debate , 1995, SIGCSE.

[15]  Rick Decker,et al.  Top-down teaching: object-oriented programming in CS 1 , 1993, SIGCSE '93.

[16]  DeckerRick,et al.  The top 10 reasons why object-oriented programming can't be taught in CS 1 , 1994 .

[17]  Michael R. Wick On using C++ and object-orientation in CS1: the message is still more important than the medium , 1995, SIGCSE.