Image credit: **Rob Cottingham**

I’ve been doing some programming recently for a friend of mine, and while programming I made a realization. Every time I needed to remember how to do a particular algorithm, or use a tool with which I’m less familiar, I look it up online (or I ask someone for help). In fact, I spend a lot of time as a programmer looking up things called **APIs** and core functions in the programming language I’m using. The basic structure is very solid at this stage, since I’ve been using it over and over again, but there are still lots of things I look up frequently.

I wondered to myself, what would this look like in the mathematics classroom?

It’s not ridiculous to compare programming and mathematics. Programming and mathematics have a tonne in common, in fact much of programming a computer itself is deeply rooted in mathematics. They are both domains of knowledge which allow for high levels of creativity (provided you are given the freedom to be creative) and rely on an ability to construct algorithms and perform computations. Being good at constructing algorithms is useful, but not sufficient, in both domains for creating complexity and solving difficult problems. It takes more than just knowing your stuff to be good at these two areas of knowledge.

What I imagine would happen, were one to follow this model, is that students would have a resource available to them, whenever they needed it, which had very simple and short explanations of each mathematical computation in their toolkit. Whenever they ran into a computation, and forgot how to do it, they could look it up. Perhaps this toolkit (or mathematical API reference) would be in paper form, perhaps it could be in digital form. Whatever it is, it should be easy to search through. In digital form, it should include short (2 minutes ideally) video snippets showing how to do the computations. Perhaps it could even be searchable by entering an example of the computation itself. Students could add to their personal toolkit as they discovered or encountered mathematical techniques that they found useful, which is very similar to the process programmers go through as they build a code library.

Over time as the students used the reference material, the computations that students used often would be things they would naturally memorize. The less frequent computations might be things they looked up a lot. Students could spend more time working on highly engaging and personalized problems or activities, and a bit less time memorizing all of the computations. Most importantly, they would spend a lot more time practicing an important skill, recognizing what type of computation is useful in a given situation, and being able to relearn that computation as needed.

In Keith Devlin’s book, "**The Math Instinct**" he makes a lot of interesting points about mathematical ability. One thing he points out is that many people use mathematical strategies successfully in life, for example to do their shopping, but almost no one uses the highly efficient "school math" algorithms they learned. The problem is one of transfer of knowledge. People just generally don’t know how to transfer stuff they’ve learned in school to their lives.

The hope is that these types of API references for mathematics would be something so useful, kids would keep them year after year, and potentially use them in their lives. We already give students formula sheets for many exams, this is just one step further.

Note here that I have a premise which I should make explicit. It is not the learning of algorithms or specific computations which is mathematics, it is the learning of how to use these algorithms and apply them to problems in creative ways, and then extend them as necessary which in my mind is what defines mathematics.