Computer Literacy: 2

The Technocrats’ Guild

Writing procedural manuals is just the sort of activity that brings out the “my way or the highway” part of those who undertake it. This leads to cliques made up of those who more or less agree as to which of the available right ways is the Right Way. In this case, the primary quarrel is between those who feel that it’s important to think like a postmaster, considering every problem as if one is seated at his desk, and those who feel that it’s possible to abstract the general problem of writing procedural manuals into an abstract theoretical framework11. Most university computer science departments can be categorized as having developed out of either an electrical engineering or a mathematics department. The former departments tend to emphasize the innards of devices, the latter tend towards abstractions and theoretical explanations. Stones are thrown from either side of the aisle, but effective practice requires an understanding of both approaches and an ability to integrate them..

The Abstractionists are descended from a monastic order of Castilian Jesuits, and thus speak with a pronounced lisp22. The first, and probably still the best, language for theoretical computer science is called LISP (LISt Processing language). It was developed as a way to work out problems using a special branch of logic called the Lambda Calculus, which was developed in the 30’s by Alonzo Church (who received his PhD at Princeton under Oswald Veblen, the nephew of Thorstein Veblen, the famous economist who coined the term “conspicuous consumption”).. They have essentially repurposed the skills used since antiquity to manipulate numerical puzzles, like building magic squares or spelling out the tetragrammaton, to the task of inventing clever procedural manuals. It is they who decided to call the manuals algorithms, after a ninth century Persian mathematician named Muḥammad ibn Mūsā al-Khwārizmī33. He was one of the first to write about the use of zero as a placeholder in decimal calculations. The word algebra is derived from the title of a book, Al-jabr wa'l muqabala, that he wrote while staying at the Bayt al-Hikma (House of Wisdom) in Baghdad during the Islamic Golden Age..

A magic square installed at Gaudi’s Sagrada Familia.

A magic square installed at Gaudi’s Sagrada Familia.

The Concretists are a sect of Austro-Hungarian savants who think more or less like postmasters anyway44. The Austo-Hungarian polymath John Von Neumann is credited with inventing the computer architecture we still use today, about which he published a paper in 1945, though other work had been done on very similar designs as early as the 1936. In all fairness, Von Neumann was a good example of someone who excelled at theory and practice.. They do most of the actual typing and testing of the manuals.

Ideas generally flow from the Abstractionists to the Concretists, where they’re either put into practice or found impractical.

The first postal system was designed by a Concretist named Helmut. He set up a filing system where all the index cards were organized alphabetically55. I should point out that, to computer scientists at least, the alphabet is freely translatable back and forth between a given letter and the number representing that letter’s position in the alphabet. I will use words like “order,” “higher” and “lower” to refer to alphabetic position throughout this series. in one big drawer. The instruction manual for finding cards went something like this:

Adalina, on her way to the office.

Adalina, on her way to the office.

(1) draw the lowest card you haven’t drawn yet;
(2) repeat with the next highest card until you find the right card or run out of cards.

The system worked pretty well for cards in the first few letters of the alphabet, but it could take quite awhile to find something addressed to Monsieur Zelazny.

Adalina66. This is, as some of you already know, an homage to Ada Lovelace, bluestocking, pioneer of computation and daughter of Lord Byron., a talented young Abstractionist, was quick with a fix. She sent a new set of instructions that read:

(1) draw the middle card;
(2) if this is the card you are looking for, stop;
(3) if this is the only card left, stop;
(4) if this card is higher than the one you are looking for, repeat this process using only the lower half of the set of cards you started with;
(5) if this card is lower than the one you are looking for, repeat this process using only the upper half of the set of cards you started with.

The key to this clever answer77. This is called the "binary search algorithm" by computer scientists. is the understanding that many problems can be broken down into smaller versions of the same problem. In this example, the size of the problem is cut in half every time a card is drawn, which means that the number of card-drawings required to find the answer grows very slowly in relation to the number of cards in the drawer88. How slowly? The number of card-drawings required is 1 + log2N, where N is the number of cards. For those of you who aren’t terribly fond of numbers, this means that for a deck of one million cards the largest number of card-drawings required (that is, the worst case) would be twenty..

A postmaster in the act of filing.

A postmaster in the act of filing.

This trick of building a divide-and-conquer strategy by feeding the results of a process back through itself is one of the occult secrets of computer science. It’s called recursion99. There are non-recursive versions of many divide-and-conquer strategies, but the recursive recipes are often the simplest, clearest ones., and is one of a pair of a concepts that are often described — even by some who should know better1010. To be fair, I agree with much of what Joel has to say about how badly computer science is taught. — as difficult and murky and maybe only understandable through the use of a specialized brain-part that some are born without.

The truth about recursion, though, is that it’s one of the things we get for free by having a human brain. Our linguistic facilities depend on recursive processing to understand complex sentences1111. See: Noam Chomsky, specifically the Chomsky hierarchy. like, “Molly went to a class where the professor lectured on philosophy while, unbeknownst to him, his pink polka-dot boxer shorts were visible through his unzipped trouser-fly.” It just takes a little practice to get used to using it consciously.

In the next part we’ll have a look at another concept that’s often described as a bugbear.

[del.icio.us] [Digg] [Facebook] [Google] [Reddit] [StumbleUpon] [Technorati] [Twitter]