A new jeremiad foretelling the doom of computer science as an academic discipline has just been published by the British Computer Society. It’s by Neil McBride, principal lecturer in the School of Computing, De Montfort University, Leicester.
Some of what McBride says strikes me as breathtakingly wrong-headed:
Now vastly complex applications for businesses, for science and for leisure can be developed using sophisticated high-level tools and components. Virtual robots—Zooks—can be created by eight-year olds without needing programming, logic or discrete mathematics skills. Web designers build complex business sites, graphic designers build animations, accountants assemble business systems without needing to go object-oriented.
Computer science has lost its mystique. There is no longer a need for a vast army of computer scientists. The applications, games and databases that students once built laboriously in final year projects are bought at bookshops and newsagents.
If I understand this argument correctly, McBride is saying that computing (and in particular software development) has become so easy that there’s no longer a need for any sort of formal curriculum. Any eight-year-old can do it, or even an accountant. I wish I could believe that, but in fact I’d be inclined to argue in exactly the opposite direction: Computer science is in trouble not because all the big problems have been solved but because the problems are so hard that no one has a clue how to make any progress. In computing theory, the P = NP? question has been out there for almost 40 years, with no sign of resolution. In engineering, large software projects routinely run over budget and behind schedule. At a more personal level, maybe eight-year-olds in Leicester can conjure up virtual robots at will, but the rest of us struggle with computing environments that still seem overly complex, fragile, unreliable, inconsistent, and just plain buggy. I see no shortage of challenges for computer science.
Still, the underlying question is not to be shrugged off: Do computer science departments have a future in the university? Enrollments are down, and chairs are fretting about funding and the head count. Students, meanwhile, worry about finding a job. Those who began their education in the era of IPO frenzy have graduated into a more-somber world. (But James H. Morris and Peter Lee resist blaming it all on the boom-and-bust cycle in Silicon Valley; they point out that undergraduate enrollment peaked in 1987, and thus it was already falling long before the vulture capitalists began picking at the bones of dot-com failures.)
A few years ago, a committee formed by the National Academy of Sciencies and chaired by Mary Shaw of Carnegie Mellon University issued a spirited defense of computer science as a free-standing, independent area of research, distinct from mathematics, engineering and all other disciplines. More recently, Bernard Chazelle of Princeton University has been carrying on the campaign in a series of essays, editorials, and panel discussions. The following Q&A comes from a press release issued in advance of a panel discussion at the AAAS meeting last year:
Isn’t computer science really just a stepchild of mathematics?
As the recent breakthroughs on Fermat’s Last Theorem indicate, the field of mathematics has never been more fertile with new ideas. Mathematics is original and deep, but it does not force you to think differently. If a math giant from the past—someone like Gauss—were to come back to Earth, he would have a lot of catching up to do but he would find that math is done much the same way that it was done during his life.
Computer science, by contrast, is a new way of thinking, a new way of looking at things. For example, mathematics can’t come near to describing the complexity of human endeavors in the way that computer science can. To make a literary analogy, mathematics produces the equivalent of one-liners—equations that are pithy, insightful, brilliant. Computer science is more like a novel by Tolstoy: it is messy and infuriatingly complex. But that is exactly what makes it unique and appealing—computer algorithms are infinitely more capable of capturing nuances of complex reality in a way that pure mathematics cannot.
“Stepchild”! That one word says it all. There’s a whole Tolstoyan novel in it, or maybe a Henry James, or at least a Grimm Brothers fairy tale. Computer science is the poor relation, the orphan, the foundling—taken in by a grand family but never taken seriously, never allowed to forget its doubtful origins. Or else computer science is the arriviste, the rich American cousin with too much cash and too little taste, who tears down the mossy old manse and puts up a spiffy new house designed by Frank Gehry. Or do we have a tale of sibling rivalry—the two children with different visions of the future for the family firm, neither of whom can ever feel secure in the love of a cold and distant parent?
I don’t know how this tear-jerker will end. Without sectarian violence, I hope. In a sense it’s none of my business, since I’m not a member of either department. But I do have to say that the idea of being asked to choose between mathematics and computer science is preposterous. If I were pleading this case, I would emphasize the connections between those fields, not the distinctions.