In this article on the British Computer Societies website Neil McBride talks about the death of the Computing Science departments. He makes some good points but on the whole I think his arguments are a little muddled.
In essence he is correct. There is little or no need for computing scientists. Let me make this clear (as McBride) does not. There is a need for programmers and engineers but not scientists. Scientists propose hypothesis and then seek to prove/disprove them. There has never been enough work for these 'scientists' in academia so they have often ended up going in to industry looking for work. Often people took computing science degrees thinking they would become good programmers (or engineers as I prefer to call then). They were sorely mistaken. I would go so far as to say they were mis-sold their degree.
Many degree grade computer scientists I have worked with as engineers had muddled technique, poor design skills, poor requirements gathering skills, poor team work skills, little knowledge of the cutting edge of the field and were over confident of an 'engineers' ability to deliver code. I think this is a direct result of both poorly taught and structured degrees.
This has been a complete disaster for the software industry. You can not apply the tools of science to tasks that require engineering. Engineers seek to build solutions that fulfill a role. They build on top of the work that scientists do but they use their own methodologies that are very distinct from scientists. Engineers seek to prove that their proposed solutions are fit for purpose. This is no less rigorous then the proof from a scientist but often the problem domain they work in is far greater. Scientists work to limit the scope of their experiments to prove pure facts, to reduce the number of variables and the generate as clean data as possible. Engineers work in real world environments where they seek to 'comprehend' variables. They understand that in the real world variables often can't be removed. This no less of a challenge then that scientists face but it is a very different challenge.
McBride is correct that the landscape of work that programmers are doing has changed significantly in the last twenty years. This has marginalized the usefulness of scientific skill and shown that as an industry the number of engineers is severely lacking.
There is still a great deal of academic work to be done in the field of Software Engineering. We need an order of magnitude jump in productivity as we saw moving from assembly to higher level languages. We need this soon as the cost of software is rising too fast to be sustainable.
The computing science degree should have died 20 years ago. The software Engineering degree desperately needs an injection of life as no commercial organization is working toward the order of magnitude leap we need.
