On 1/15/2013 10:39 PM, Murray Eisenberg wrote: > On Jan 14, 2013, at 11:31 PM, David Bailey <firstname.lastname@example.org> wrote: > >> I do tend to agree that teaching Mathematica as a first programming >> language, would be a bad idea, because so much happens behind the scene >> - for example the way in which multiple definitions for a function get >> reordered to improve efficiency. I would imagine that some students >> would get a hazy idea of what the were asking the computer to do, or how >> expensive it might be. > > > It all depends on just what you want somebody to accomplish when learning his/her first programming language.
There are several issues here. For a starter, 4-year colleges generally do not offer credit for "a course to teach you to program in language X" in a department of computer science. There may be such courses in physics, statistics, etc departments, but this should be classified as a utility course, akin to "how to use the microwave oven in the lunchroom".
An introductory computer science course, which probably will incidentally teach the fundamentals of some programming language, would normally be concerned with questions like "what is it that a computer can do, and how". And "what is the relationship of a programming language to a computer?"
Certainly, for a curious mind, it is natural to ask how a computer, a machine which one is told can only add, compare, branch (or whatever), can read a program in Java, C, Mathematica, Lisp etc, and interpret this in some predetermined way.
This is what makes SICP so interesting. It won't tell you the shortest route to getting a web page running. Who needs to know anything about anything if you can use PHP or Ruby on Rails.
When I taught a course to Freshman that involved computer algebra systems, they were not curious about how to break up programs etc. They wanted to know how the Risch Integration algorithm worked and why their own calculus course didn't include it.
I've flushed your notes because my mail sending programming says it will not do lines more than 79 characters, and your message has them..