Showing posts with label education. Show all posts
Showing posts with label education. Show all posts

Monday, April 16, 2007

Semantic Web and The World is Flat

I am now reading The World is Flat, one of the best-selling books written by Thomas Friedman. This book is way too long and I have read only half of it. But the main idea is already clear---the world has been flattened by new technologies. The rest of this paper is about how to face this new challenge, which is more controversial than the first half.

Debates about this book are intensive. For example, Matt Taibbi had made a strong critique about this book. Certainly, there is also much applause, such as this one from Tim O'Reilly.

In general, I believe in the thesis of this book, i.e., globalization is an unstoppable trend. Many old barriers are broken due to the revolution of new technologies, among which the most significant one is the World Wide Web. WWW connects people in the world to a new level. This is a level that our antecessors dreamed for centuries but never had been true until the prevalence of World Wide Web. Certainly that things like outsourcing, offshoring, and supply-chaining may still happen even without WWW. But they might never have been so widely understood and thus accelerated in the global scale without WWW. Therefore, WWW is not just a flattener. WWW is the most essential flattener because it delievers the knowledge of flattening to the global scale.

Semantic Web is a new stage towards a more flattening world. It is going to break the barrier of communication to the instance data level. On the W3C-proposed Semantic Web, the world is going to be so flat that even a child can dig a fact as deep as professional domain experts. So what will be the challenges in a very flattened world if a less trained child may do something as good as professional experts? Does it mean the education becomes less and less important? That people wouldn’t need an MBA degree or an Ivy League business education? The answer, however, is simply the opposite.

Flattening does not solve everything. In fact, it solves much less than we expect. Flattening only brings the same problems to a different level, which requires higher (instead of lower) level of knowledge. For example, before flattening, a manager needs to know how to divide his work to his workers. These workers are often local, and managers and workers are often well-known each other. Furthermore, because these workers are local, there are fewer choices this manager can make. Fewer choices also means, however, less work to the manager. On the contrary, in a flattened world, this manager knows that his work can be done piece by piece in a global scale. The manager has plenty of choices to select these pieces. The challenge is, however, which pieces may perform better than others in his framework. Moreover, it is nontrivial for a manager to integrate these scattered pieces together, which is the so-called work flow. These requirements demand much higher professional knowledge to the manager than before.

In abstraction, the process of flattening is the process of dividing tasks into tiny pieces so that it could be done by cheaper labors. This is why flattening leads to more and more outsourcing and offshoring because more and more previously complex tasks now can be done by multiple simpler tasks. But this classic divide-and-conquer method does not really solve the complexity of problems. It only leads the complexity to an upper level, or it only shifts the complexity to a different side. When it decreases the complexity of single task, it increases the complexity of integrating these simple resolutions to a complex resolution. In general, the total complexity of an original problem is neither decreased nor increased. It only matters where we load it.

Therefore, more and more outsourcing and offshoring means the requirements of more and more integrators, orchestrators, and explainers. This has been predicted by Thomas Friedman in his book.

The prevalence of Semantic Web will result in some fundamental changes on Computer Science education. When the barrier of data is eventually broken, we need fewer and fewer middle-class programmers that are trained by the current Computer Science education. Most of the end-point programming tasks will be so simple that they could be done by less professional programmers. In contrast, we need more and more high-level software architects that know how to integrate these low-level programs to be a uniform product that can solve some particular problems. This work requires knowledge on programming; it is for sure. But more of it is about art. These software architects will primarily be artists who understand the beauty of the world facts before they dig into the details of integration. They are the ones that Computer Science departments should train and produce.

Monday, February 12, 2007

article review: The Death of Computing


Neil McBride recently wrote an interesting article titled "The Death of Computing." In the article, Neil foresaw the decline of Computer Science, due to the decreasing interest about Computer Science from the student side.

By reading this article, it brings me a memory back to the early 90th, when the hype of Computer Science barely started. I was a colleage student majoring on Mechanical Engineering at the time. In 1990, I thought Computer Science was interesting but it was not a real branch of "science" to work on. It seemed to me that Computer Science was nothing but a tool for varied scientists, engineers, or even normal people. Everybody might need to know something about computer and basic programming. But only very few people were really needed to develop these softwares.

This type of thoughts were soon overthrown by the hype of Computer Science, especially the hype of World Wide Web at the rest of 90th. Computer Science became a word that was vogue, modern, and high technical. Even myself, I have changed my major from Mechanical Engineering to Computer Science. I must say that CS is really an exciting field. Comparing to the traditional research fields such as ME, CS grows much faster and it is full of chances for young researchers to explore.

But now, what has happened? Why suddenly CS has been foreseen to its death. I believe a problem of current Computer Science education is that it mixed SCIENCE with TECHNOLOGY too much. For many students, it seems that CS education equals to the programming education, which is completely wrong. This article addressed this important problem, though the author was too pessimistic to the consequence of this problem.

Back to my understanding of CS on the early 90th, CS was about programming languages and theories for a period of time. It was because at the time programming languages were not mature enough for other research to move forward. Essentially, programming languages are the basis of computer science research because we need programs to verify theories. But it is incorrect to limit CS being programming only. To its end, Computer Science is about how to simulate human thoughts using machines. This is a field that probably has no ends. Programming for Computer Scientists likes the lab experiments for chemists and physicists. Even if physicists or chemists do not know how the experimental devices are built, they can still be great researchers on their fields because building these devices are indeed not the main interest of the research, though these devices are necessary tools to reach the main interest.

I believe the research of Computer Science is repeating the same orbit that had been walked by the other traditional branches of science. During the early stages of physics and chemistry, many researchers had focused their work on developing lab equipments to facilitate the research (and even until now, few researchers still work on this type of study). For students, learning to using these experimental equipments is also an important part of their study, but it is not the goal. The real goal of physics and chemistry is to discover natural laws rather than to build more experimental devices. And this is why their research is named to be "science."

I think Computer Science education should start to address this problem and let students understand the real meaning of Computer "Science." Pure training of programmers is not a proper goal of Computer Science education. In my mind, the training of programmers may need to be handed to individual departments. To the end, the programmers always work for specific domains of work and it is best that they are the experts on both programming and domain knowledge. Unless they work for the domain of Computer Science, it is less valued to train many Computer Science programmers to handle cases on varied domains.