MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

what kind of a programming language is Mathematica?

One of the reasons that many people have problems with writing
Mathematica programs is that they fail to understand how Mathematica
evaluates an expression that has been entered and this is directly
related to how Mathematica works as a TRS. In order to program in
Mathematica, it is ESSENTIAL to understand the evaluation process.

I taught the fundamentals of the Mathematica programming language for
about 15 years (until i retired 18 months ago) and have lectured to
well over 1000 students, profesional scientists and engineers in
university courses, tutorials, one-day courses at scientific
conferences, and industrial sites and government labs). In the course
of doing this  i have devloped and refined a set of lecture notes
explaining the inner workings of the Mathematica TRS evaluation

I am presently having the note set (which prints out to 55 pages in a
large font size) made into Mathematica notebooks (readable with MathReader),
ps files and pdf files. As soon as these are ready later this month. i
will post this material on a website and i will inform you where to go
to retrieve it.

I personally not a fan of copyrights or patents (although i do
understand that (time limited) patents and copyrights provide
incentive for innovation which is what makes a better life possible
for everyone - sorry, i just got sidetracked onto my 'information
wants to be free' soapbox) so i  have no personal objection to your
reading the files and trashing them, or sending them to other people,
or printing them out (you can even take you printed copies (55 pages +
section dividers) copied  double-sided is only 30 pages) to kinko's
and have them bind it into a book form with spiral binding or 
whatever sort of binding you like .

I might mention that i have taught 6 hour tutorials on this material
and have also presented it in 4 ninety minute lectures. i used
transparencies of the note set and the students did not sit in front
of computers while i lectured (i don't like computer-based education
systems). they did of course have copies of the note sets and were
free to interrupt with questions during the lectures.

I also have a set of five exercises included in the note set which i
gave out (in my university courses) for the students to do between the
lectures (they were not graded).

i hope this material will be of use to some of you and i would like to
hear back from you regarding your opinion vof the material and your
suggestions regarding improving it  - i can't of course respond to
specific individual questions because it would cut into my priceless
retirement time :)

a final note regarding elegant vs. non-elegant programming - note:
RJF: don't feel  compelled to make a  response to this, especially of
a personal , nasty nature. as it might set off my ICD  :)    -  the
issue of elegance in programming is very much a  personal matter (de
gustibus non disputum). i personally love the style of APL and J which
is so succinct and compact (the famous one-liner) but barely 
readable. On the other hand a program consisting of a series of
rewrite rules employed in a shell for applying the rules' is very
appealing to me (and my students have indicated the same). it makes
modifying the program trivial - all one has to do is delete, add, or
change the rules. the longer runtime the program may take to execute
allows one to think of other things or go do something else.

  • Prev by Date: Re: Questions about Graph output
  • Next by Date: Re: Excel formulas --> Mathematica
  • Previous by thread: AW: ploting in high dimensions
  • Next by thread: Re: what kind of a programming language is Mathematica?