Many believe that after a programmer learns one programming language, additional programming languages are relatively easy to learn. This may have been true before object-oriented technology was introduced. Object-oriented programming requires programmers to make a large cognitive shift from their experiences with structured programming. The language required for object-oriented technology requires not an extension of previous knowledge, but so sharp a change of direction that previous knowledge does not apply. Experienced programmers who attempt to learn their first object-oriented programming language may find that their knowledge and skills with structured programming actually impede learning the new language. Current efforts to retrain structured programmers to use object-oriented languages have not been very successful.
This research aims at comparing alternate methods of training experienced structured programmers in object-oriented language. A laboratory experiment comparing a bottom-up approach and a top-down approach was executed. Traditionally, most object-oriented programming courses are taught in a top-down fashion to first introduce the programmers to the concept of object-oriented technology. Later, the language itself is taught and applied and eventually, toward the end of the course, programmers write the programs. An alternate bottom-up, or debugging, approach stems from the concept of learning by doing and learning by example. In this approach, programmers acquire the new language by inspecting existing code and learning how to correct or “debug” it.
Dependent variables observed in this study are performance of the programmers and their attitude toward the teaching approach. Independent variables include two teaching approaches and the level of complexity of the programs. The results of the study did not find a significant difference between the two training approaches. However, as the complexity of the programs increased, the participants from the bottom-up classes tended to perform equally with those from the top-down. Trainees from the bottom-up classes reported higher overall satisfaction than those from the top-down.
Index Terms
- Object-oriented programming training: bottom-up versus top-down approach
Recommendations
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Constraint-Based Object-Oriented Programming
Constraint programming (CP) is a young but rapidly developing technology that supports the modeling and solution of a wide range of planning, scheduling, search, and optimization problems. The integration of CP concepts into languages from other ...