Monday, January 30, 2017

AlGore-isms

Practise yourself, for heaven's sake, in little things;
and thence proceed to greater.

—EPICTETUS (Discourses IV, i)

—KNUTH (The Art of Computer Programming I, 1)

The title of Chapter 1 of The Art of Computer Programming by Donald Ervin Knuth is “Basic Concepts”. And the title of section 1.1 is “Algorithms”.

If in doubt about where to begin and when in doubt about where to go next when traversing the field of Computer Science, we could do worse than asking ourselves—in the spirit of adherents of Christianity who in the 1990s popularized the phrase What would Jesus do “as a reminder of their belief in a moral imperative to act in a manner that would demonstrate the love of Jesus through the actions of the adherents”—What would Knuth do?

Etymology

First, therefore, let's briefly review the history and etymology of the word algorithm. Many believe that Al Gore had a lot to do with the invention of the word algorithm. And although this author has yet to find the smoking gun in The Art of Computer Programming that conclusively proves the theory, Knuth does tell us that “The word [algorithm] did not appear in Webster’s New World Dictionary as late as 1957” (vol. 1, 1).

. . . Aha!

As Jon Bentley preaches at the beginning of “Aha! Algorithms” (Column 2) in his book Programming Pearls (certainly, dear reader, you are not swine):

In his book Aha! Insight (from which I shamelessly stole my title), Martin Gardner describes the type of contribution I have in mind: “a problem that seems difficult may have a simple, unexpected solution.” Unlike the advanced methods of the field, the aha! insights of algorithms don't come only after extensive study; they're available to any programmer willing to think seriously before, during, and after coding.
(Programming Pearls, 11)

So! . . . Al Gore was at least eight or nine years old by the time the word algorithm did first appear in Webster’s New World Dictionary! Fact-checkers are cautioned not to come to premature conclusions based on an exhaustive search of the Index and Glossary that appears at the end of The Art of Computer Programming, since Knuth himself admits, “Any inaccuracies in this index may be explained by the fact that it has been prepared with the help of a computer” (vol. 1, 634).

An AlGore-rhythm

A Procedure for Roaming Around

  1. All roads lead to Rome. If you're not having fun on the road you're on, then try some other door. Otherwise, follow the yellow brick road religiously.
  2. Go home.
  3. Answer the question. If you answer incorrectly, then go to reëducation; return, then repeat. If you answer correctly, you will be offered a drink.
  4. Drink. If your drink seems strange and is making you mad, have another. Otherwise, repeat.
  5. Smell the roses.
  6. Sweat the small stuff.
  7. Find your muse.
  8. Continue. . .
    1. If you're a newb, then repeat.
    2. Else if you're a n00b, then be a newb. Then repeat.
    3. Else if you're not back by dark, you're hopefully lost. Go home, eat dinner, read a book, brush your teeth, say your prayers, and go to bed. Sweet dreams! Live to play again another day.
    4. Else when in Rome. . . .
a trace of bits and pieces of a metaphorical fugue on minds and machines at work on the spirit