manifesto: the demise of the computer science degree

Author: admin  //  Category: Uncategorized

I know an awful lot of computer people, i.e. people with college degrees in computer science or computer engineering.  Some of them are very intelligent; many are just smart enough to have gotten outsized ideas of their brilliance.  One of their favorite things to do, as a group, is to comment on any difficulties I may be having with my work, a fondness that is in no way diminished by their having no idea what I am doing, what it entails, or why I am having trouble.  So I will be having trouble with the fact that, say, my system of thousands of interdependent equations has a metastable solution and I need to find the stable solution, and they will tell me how if I use an editor that color codes different parts of speech I can easily figure out when I've misnamed a variable, and that this will fix everything.  This annoys me because (1) it does not help, (2) usually they are telling me such things when I am trying to do something else, like eat dinner or have sex (yes, I date computer people, more or less exclusively… this is not recommended unless you have a very high tolerance for geekery), and (3) I have a very low tolerance for being treated like I am stupid.

The other thing that is starting to annoy me is the very concept of a computer science degree.  Not because I don't think there is anything valuable about computers that I don't know, but because the people I know who know the most of that sort of thing didn't learn it from computer science courses in college; they learned it in their jobs, or in their physics or chemE classes, or through their reading.  What is computer science, really?  It's (1) a collection of languages, most of which are basically English with some vowels removed, (2) a logical grammar with variations, and (3) a lot of technical knowhow.  Technical knowhow is not exactly what a real university education is about; it is the domain of certifications and workshops and manuals and, mostly, sweating it out until you know how to do it without sweating.  Of course, there are many advanced programming ideas that I have never really understood, like why it is necessary to do it while wearing a rancid t-shirt dating from 1993, but are there really a whole degree's worth?
In the past, a computer science degree was a big deal because nobody who wasn't technical knew anything about computers.  Even physical science majors graduated from college with only a rudimentary understanding of one or maybe two programming languages.  But things have changed a lot in the last ten years, and they are only going to change more and faster as today's teenagers hit college and then the work force.  In ten or twenty years, everyone will be a computer person.  All those twelve-year-olds who write widgets for their facebook pages will be adults, and they won't have computer science degrees because by the time they got to college they will have learned all the stuff in the Intro to Java textbook.  Even their least geeky cohorts will have written web pages related to projects for their high school classes.  And computer science classes will change, because basic programming is increasingly something that most people in most fields need to know.  When I was in college, computer science courses were available only to computer science majors, and the number of majors was limited - you couldn't just switch to the CS major (as I wanted to do temporarily in order to take the classes).  Despite the fact that I majored in physics and math, which are not exactly divorced from technology, there were no computer science courses open to me.  This will not always be the case.  In the future, computer science courses will be offered as a general education option, perhaps as an option in lieu of physical sciences or math, and at colleges where enlightened people are in charge of things, all three will be required to some degree (no, I'm not being anti-humanities… just as you have to take English and history and a foreign language in college, you should have to take physics and math and some sort of intro-coding class).  Presumably high schools will also get a bit more on-board; I took two CS courses in high school (one was required), but I don't think everyone had that option.
My point is not to diminish computer science as a discipline; in fact, the opposite.  Computer programming is an essential skill, and everyone who considers themselves educated should have a basic familiarity with it.  The argument that humanities majors can't learn such things is either patronizing or indicative of the fact that not enough energy has been devoted to developing methods to teach them; the argument that they won't need it is likely incorrect and certainly irrelevant, since the point of a liberal arts degree is not to develop the skills one needs for one's first job out of college but to acquaint oneself with the full breadth of human knowledge, of which computer science and the associated logical and mathematical ideas is an increasingly instrumental part.
There will still be room, of course, for people with a better understanding of computers than even those of us scientists who spend our days programming them. Just as there are now, in the future there will be hardware designers and software developers, mathematicians who write encryption algorithms and scientists who develop artificial intelligences and engineers who work to build smaller, cooler, faster chips.  But while the knowledge bases relevant to these fields are related, they are not identical.  Classing them all in one major (or, in larger schools, two majors - computer science and computer engineering) will become just as old-fashioned seeming as having one major for all the physical scientists.  I think that as more and more non-CS majors develop computer skills, and as more specific and content-driven computing programs develop, the computer science major will become a cipher major (like Philosophy or English or General Science, which they actually had at my university), something that a motivated student can turn into a vehicle for their particular learning quest or a preparation for graduate school, but that on the transcript of an unmotivated student means nothing.

Leave a Reply