Tuesday, February 01, 2011

From No Silver Bullet to Computational Thinking

A few literature has influenced the world. Two of them must be "No Silver Bullet — Essence and Accidents of Software Engineering" by Frederick P. Brooks, Jr. in 1986 and "Computational Thinking" by Jeannette M. Wing in 2006. The two-decade time frame in between is one of the most exciting periods in human history---the prevalence of computers. These two distinctive papers represent a remarkable transition of how humans think differently with the rise of the "intelligent" machines. By reviewing history we can know what we need to do in the next.

The year 1986 was remarkable. In the beginning of the year, the Space Shuttle Challenger was unfortunately exploded in 73 seconds after the launch. At the end of the same year, the Chinese government ceased the first student democratic appeal since the beginning of the economic reform. It represented the primary melody of the Chinese policy in the following two decades. Within such a background, Fred's No Sliver Bullet paper seems insignificant. But history does not lie to us. Fred's paper represented the beginning of a very important reform of human thinking in history. In 2006, Jeannette's summary claimed the mature of such a human-thinking reform process.

So what did Fred actually tell in 1986? Beneath the apparently technical debate between the so-named accidental complexity and essential complexity in software engineering, the core of Fred's message was that the origin of these troubles was due to the lack of the real experts who not only understood computer but also were able to think like computers. To be "great" (in contrast to "good") software designers, Fred argued, one must think like computers. We might eventually overcome the essential complexity in software development only if we would have been empowered by such a kind of thinking. In 2006, Jeannette concluded Fred's journey using the term Computational Thinking.

This reform of human thinking is one of the most important events in history. Its impact will last longer than the Chinese economic reform and it is more crucial than the advance of computer technology itself. This event changes how we think, fundamentally!

Before 1986, as Fred pessimistically observed, few people could think like computer. Even till 1998 when I first started writing a C algorithm, my wife (who was a professional computer programmer already at the meantime) laughed at me loudly because I did not have a single clue of what "computational thinking" must be. Today I can still remember her words. "You are writing a parallel algorithm, honey," she said, "but computers can only execute sequentially. Your algorithm will not work." Why was I so foolish? Because in tradition humans used to think in parallel. Now after so many years of writing computer codes, sadly I have to confess that I have nearly lost that original capability totally because I had been trained very hard to think like a computer. Today Fred must not be pessimistic any more and Jeannette is surely enthusiastic. But I feel that, gradually and silently, we human beings are losing something very precious and hard to be earned back. This reform of thinking must be a great evolution. But is it great for computers only or for our mankind as well?

I want to ask a question: is there somebody who remembers how he thought in the pre-computer age? Few, I guess. It is not because you do not remember it after so many years. It is because you are no longer ABLE to remember it. This is the saddest among all the sad.

We, human beings, especially our generation, have been customized by the new way of thinking---computational thinking. We are not only eager in learning it ourselves but also advocating to train our kids to think this way, the way that the machines we create think.

Humans begin to admire and even to worship what are made by man's hand. This is certainly not the first time in history. Computational thinking! What a marvelous term!

What should we do then? I would not suggest us boycotting the tide of computational thinking because it will be hopeless. From No Silver Bullet to Computational Thinking, the history is made.

Instead of fighting against the computational thinking, I advocate reinventing computers. We shall learn how to use computers more effectively. But more importantly, we must teach computers how we think in contrast to make us more and more think like them. Von Neumann started this journey. Let's not cease it. Let's not be the slaves or the pupils of computers. We should be their masters and tutors. Let our thinking be enriched and empowered by the computational thinking instead of being replaced by the computational thinking. This is a destination assigned for the current (human) generation.

No comments: