Nice response, John! I agree -- there's value in exploring, playing with, and learning programming for its own sake.
I've been recently gathering examples of undergraduate courses outside of computing disciplines where programming is used (and typically "taught," too, because rarely are CS courses pre-requisite for these other courses) as the best way to learn the other disciplines. Two examples: - Physics courses at Purdue, Georgia Tech, and North Carolina State now ask students to program in VPython (a form of Python with tight ties to OpenGL so that objects map to visible 3-D models) in order to construct models (e.g., three body problem simulations) and to solve numeric problems iteratively. - Biology courses on many US campuses teach mathematical and computational modeling, since that's become very important to modern biology. The US National Research Council's report "Bio2010" specifically mandates such courses. The courses that I have investigated are taught in Excel, with the more complicated models rendered in Visual Basic for Applications from within Excel. If practicing scientists are finding it useful to use computation (e.g., programming to define models, create simulations, and solve problems) because it helps them with visualization and understanding, then it seems inevitable that it will eventually trickle down to students. In general, scientific tools tend to move from practitioners to students, unless they are too expensive or too complicated. Unlike the earliest microscopes and telescopes, or huge cyclotrons, computational science only requires the computers to which students already have access -- no additional hardware expense is required. It seems likely that computing, even programming skill, will become a pre-requisite to science and engineering learning in the next few years. Mark