OK, I'm sure this is going to cause a flamewar, but I would be inclined not to even use one of the procedural paradigm languages as an introduction to computer science. Here are three reasons why (there are others): 1. Recursion is fundamental to the theoretical underpinnings of computer science. You just can't follow most of CS theory without grasping Recursion. Recursion is hard. Looping is easy. Teach students recursion. They won't have any trouble figuring out how to use while() later on. But trying to teach theory or algorithms (particularly the analysis of algorithms) to someone who never grokked recursion is unbelievably painful (I've done it!). I remember being forbidden to use any looping constructs in my first semester of computer science. It was a very helpful discipline. 2. You don't have to learn how to print. The first thing you always have to learn with a procedural language is how to break the rules to get words to appear on the screen (originall, on paper). So first off you start teaching people how to print stuff, then you finally get around to the data handling. This is a confusing distraction. Avoiding the printing morass is a specific exaple of a general principle of avoiding language-lawyering. I'd specifically let C++ out of intro courses for that reason. Java is marginally better. C is simpler and cleaner, but violates my preferences ##1 and 3. 3. Too much fussing with compilers. Use a structurally simple language with a read-eval-print loop (lisp, apl, ML), so people can just type stuff at the console and see if it's working. Yeah, it's not resource-efficient enough to write an OS, but hey, you've got to leave SOMETHING for the second semester! ;-) Cheers, R _______________________________________________ TCLUG Mailing List - Minneapolis/St. Paul, Minnesota Help beta test TCLUG's potential new home: http://plone.mn-linux.org Got pictures for TCLUG? Beta test http://plone.mn-linux.org/gallery tclug-list at mn-linux.org https://mailman.real-time.com/mailman/listinfo/tclug-list