"abe kohen" <firstname.lastname@example.org> writes: >This isn't a language war, but an issue of do we teach what is practical, or >do we teach ivory tower concepts. Those kids that will go on to MIT will get >all the Scheme they need, but for the kids that don't go on to study >computer science, let's give them something useful.
This disagreement *is* precisely what language wars are about. (The interesting ones, anyway; I can't work up much enthusiasm over arguments about whether N statements should have N or N-1 semicolons.) We choose a programming language based on our ideas about educational goals. (Except, of course, for those of us who don't get to choose because they have been assigned the A.P. CS course.)
This disagreement is the same as the one about putting "practical" problems in math curricula in order to motivate the kids. Personally, the kids I know are motivated by fantasy and, in most cases, by intellectual challenge, much more than by narrow vocational training. (And by being allowed to drive cars -- maybe our programming classes should revolve around writing driving simulation games. :-)
You and I agree that we should give kids something useful. We disagree about the definition of "useful"; I want to include powerful ideas that help kids think in new ways, rather than restrict the definition to the particular tools being used in industry this year.
And there's a third choice: There's a lot to be said, imho, for teaching kids first in a language such as Visual Basic that lets them throw together a snazzy graphical-user-interface application with a minimum of annoying detail to worry about. For most kids today that would probably be the most motivating choice -- and keeping the kid interested long enough to learn some ideas is the hard part, more important than the specific things the kid does or doesn't learn in the first exposure to programming. (But even so my aesthetic preference would be for Microworlds, which is a GUI/animation/multimedia version of Logo, over VB.)
P.S. I agree that if the choice is C++ or Java it should be Java, mainly because of the garbage collection. But this strikes me as similar to the questions kids sometimes ask such as "which would you rather have cut off, an arm or a leg?"