View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 1 - Jiasheng He

In "Requirements for a first year object-oriented teaching language," Michael Kölling, Bett Koch, and John Rosenberg argue the deficiencies of C++, Smalltalk, Eiffel, and Sather for use as an introductory OOD language. They identify several requirements needed for such a language, and note all the points where the aforementioned languages are lacking. This article was found in the ACM Digital Library. Link to Article

The survey of the four languages that the paper does examines C++, Smalltalk, Eiffel, and Sather as languages for teaching Object Oriented Programming. C++ is a popular language heralded for being object oriented when in fact it is a hybrid language (of OO and non-OO). The paper notes that "learning object-oriented concepts becomes more difficult because the language does not encourage their use." Issues that make C++ difficult and confusing include the subtle differences in object construction, an allocation/deallocation system that is prone to programming errors, and the way declarations of dynamic functions work. Smalltalk, on the other hand, is a "an absolutely pure object-oriented language." However, it is not without its own problems: from the likelihood of type errors (since Smalltalk is not statically typed) to an overwhelming class library (for beginner students) to and a unique syntax that students must get used to. The authors also talk about Eiffel and Sather. The former is almost ideal for the purposes of teaching an introductory object oriented language, but it shares the overwhelming problem of Smalltalk, and it is becoming increasing complicated with each new version of the language. The latter is similar to C++ and Eiffel, but shares many of the earlier problems including type checking and dynamic dispatch issues.

Many of these problems make teaching and learning Object Oriented programming complex. An ideal language for object oriented education (and not a more widespread, even commercial use) would be clear, be syntactically uncomplicated, and be a pure objected language. Many of the points the authors list are for teaching students without being complicated. It is worthy to note that at the time this paper was written, Java was just being introduced. It could be argued that Java answers some of the issues raised in this paper.

In Brian Smith Patrick's Discussion, he notes that C# was written with OOP in mind, and that Java is considered an educational tool. His article also notes that Java and C# both have garbage collection, which was one of the points that the Kölling et al. article mentions as being required in a pedagogical language. In fact, the title of that article argues for using C# as a CS1 language. It shows that since the time this article was written, several new languages have come forth that address the problems that Kölling and company identified.

Links to this Page