Pi and The Raven

Michael Keith rewrote Edgar Allan Poe’s poem The Raven to turn it into a mnemonic for pi. Keith’s version follows the original quite well considering his severe constraints. The full poem has 18 stanzas. Here I include only the first and last. The full version can be found here.

* * *

Poe, E.
Near a Raven

Midnights so dreary, tired and weary,
Silently pondering volumes extolling all by-now obsolete lore,
During my rather long nap — the weirdest tap!
An ominous vibrating sound disturbing my chamber’s antedoor.
“This,” I whispered quietly, “I ignore.”

So he sitteth, observing always, perching ominously on these doorways.
Squatting on the stony bust so untroubled, O therefore.
Suffering stark raven’s conversings, I am so condemned, subserving,
To a nightmare cursed, containing miseries galore.
Thus henceforth, I’ll rise (from a darkness, a grave) — nevermore!

* * *

The number of letters in most words encodes a digit of pi. Words with 10 letters encode a zero. Words with more than 10 letters encode two consecutive digits of pi. The poem encodes the first 740 digits of pi.

Classical programming

The classical education model is based on the trivium of grammar, logic, and rhetoric. See, for example, Dorothy Sayers’ essay The Lost Tools of Learning.

The grammar stage of the trivium could be literal language grammar, but it also applies more generally to absorbing the basics of any subject and often involves rote learning.

The logic stage is more analytic, examining the relationships between the pieces gathered in the grammar stage. Students learn to construct sound arguments.

The rhetoric stage is focused on eloquent and persuasive expression. It is more outwardly focused than the previous stages, more considerate of others. Students learn to create arguments that are not only logically correct, but also memorable, enjoyable, and effective.

It would be interesting to see a classical approach to teaching programming. Programmers often don’t get past the logic stage, writing code that works (as far as they can tell). The rhetoric stage would train programmers to look for solutions that are not just probably correct, but so clear that they are persuasively correct. The goal would be to write code that is testable, maintainable, and even occasionally eloquent.

 

Parthenon replica in Nashville, TN.