[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Computational Math and Terence Tao's three stages

From: Tim Daly
Subject: Re: [Axiom-developer] Computational Math and Terence Tao's three stages of mathematics
Date: Thu, 8 Dec 2016 04:44:41 -0500

I don't have a copy of the Classical Mechanics book so I can't comment.

re: When do you write code versus when do you use CAS systems like Axiom?

I write code when I need to understand something. For example, I'm writing
code to manipulate point clouds from self-driving cars. I don't understand
how to segment point clouds into individual cars.

I also write code when I'm working at the basic level of the world. For
example, I'm pushing Gustafson's ENUM representation of numbers
so I can use it as an Axiom domain. That is so primitive it needs raw code.
And maybe an FPGA so there is VHDL to learn.

I use Axiom when I'm trying to work at a high level. I'm currently pushing hard
on Geometric Algebra (Clifford Algebra) so I can extend the library. It is a long
leap from GA to code and Axiom is the right middle ground.

I use Axiom when I'm writing the Computer Algebra Test Suite where the
struggle is whether Axiom can't do it or I'm just too uneducated to know.

That said, I'm a primitivist of the Feynman school. If I don't understand how
the algebra turns into lisp turns into C turns into binary turns into transistors
turns into silicon turns into electrons then I don't think I understand it. Most
programmers these days have no idea what a front porch on VGA means
but they are really up to speed on the latest React library, which I am not.

Ultimately this is where I part company with most CAS developers. If we
develop "library code" that works using the "trust me" model then the world
will simply discard it for a shiny new thing. It is why you throw out your cell
phone every year. You don't even know how to replace the battery anymore.
I don't want to create "this year's shiny new thing" only to have it die.

But if we explain it so it can be maintained, modified, and  extended without
spending years doing research, which is why highways survive and evolve,
then Axiom can live. If we can make it possible to teach computational
mathematics "from the ground up" we win. Students use what students learn.
Explain your code. Reference the literature. Make it possible to teach it.
Think long term.

(stepping off the soapbox)

On Sat, Dec 3, 2016 at 3:57 PM, Lawrence Bottorff <address@hidden> wrote:
In my opinion, exactly what S&A are doing in SICP is what math should be about. A great example is Tree recusion 1.2.2 in this nicer version of SICP (scroll down to 1.2.2). It talks about the Fibonacci series and how to do it with a Scheme tree recursion -- but then how wasteful that is due to the duplication. Then they talk about the phi equation. Then they compare, talking (around) big-O. This is exactly how math -- starting somewhere in middle or high school should be taught! SICP obviously emphasized the programming, but that could be flipped. So yeah, pummeling kids with weak, hand-waving Stage 1 math is a real loser. It's not real theory, it's not real-world computational. And, as Sal Kahn says (after I said it for years), American K-12 math is not mastery-oriented, rather, just give them a letter grade (whatever that is supposed to mean/achieve) and herd them to the next level . . . deficiencies accumulating, math phobia building.

In the real world math is done with electronic digital machines, i.e., computers. Not even calculators anymore! So when I see second-rate versions of Stage 1 math being taught sans computer but those ubiquitous WAY-overpriced "graphing" (sic) calculators in hand, I see red.

By the way, what do you think of Sussman/Wisdom's Structure and Interpretation of Classical Mechanics (2nd ed). It's a true literate, tangled code tome. I can imagine NASA hiring a bright young physicist who mastered Goldstein's Classical Mechanics -- but then this kid has no idea how any of it is actually done in the real world, i.e., how to do it on a computer. So often the computational side is just an afterthought in schools. But then another question about SICM. It's using Scheme with a library Sussman created. It seems to beg the question, When do you write code versus when do you use CAS systems like Axiom?


On Fri, Dec 2, 2016 at 6:09 PM, Tim Daly <address@hidden> wrote:

One can roughly divide mathematical education into three stages:

  1. The “pre-rigorous” stage, in which mathematics is taught in an informal, intuitive manner, based on examples, fuzzy notions, and hand-waving. (For instance, calculus is usually first introduced in terms of slopes, areas, rates of change, and so forth.) The emphasis is more on computation than on theory. This stage generally lasts until the early undergraduate years.
  2. The “rigorous” stage, in which one is now taught that in order to do maths “properly”, one needs to work and think in a much more precise and formal manner (e.g. re-doing calculus by using epsilons and deltas all over the place). The emphasis is now primarily on theory; and one is expected to be able to comfortably manipulate abstract mathematical objects without focusing too much on what such objects actually “mean”. This stage usually occupies the later undergraduate and early graduate years.
  3. The “post-rigorous” stage, in which one has grown comfortable with all the rigorous foundations of one’s chosen field, and is now ready to revisit and refine one’s pre-rigorous intuition on the subject, but this time with the intuition solidly buttressed by rigorous theory. (For instance, in this stage one would be able to quickly and accurately perform computations in vector calculus by using analogies with scalar calculus, or informal and semi-rigorous use of infinitesimals, big-O notation, and so forth, and be able to convert all such calculations into a rigorous argument whenever required.) The emphasis is now on applications, intuition, and the “big picture”. This stage usually occupies the late graduate years and beyond.

I'm of the opinion that computational mathematics is at the first stage. We write

code that "sort-of works" and lacks any attempt at formality, even failing to

provide literature references. Moving to stage 2 will be a long and tedious

task. Axiom has the connections to the proof machinery and is being

decorated to provide some early attempts at proofs using ACL2 and COQ.

This effort is an interesting combination of mathematical proof and

computational proof since both fields underlie the implementation.

Moving computational mathematics up Tao's tower is going to be a long, slow,

painul effort but, if memory serves me correctly, so was graduate school.


Axiom-developer mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]