ps -- i am not entirely sold on oo programming. clearly it is the correct way to model certain problems, but a more functional approach seems better suited to other kinds.
I think teaching TDD is more important than OO these days. Am I only reflecting my own loves and predjudice?
Hi Laura, If so, it's a prejudice that's shared by a few other people. *grin* Oleg Kiselyov has a paper called "Subclassing errors, OOP, and practically checkable rules to prevent them": http://okmij.org/ftp/Computation/Subtyping/ where he brings up the idea that subclassing can be tricky, and that OOP in general can be more complex just because one has to hold a class hierarchy in one's head to know exactly what's going on. One of the references in his paper is also interesting: http://research.microsoft.com/Users/luca/Papers/BadPropertiesOfOO.html The attributes of a good "engineering language" in Luca's terms might not necessarily be an ideal "teaching language". But I think it's useful to read some of the criticism from the procedural side of things, to better understand the strengths and weaknesses of OOP. Best of wishes to you!