On Wednesday, July 3, 2002, at 11:41 PM, Roger Whitney wrote:
I think the reason objects and classes may be avoided in intro classes is that the people who teach them think objects are too complex for students.
I once asked Alan Kay what kind of language/programming should be taught in a first course in a University. (Alan, please do correct me if I'm mis-remembering your answer.) He suggested that students should NOT first be taught object-oriented programming. Object-oriented programming is hard, on purpose, he said. It's meant to produce good, reusable code. That takes some discipline.
That doesn't mean that first-time students shouldn't program WITH objects. E-toys are all about objects, and that makes life easier. But E-toys-using students aren't dealing with class definitions and instance/class distinctions and all those other things that make object-oriented programs high-quality, but are fairly hard things to learn.
Alan's suggestion (which he re-iterated at the MM in CS Ed workshop, http://coweb.cc.gatech.edu/mmworkshop) is that a first programming course should be in multiple languages so that students don't latch on to only one way of thinking. I've heard him propose assembly language and LISP as giving students two ends of a spectrum.
Mark