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.