NSF-SPONSORED WORKSHOP ON THE INTEGRATION OF MULTIMEDIA CONSTRUCTION IN COMPUTER SCIENCE EDUCATION USING SQUEAK
=AND=
ATLANTA SQUEAKEND
May 3-5, 2002 College of Computing Georgia Institute of Technology
The tentative schedule looks interesting.
But using Squeak as a first language? Now that's courage. I was stoned for even proposing such mainstream languages as Haskell and Scheme. I can just hear them: "Squeak? What's Squeak? Oh. It's Smalltalk? Well Java is better isn't it?"
Posted to teaching/learning by Ehud Lamm on 1/19/02; 2:22:22 AM
I'd love to know how CS students respond to Squeak. Don't they want more marketable skills?
This is a little adversity as opposed to little adversity?
My experience is that students come thinking they know C++ or Java, when all they know is syntax and surface semantics, and are very angry when someone tries to teach them things of substance.
I much prefer those who come admitting they know nothing about computers. They have hope.
When I first made the conversion from C to C++, the ideas of OO programming just didn't click in the brain. Too many years spent hacking at low level assembly and C code resulted in a short circuit preventing me from seeing what it was Bjarne was trying to get at. Sure some of the C++ extensions made life a bit easier, but the idea of OOP never quite took hold. It was not until I set down with Smalltalk and started experimenting with a pure OO language that it made any sense.
I do think that any serious student of C++ should get acquanted with a language where OO is not just one more language feature but rather is integrated to the core - Eiffel & Smalltalk being the best candidates that I can think of. That said, anyone that messes about with Smalltalk will likely become disillusioned with C++ as it's glaring weaknesses in OO programming become all too obvious - things like reflection pale in comparison. But, then again, I'm not one that believes that you necessarily should be in awe of the tools that you use to solve problems. Those who know the limitations are far more likely to see the weakness in their efforts - resulting in more robust software than otherwise.
Smalltalk brought MVC and Graphical User Interfaces to the programming language community. Lots of languages have adopted and adapted this approach. Beyond these efforts, Squeak tries to extend the idea of building user interfaces with Morphic worlds, based upon the experimental work that took place, but never quite realized, with the Self language.
Anyhow, count me as a fan of the Squeak community. The students at Ga. Tech will probably be better C++ and Java programmers as result of their exposure to Squeak, than those that strictly hone in on the trivia associated with the details of those languages. Not sure whether the ambition of Ingals and Kaye will ever pan out, but it's sure nice to see people try to extend the definition of programming languages and environments, not accepting that we've reached nirvana by copying the work of others.
The issue of Squeak as a first language is complex, and I do think that Stephen Pope and the folks at UCSB are brave for doing it. Elliot Soloway and I have just written a paper for CACM arguing for a multimedia approach to teaching CS1 that Squeak is perfect for. http://coweb.cc.gatech.edu/guzdial/17
Mark
P.S. We have space for more workshop/SqueakEnd attendees, if any of you would like to come! New things are getting added to the schedule daily, so keep an eye on it.
I've been doing the same thing with our Ada course, but I can't say I got the same result. Students are still very grumpy.
Enough so that it hinders their learning, since many are too busy complaining instead of learning...
Why do you think multimedia is good for CS1? I know it can be motivating (though personally I find algorithms much more interesting than graphics). Doesn't multimedia take too much attention away from core CS1 topics?
(Indeed, what are course CS1 topics? I am still not sure. I have a couple of course approaches I'll just have to try someday, to see which one works best).
I must admit to having walked into my first programming course (FORTRAN of all things!) thinking that my years of PASCAL programming in High School had provided me with just about everything I needed to know. I was certainly wrong, and find that even now as a "Professional" I still find much to learn from Haskell, Scheme, and other so-called "research-oriented" languages.
In fact, an interesting discussion on this very topic was held on the plt-scheme mailing list.
Catch-22, I guess.
One thing that comes strongly from this story, and I think is true in general, is that the charisma of the instructor plays a large role in introductory courses. This is true, I think, in most fields.
An aside: Someone may have built large projects in C, and still be wrong about choosing a teaching language. Much as I like the conclusion, I know that the ineference is invalid
> I'd love to know how CS students respond to Squeak.
Well, I would say that advanced students really enjoy the opportunity to expand their horizons. IMHO, this is one aspect of pedagogy which Tech got right. Each programming course uses the most appropriate language to teach the applicable theory - Java, C, C++, Smalltalk, Lisp, Prolog, Asm, etc... For example, Mark uses Squeak to teach his class on Modeling and Design. This helps students learn to match the right tool to the right thumb.