Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Discussion 1 - Chris Ronderos
Good Books, Smalltalk, and Squeak
Daniel H Steinberg
Daniel Steinburg, of MacDevCenter.com, discusses the problems of teaching Object Oriented programming starting with Java. He explains that most professors start with an explanation of at least most parts of “public static void main(String args).” By the time all of these different concepts, and the other options possible in their places, are explained, the student has received a firm grounding in the concepts of procedural programming under the guise of an object oriented lesson.
These students go on to take AP computer science classes in High School based on this procedural Java, and write entire programs consisting of two or three massive classes composed entirely of page-long main() methods. They have been duped into believing that they know the basics of OO, when in reality they do not understand inheritance or polymorphism.
All OO programmers should continually study to improve their skills in writing good OO code. While beginning programmers may need to learn the concept of reusability or inheritance, advanced programmers can always learn about new ways to do things. Smalltalk, and books written about writing good code in Smalltalk, is an excellent environment for learning. Even if a programmer does not expect to ever write Smalltalk for a living, “there is more to be learned by broadening experiences” (2). Squeak makes the basic theory of OO easy to see. This allows programmers to easily write software that clings closely to the ideals of OO.
Commentary to Discussion 1 - Elizabeth Solomon:
Voegele draws the connection that Java is "less OO" than Smalltalk. He goes on the describe the reasons why, which seem to parallel the reasons that Steinberg gives for why Java is an inferior teaching tool. Using these two sources together, it seems that the more "pure OO" a language is, the easier it is to teach "good OO" programming practices with it.
Links to this Page