Tombstone
Tutor (MathGladiator)
Oct 2005 โ Jun 2006 ยท age 23โ24
What it was
A computer algebra system in C# whose product was not answers but steps. An expression came in as ordinary text, went through an ANTLR grammar into a tree, and was rewritten by rules written in a small s-expression syntax. Every rule that fired also wrote a human-readable reason, and the engine applied only one rewrite per pass, so a driver could print a derivation line by line as LaTeX. A heavier layer handled factoring, binomial expansion, and row reduction of matrices one operation at a time. On top sat a template language for lecture pages, where a page could bind random constants, generate a fresh problem and show the machine's worked solution. It was written for a calculus recitation and stopped when the semester did.
Wins, for the age
- At twenty-three, Jeff built an algebra engine that narrated every step it took, three years before Wolfram|Alpha's step-by-step solutions made that famous in 2009.
- Wrote lecture notes as programs, so every reload of a page was a new worksheet with a worked answer.
- Spotted when an expression was a polynomial in some hidden subterm, so an exponential sum factored as a quadratic, finding on their own what Mathematica and Maple had long done.
- Typeset equations with a hand-built box model in GDI+, a tiny TeX, because nothing rendered math in a browser in 2005. An ape with a keyboard, drawing radical signs by hand.
What it taught
- Term rewriting for real: matching over sums and products in any order, with backtracking, and the honest cost of doing it without an index.
- Exact arithmetic discipline, carrying numerators and denominators and reducing at every step.
- One boring universal syntax can feed three interpreters, so the interesting work goes into semantics.
- A system whose whole point is correct steps needs tests for the steps. One helper looped forever on any sum, and synthetic-division factoring never fired.
Genealogy
Ancestors: BNJv3: an algorithm shown step by step. Crml: patterns, rules, and rewriting to a result. Edu Lang: computation shown frame by frame for teaching. Mathml: typesetting math by a hand-built box model. Memorando: software that quizzes a learner. Descendants: Adama Docs: teaching through generated pages. Kitchen Grill: a compiler lowering through an s-expression form. Opinion Panel: a machine that must show its reasoning.
Epitaph
Here lies Tutor, which would not tell you the answer until it had told you why, and which turned chalkboard notes into pages that never asked the same question twice.