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 - Peter Budny

The article I read was the first of several articles which details thoughts on "teaching languages" suitable for introducing first-year students to object-oriented thinking. They assert that it is not object-orientation which is difficult, only the transition from procedural programming which takes time. First-year students who have no formal training in programming and who are introduced to object-oriented programming pick it up quickly compared to students who are first taught procedural programming.

They then describe a list of qualities which would make for an ideal object-oriented language for first-year students. Some of these qualities conflict with each other, but as there is no perfect programming language, they are unconcerned with this; the list is simply a guide to determining the suitablility of a language for first-year students. Their list includes:

The authors then discuss several languages.

In short, the authors have found that all the common languages used for teaching OO do not meet various goals that would make them ideal teaching languages. The most common problem is that the languages are general-purpose, which means they are much richer than a teaching language should be, and they usually do not implement OO in a clean manner. In a later article the authors explore a language they developed which attempts to meet these ideals. (I did not read that article yet.)


I read Kevin Adkisson's summary of an article that discusses how easily different languages allow implementation of a purely OO program. This would seem to be a point which the authors of my article did not consider or address, assuming instead that all languages make it equally easy to properly implement a program using purely OO techniques. Put under another light, it seems that the qualities which make for a good teaching language–clean concepts, simple model, and pure object-orientation–would guide the programmer to using a more "correct" object-oriented model, but the language can still make it easier for the programmer to "slip" and fall back on more familiar procedural constructions.

Link to this Page