Programmable Mathematics

Rebuild familiar mathematical ideas as small Go programs and discover the definitions hidden inside them.

← Mathematical Foundations projects

Experience Research Mathematical Foundations

Question

What do we discover when we turn familiar mathematical ideas into programs we can run?

Goals

  • Recognize abstraction as keeping the essential behaviour of an idea while hiding its representation.
  • Recreate natural numbers, functions, and other familiar objects from a few simple operations.
  • Explain how different representations can express the same mathematical idea.

Method

Begin with a question, build the smallest program that answers it, and let the mathematical definition emerge from the implementation.

  • Learn enough Go to work with values, loops, functions, methods, and a simple interface.
  • Build natural numbers from zero, successor, and predecessor, then use that structure for counting, iteration, and arithmetic.
  • Continue with a small object such as a function, set, point, or real-number computation; run examples and compare representations.