Rate this response:
I took the very first computer course at MIT. It is one thing to learn to program, but it is another to understand the numerical methods and issues. When I was at MIT, there were no such courses. Last year when I looked, there were just two, one of which was for MatLab. In my professional career (as a plasma physicist), if you could not write a program using good numerical methods, it was like having both hands tied behind your back. And in the future (and now) supercomputers do all the numerical stuff in parallel. Far too many students are content to use the canned routines (e.g., MatLab, NAG,...) when often, their methods are inappropriate for the tasks at hand, and indeed every known method is. A proper scientist needs to be able to invent proper numerical methods. In a supercomputer environment, where huge jobs run for weeks, it is very hard to tell if the output is correct. Often it is just a case of "garbage in = garbage out."
So we need to teach students how to solve real-world problems, where the answers are not known in advance, and where it is difficult if not impossible to validate routines using test cases.