I'm a lousy mathematician. Maybe because I was badly taught. Maybe because I'm genetically or biologically biased against it. Maybe because I'm lazy.

But increasingly I think there's a problem with mathematical knowledge as currently represented. Part of it's power is that it uses very concise declarative (as in DeclaritiveProgramming) ways of describing relations, rather than procedural steps (that an imperative programming language would use)

But this also makes it hard to decode incrementally. And particularly hard to decode something by "looking up" each bit. In a sense, there's an InformationArchitecture problem with the mathematical literature. You can't search it very easily to solve particular problems.

Here's what I wrote here : http://www.kuro5hin.org/comments/2003/7/29/17659/1721?pid=53#57

The other thing I find a big problem with maths is that it's very hard to look up when you don't know something. You have no dictionaries in alphabetical order, or other searchable classification scheme which lets you know where to look up the missing piece.

What that means is you can't do it partially. Unless you've been given, and absorbed, a good systematic education, which you remember, you're lost. You can't bootstrap from the bits you know to the bits you don't. I think that excludes many people.

Maybe one of the QuestionsINeedAMathematicianToAnswer is this :

Is this part of the essential nature of maths, or is it merely a contingent accident of its development and our educational practice?

Could maths be reformulated, and documents be organized in such a way that people could apply it in these stages :

  • use their everyday language knowledge of their problems to search for the bits of maths relevant to solving those problems;
  • navigate to an accessible explanation of each bit of maths required;
  • get help in constructing a solution to the problem by combining the elements in the correct way.

Wow, this is starting to sound like a SoftwareFactory isn't it?

It's obviously not surprising that I as a programmer am wondering about this. Programming is perhaps the nearest thing we have to this, in the sense that programs in imperative languages are formal descriptions of information processing formulas, which are nevertheless more applicable to step-by-step construction / analysis, and which are documented. Compare how easy it is to search a catalogue of a few hundred PHP library functions, each of which can be applied to an existing page by adding another line to an existing program.