Comments interspersed below.
On Jan 16, 2013, at 11:14 PM, Richard Fateman <fateman at cs.berkeley.edu> wrote:
> On 1/15/2013 10:39 PM, Murray Eisenberg wrote:
>> On Jan 14, 2013, at 11:31 PM, David Bailey <dave at removedbailey.co.uk.math.umass.edu> 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".
Yes! Whenever I taught or reviewed a language, it was within a math course, and the purpose was to apply the language to do math. Especially:
(a) to better learn the math by "teaching the computer to do it", i.e., start by implementing basic ideas such as an elementary row reduction and build up in stages to more sophisticated things like orthogonal projection and least-squares solutions;
(b) to experiment and visualize; and
(c ) in the case of a numerical analysis course, to implement the methods, apply them, and try to find out how good the results were.
>
>
> . . . 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.
Exactly the sort of reaction one can pray to get!
(BTW, one of the many texts from which I taught calculus over the years was by Lipman Bers. Contrary to the practice of every other calculus text I encountered, Bers organized the treatment of symbolic integration not by method but rather by form of the integrand -- just the approach that an integration algorithm would typically need to do.)
Getting more OT:
Another instructive example Frank Wattenberg showed me years ago, for calculus: when finding antiderivatives, eventually one wants to talk about elementary functions not having elementary antiderivatives. A standard example is e^(-x^2/2). And then you ask Mathematica to integrate Exp[-x^2] and -- boom! -- you obtain a constant times Erf[x], a seemingly "closed-form" answer. Then one can get some serious discussion going about what "elementary" and "closed form" mean.
---
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 5 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305