Thursday, April 4, 2013

Smallest Manageable Tasks and Algorithmic Thinking

If you believe the Wikipedia article on "Algorithms," then there "is no generally accepted formal definition of "algorithm," but "a set of rules that precisely defines a sequence of operations" would be a good informal definition. The article also gives a more precise definition, namely that "an algorithm is an effective method expressed as a finite list[ of well-defined instructions for calculating a function. Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing 'output' and terminating at a final ending state." Even today, most people think of algorithms as exclusively in the context of computers and computer science. Yet, algorithms pervade much of our current thinking and problem solving—even if it is unrecognized. The phrase "smallest manageable tasks" belongs to this kind of thinking. In fact, the advice to break complex overwhelming tasks into small manageable tasks, and then starting on the first one suggests that we should approach "getting ahead" algorithmically (if that is a word).

Many people are opposed to this way of thinking because they believe it dehumanizes us. I don't believe this is true. In fact, I believe that Steve Jobs got it right when he said that using a computer teaches us to think in a different way, "using them to be a mirror of your thought process, to actually learn how to think. ... Everybody in the country should learn how to program a computer ... because learning a computer language ... teaches you how to think. ... I view computer science as a liberal art, it should be something that everybody learns; [it] takes a year of their life, one of the courses they take is to learn how to program" (Robert X. Cringley’s “Steve Jobs: The Lost Interview”).

Approaching problems algorithmically can be helpful. This certainly also holds of note-taking or note-making, as Luhmann and others I have discussed here knew even before computers became widely available. Taking notes on index cards, restricting each card to one fact or idea, and then trying to extract meaning from them were attempts to analyze problems algorithmically. Whether the algorithms devised for this process were good is, of course, a different question.

It also seems to me that the last step, that is, the extraction of meaning, was usually not algorithmic.

No comments: