On Tuesday, August 22, 2006 5:25 PM Gabriel Dos Reis wrote: > ... > For my own courses, I've been preparing materials for using > Axiom as my main vehicle for introducing students to symbolic > computation.
I am sure that you do not doubt that I am a strong supporter of Axiom, but I must say that if I were you I probably would *not* use Axiom to introduce students to symbolic computation. There is of course the question of what you mean by "introduce" and about the level of sophistication (or not) of the students. If my intention was to demonstrate (truthfully) just how hard using a computer to do mathematics really is, then I think Axiom might be good place to start. But if your purpose is to give (a mostly false) impression of how easy it is, then the Maple and Mathematica sales literature would probably make a good handout for your first seminar. ;) I think that at the root of this problem is really an issue recently addressed by Steven Watt. Gaby would like to introduce his students to "symbolic computation", but really Axiom (and Aldor) are not very good at this -- by design. Axiom however does excel at "computer algebra". In the paper: http://www.csd.uwo.ca/~watt/pub/reprints/2006-tc-sympoly.pdf Making Computer Algebra More Symbolic (Invited), Stephen M. Watt, pp. 43-49, Proc. Transgressive Computing 2006: A conference in honor or Jean Della Dora , (TC 2006), April 24-26 2006, Granada Spain. and his talk http://math.unm.edu/~aca/ACA/2006/Proceedings/Nonstandard/Watt_abstract. txt Symbolic Computation versus Computer Algebra, Stephen M. Watt, Proc. 2006 Conference on the Applications of Computer Algebra, (ACA 2006), June 26-29 2006, Varna, Bulgaria. Steven presented this distinction: "We observe that ``symbolic computation'' and ``computer algebra'' are really two different things and that neither one sufficiently addresses the problems that arise in applications. Symbolic computation may be seen as working with expression trees representing mathematical formulae and applying various rules to transform them. Computer algebra may be seen as developing constructive algorithms to compute quantities in various arithmetic domains, possibly involving indeterminates. Symbolic computation allows a wider range of expression, but lacks efficient algorithms. It is often unclear what is the algebraic structure of a domain defined by rewrite rules. Computer algebra admits greater algorithmic precision, but is limited in the problems that it can model. We argue that considerable work is still required to make symbolic computation more effective and computer algebra more expressive. We use polynomials with symbolic exponents, e.g. $x^{n^2 + n} - y^{2m}$, as an example that lies in the middle ground and we present algorithms for their factorization and gcd." ------------- I think Steven's thesis is a philosophically hard one for mathematicians to accept but computer scientists in general have developed a much more refined, and at the same time more concrete, notion of "type" and "structure" as fundamental to computer programming. So they have an easier time to accept this view. Under this distinction, Mathematica, Maple, Maxima, Reduce are *symbolic* computation systems. They are designed to manipulate expressions in a primarily linguistic and pragmatic manner as dictated by the underlying mathematics. A computer algebra system on the other hand, emphasizes structure over language. For example a polynomial in Axiom is a specific (abstract) data structure object with certain very specific designed-in properties and operations. It only has a symbolic representation during input and output. It is this metaphysical view of mathematics as dealing with concretely realized abstract objects (as implemented in a computer) instead of merely manipulating formal systems of symbols, that is at the root of this debate. As we have discussed in several different contexts, Axiom's "Expression" domain constructor is an attempt to provide Axiom with some (limited) symbolic computational ability. Unfortunately it is also one of the most complex and problematic domains in Axiom. I think the reason that this is true is directly related to the difficulty of merging these two points of view about computation. So presenting students with Axiom ends up confronting them almost immediately with this difficult and largely unresolved problem. > Yesterday, I had to reconsider that decision given the many > whoops to jump through and unfavorable impression when compared > to recent versions of Maple or Mathematica. Now, I'm thinking > about switching to Maple alright for this fall. Although I am also a supporter of Maple and (at least in years past was) quite active as a beta test volunteer during Maplesoft's annual beta test cycles, I think choosing Maple (or Mathematica) to introduce students to symbolic computation is also a mistake since as commercial products they both try hard to give the impression that this problem is solved. > > [...] > > | > I am tempted to suggest that hooking Axiom to the Sage > ! > bandwagon as soon as possible might be the best idea. > > I would resist the temptation to jump on the many bandwagons > du jour without more data... > Your prudence is justified, but since you must teach students symbolic computation this fall, what should you do? > [...] > > | > But that makes Axiom seem subordinate > > or uncertain and unfocused project. > I think the truth hurts. :) And that is why one is sometimes forced to teach in a somewhat less than optimal ways. I have been trying to understand the reasons for the apparently phenomenal success of the Sage project. Certainly the enthusiastic personalities of some of the principle developers such as William Stein and David Joyner is one factor, but more importantly perhaps is the fact that Sage seems to take a sort of "middle ground" in this "symbolic versus algebra" debate. By choosing a dynamic strongly typed interpreted language like Python as the underlying glue, it can in fact straddle these two worlds. Although there remains considerable skepticism over whether it can do so in a sufficiently efficient manner. Certainly only a few years ago this approach would not have been technically viable due to the lack of sufficient computer resources to waste. But the days of Tim Daly's "peta-computer" are fast approaching and as Axiom developers we need to take a close look at the consequences. I think one of the consequences is Sage. On the other hand, I think one might reasonably characterize the design of the programming language Aldor as an earlier and more formally correct approach to solve the same problem. Unfortunately for completely non-technical reasons Aldor seems to have lost at least the first round of this fight. Regards, Bill Page. _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
