







Kenneth Iverson’s 1964 language, APL, won him the Turing Award. His award lecture, Notation as a Tool of Thought, argued that better notations would lead people to deeper insights about mathematics. He provided a number of examples ranging across linear algebra, arithmetic, probability, and logic. Unfortunately, most of the mathematics he covers isn’t relevant to programming. However, his core idea still applies, and changing how we describe programs changes how we think about them.
Notation as a Tool of Thought

The APL Programming Language Source Code
Thousands of programming languages were invented in the first 50 years of the age of computing. Many of them were similar, and many followed a traditional, evolutionary path from their predecessors. What eventually became APL was first a mathematical notation, not as a computer programming language.

Embracing AI and formalization: Experimenting with tomorrow’s mathematical tools
Embracing AI and formalization: Experimenting with tomorrow’s mathematical tools. By Jarod Alper
Old and new apps, via modern coding agents
I have been interested in machine-assisted ways to do and teach mathematics from as far back as 1999, when I started coding several applets in Java 1.0, both for my complex analysis and linear alge…

How To Think Like A Programmer
"Concatenative programming and stack-based languages" by Douglas Creager

Leiden Declaration on Artificial Intelligence and Mathematics
This declaration calls for action to address the challenges posed by the use of artificial intelligence within mathematics research.
Leiden Declaration on Artificial Intelligence and Mathematics
This declaration calls for action to address the challenges posed by the use of artificial intelligence within mathematics research.
Leiden Declaration on Artificial Intelligence and Mathematics
This declaration calls for action to address the challenges posed by the use of artificial intelligence within mathematics research.

Leiden Declaration on Artificial Intelligence and Mathematics
This declaration calls for action to address the challenges posed by the use of artificial intelligence within mathematics research.

The peril of laziness lost | The Observation Deck
In his classic Programming Perl — affectionately known to a generation of technologists as "the Camel Book" — Larry Wall famously wrote of the three virtues of a programmer as laziness, impatience, and hubris: If we’re going to talk about good software design, we have to talk about Laziness, Impatience, and Hubris, the basis of good software design. We’ve all fallen into the trap of using cut-and-paste when we should have defined a higher-level abstraction, if only just a loop or subroutine. To be sure, some folks have gone to the opposite extreme of defining ever-growing mounds of higher level abstractions when they should have used cut-and-paste. Generally, though, most of us need to think about using more abstraction rather than less.

Turing: Probabalistic Programming in Julia | Cameron Pfiffer | JuliaCon 2019
Notation is not a way of writing thoughts down — it is a technology that determines which thoughts are available to be had. Starting from Iverson's 1979 Turing Award lecture, this collection gathers the argument's ancestors, elaborations, and its opponents: Nielsen and Matuschak on media as cognitive infrastructure, Bret Victor's case against symbol manipulation, and empirical work on representation as a cognitive tool. Open to contributions.

The Technological Turn in Mathematics
J Notation as a Tool of Thought

Prof. Judy Fan: Cognitive Tools for Making the Invisible Visible
Media for Thinking the Unthinkable
Kill Math
Using spaced repetition systems to see through a piece of mathematics