Fixing Mathematical Notation with Computing, and “Proving” It with Education

November 2, 2018 at 7:00 am 8 comments

I was looking for a paper that I needed to review last night, and came upon these paragraphs in the paper I brought up by mistake.


This is bold language:

It might be argued that mathematical notation (MN) is adequate as it is, and could not benefit from the infusion of ideas from programming languages. However, MN suffers an important defect: it is not executable on a computer, and cannot be used for rapid and accurate exploration of mathematical notions.

The paper I found in my archive “Computers and Mathematical Notation” doesn’t seem to be published anywhere.The author is Kenneth E. Iverson, the inventor of APL. This paper echoes some of the thoughts in Iverson’s 1980 Turing Award Lecture, “Notation as a Tool of Thought.”

The unpbulished paper is notable because he wrote it in J, his successor language to APL.  He realized that his languages would be more accessible if they used the ASCII character set. J (which you can find at is essentially APL, but mapped to a normal keyboard.

The attempt to “fix” mathematical notation (“suggestions for improvement,” to be exact) is bold and interesting.  What makes his argument particularly relevant for this blog is how he made the argument. How do you “prove” that you have improved on traditional mathematics notation?

Iverson decided that education was the way to do it.  He wrote mathematics textbooks, using J.  He wanted to show that basic mathematics is more explorable using his notation.

I find this network of papers and textbooks fascinating.  I love the goal of inventing a programming notation, not to develop software, but to improve the expression and exploration of mathematics. (In that sense, J is like Mathematica.) I am intrigued by the challenge of how to show that you succeeded, and to use education as a way to demonstrate that success. I’m amazed at these multiple textbooks that Iverson wrote and released for free, to encourage exploration of mathematical ideas with J.

This week, I was informed that I will be receiving the 2019 SIGCSE Award for Outstanding Contribution to CS Education. The award will be presented at the 2019 SIGCSE Technical Symposium to be held in Minneapolis, MN  from Feb 27 – March 2, 2019. I am honored and thrilled.  SIGCSE has been my academic home since my first ACM publication at SIGCSE’94. The list of awardees is stunning, including my advisor, Elliot Soloway, Alan Kay, Hal Abelson, Jan Cuny, Alan Perlis, Judith Gal-Ezer, Sally Fincher, Grace Murray Hopper, Wirth, Knuth, and Dijkstra (among many others — the award started in 1981). It’s an impressive club I’m joining.

That announcement didn’t feel like enough for a blog post in itself, so I’m just tacking it on down here.  I’ll probably write more about it when I figure out what I’m going to say in my talk.


Entry filed under: Uncategorized. Tags: , , , .

Novum Organum: The original “How To Not Be Wrong” What do I mean by Computing Education Research? The Social Science Perspective

8 Comments Add your own

  • 1. tdmorley  |  November 2, 2018 at 8:27 am

    I have, over the years, changed my mind about some notations, partly on the basis of tricky issues of variable binding, such as in Lisp or Mathematica. Some of Iverson’s ntatins, like floor and ceiling have become commonplace.
    On another note the special interest group on philosophy of mathematics is having a special section at the winter joint mathematical meetings this year. I am speaking on “Feynman ‘s funny pictures”.

  • 2. Gaby Nieva  |  November 2, 2018 at 10:08 am


  • 3. bob therriault  |  November 3, 2018 at 2:48 am

    J is actually more than just APL mapped to the ASCII character set. it has many elegant approaches to programming that have since been introduced back into APL. it is worth the effort to learn this executable, mathematic notation that not only captures the operations of mathematics but lets you experiment using the computer as a tool. Thank you for mentioning the language and congratulations on your award. it is well deserved.

  • 4. Ellis 'Skip' Cave  |  November 3, 2018 at 11:36 am

    I learned APL in the late 70’s and used it primarily to develop OCR algorithms (on an acoustic-modem-connected IBM Selectric typewriter with an APL typeball) for automatic mail sorting systems and point-of-sale terminals. I switched to J in the mid 90’s, and I still use J for my engineering work today. A couple of years ago, I stumbled on the Q & A website Quora. A good portion of the questions asked on that site are math problems, so I began answering the posted questions using the J language. J’s vector/matrix capabilities and terse 1& 2-character ASCII operators (called verbs in J) allowed brute force solutions to many problems in a single short line of code, which would have otherwise required complex analysis and knowledge of obscure math relationships. I have answered thousands of questions on Quora using J. I have found that J makes an excellent teaching tool, as it encourages exploration, because the dozens of powerful primitive operators (all of which extend to vectors and matrices) make experimenting fun. The fact that the J interpreter is free, and runs on my Android phone, my Windows desktop, and my MacBook, is a big plus.

    “Civilization advances by extending the number of important operations which we can perform without thinking of them.”
    ― Alfred North Whitehead

  • 5. orcmid  |  December 13, 2018 at 6:09 pm

    The original “A Programming Language” and related developments of APL and it successors represent a kind of tour de force. There’s no doubt about it.

    I do think we need to be careful. The work on notations for computation is a bit different than mathematics, and thinking of the computational notation as one to be brought to mathematics strikes me as a misunderstanding of what mathematics is all about and the connection with computational systems (as applied mathematics in some sense). The semantics of APL is not mathematical, it is computational.

    I wonder if the desire to provide mathematical notation in programming languages, a laudible accomplishment at the time, now seems to have led to some confusions about which is what. Having the same notation might not be a great idea if it means the difference becomes even more confused.

  • 6. Jeffrey A Graham  |  December 17, 2018 at 10:24 am

    Good luck getting any mathematician to adopt one of these books. Math notation is an evolving product of the math community over hundreds if not thousands of years. No way they are going to switch to something else. I took a peek at the Calc book. Sheesh, it’s really not good.
    Certainly the math community is not immune to criticism and of course we should keep an open mind about pedagogy. It does get tiresome being the whipping boy for all the problems in stem education though. How about a little bit of trust that we know what we’re doing?

  • 7. Raul Miller  |  December 17, 2018 at 12:21 pm

    I would not expect anyone who picks up Iverson’s work to abandon all other notations. That would be self defeating.

    However, I disagree with the suggestion that that makes these notations “non-viable” or “non-mathematical”.

    Growing up, i picked up mathematics the fastest when I had an instructor who was willing to present both the mathematics and the application area which inspired those forms of expressions. (So, for example, same teacher for physics and math, in each class covering roughly the same topics from the two different perspectives. But I saw similar synergies with other practical areas – it wasn’t just that one professor. I saw this pattern repeatedly, year after year, and eventually learned to try and make it happen for myself – at least sometimes.)

    Anyways, Iverson’s work gives some specific tools – both computational tools and mathematical tools – which can give insights into a variety of contexts. On the mathematical side, there’s ties to group theory, tensor algebra, probability and logic, peano axioms, etc. etc. And of course, these ties are not unique to his work – many (but not all) of them can be found in many many other languages.

    But to ignore his work entirely because of the notation? That approaches being as self defeating as ignoring all other notation because of Iverson’s work. His work was originally about teaching people about computer machine architecture. And I have not seen any other efforts be as successful as his work, there. (That said, Charles Moore’s “color forth” “vlsi” design efforts strike me as being in a close ballpark, albeit coming at the issues from a completely different direction.)

    There is no “one notation” in mathematics. There can’t be, without abandoning its thousands of years of history. And anyone who thinks otherwise basically either hasn’t learned enough math or hasn’t paid adequate attention to the syntactic issues. Some math textbooks, in fact, make a deliberate effort to provide unique notation for every topic covered in the book.

    (That said, the constraints of computing mechanisms – especially the early machines – have tended to encourage a “one true syntax” perspective. People who did not go there were not able to contribute much of anything computationally interesting. But this should be recognized as being more of an engineering constraint than a mathematical issue.)

  • 8. jimjsr  |  August 5, 2019 at 3:53 pm

    Dusted off my hard copy of “Exploring Math” last week, and was delighted to find a link to the pdf of a revision. Your link “” was even better; I was unaware of it. Thanks!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,401 hits
November 2018

CS Teaching Tips

%d bloggers like this: