Mastering Mathematica : Programming Methods and Applications
||Author: John Gray|
List Price: $52.95
Our Price: Click to see the latest and low price
Publisher: Academic Press (20 October, 1997)
Sales Rank: 69,013
Average Customer Rating: 5 out of 5
Customer ReviewsRating: 5 out of 5
A Review for Programmers, by a Programmer
7.24.99 SJW *****
This is something of a book review, but also a commentary on the Mathematica package. My background is a recent MS in Computer Science. My interest in Mathematica is as a thinking tool for Programmer/Analysts or R&D Prototypers.
John Gray's book comes with a CD-ROM including the entire text of the book (the book was produced using Mathematica) as well as help files which can easily be integrated into the resources of the Mathematica Help Browser.
The book is well laid out (see the Table of Contents at amazon.com) topically, starting with very basic usage of the math abilities, and the user interface, then moving on to programming styles using Mathematica and methods of representing information in Mathematica. (All major commands in the Mathematica package are searchable, topical resources are available via documentation chapters on that topic, and explanatory text is hyperlinked in html format.)
The book's style is absolutely functional, and is targeted at users who have at least a threshhold knowledge of modern programming. Much of the material somewhat assumes that the reader has read enough using the Help Browswer with its on-line manual to be able to operate the notebook interface. Examples are given for almost every topic (the examples are executable in Mathematica, as the text of the book is in the form of a Mathematica notebook), although the specifics of each example are not necessarily explained.
As a programmer, the most amazing revelation of Gray's book is the degree to which the Mathematica package is programmable. Of course, procedural commands are built in to allow the coding of procedural algorithms (these commands have the form of generic pseudocode commands, or "near-C"). But Gray gives examples of programming using functions (recursion is allowed), as well as instructions re o-o and constraint (rule-based) styles of programming. (Note that Mathematica has built in pattern matching notations--especially useful for rule-based programming.)
In short, not only is Mathematica a completely integrated symbolic/numeric advanced math utility with integrated graphics and statistical packages, but it also has its own virtual operating system (full file i/o controls), and it allows the user to write rule-based programs (such as LISP or Prolog interpreters) which have full access to all of the built in Mathematica abilities, and to custom compiled components which the user has written.
Because all Mathematica's abilities are integrated, data can easily be displayed graphically, allowing visual debugging of difficult algorithms, or analysis (or reports). Gray provides a few examples of the visual display of algorithms.
The bottom line is that Mathematica is an astounding prototyping tool, as well as being the best graduate CS math utility I have used. And John Gray's book opens up these possibilities to the reader. Savor the possibilities!
· Schaum's Outline of Mathematica
· Computer Science with Mathematica
· The Mathematica Book, Fifth Edition