## Tuesday, May 24, 2005

### Do we really need more students in CS ?

Michael Stiber and Daniel Lemire ask the seemingly counterinituitive, but interesting question: "Do we really need to admit more students in computer science". The points they make are valid:
• there isn't really that much of a demand for CS degrees, especially with outsourcing trends, and business leaders clearly have a vested interest in hyping a 'scarcity' of students (a glut in supply keeps wages low).
• Much of the recent drop is a descent from the heights of the late 90s, when anyone who could type wanted a CS degree: this may reflect a natural 'return-to-normalcy' in computer science
• Do universities really want to be in the business of training students in "IT", or giving them a CS degree ?
It's a good question to ask, and it at least seems that the downward trend in computer science is being counterbalanced by an upward trend in areas like biotech, reflecting the shift in perception of what is 'hot' right now.

However, from a strategic and tactical point of view, this question is a disastrous one to ask. As has been noted in many places in the last few months, we are now facing a significant funding crisis in computer science. Most traditional sources of funding for computer science are drying up, at possibly the worst time for this to happen, when American competitiveness in the global intellectual market is being called into question. If we convince ourselves that a drop in interest in computer science is part of the normal course of things, we will never be able to convince anyone else that they should allocate funding for our work.

As a computer scientist, I am of course biased, but I do believe that the technology revolution is not over yet; rather, we are at the end of the beginning. There is ample room for serious innovation and creative thinking in computer science, and if computer science enrollment (as indicative of a general lack of interest in the field) is dropping, the question to ask is not
Is this a bad thing ?
but rather
What do we do to rectify this trend ?
Daniel has argued in the past that it is our responsibility not to send Ph.Ds out onto a market that cannot sustain them, and therefore slowing down the pace of research is not necessarily a bad thing. In my view, this is a different problem, one that is better addressed by restructured funding at the grant level. Moreover, the steady decline in funding is being accompanied (paradoxically) by an across-the-board surge in paper writing, as academics struggle harder and harder to distinguish themselves from their peers in order to get the funding crumbs still available.

But CS enrollment decline at an undergraduate level is reflective of a deeper problem (as Michael points out, one of these is an increasing gender disparity) in computer science, a perception that the field is not interesting or vibrant any more. This perception directly feeds into political perceptions at funding agencies: if there is nothing interesting happening in a field, and people are not going into it, why fund it ?

I believe that computer science is going through a crisis of definition right now. The internet years caused an explosion in the field, and demand for CS majors was so high, that curricula became fairly fluid, and companies were willing to snag CS grads and train them in whatever skills they needed. But now, as companies are cutting back, they are less willing to take someone with no programming skills and training in real software development, and I have heard of at least some companies that are now leaning on university programs to tailor their bachelor's degrees to be more 'IT friendly'.

There is far more that can be said on this topic, and I had wanted to post a longer note about it. But it is something that departments everywhere must be pondering right now. On the one hand, you can make a degree program produce graduates that are more employable, but you veer dangerously close to the 'vocational training' edge of the cliff, or you make a degree program more grounded in rigorous training, (essentially what we have now), and continue to lose students to other programs because the CS degree they could get is not 'marketable'.

1. "you can make a degree program produce graduates that are more employable, but you veer dangerously close to the 'vocational training' edge of the cliff"

How do the other engineering fields deal with it? Electrical/mechanical/chemical?

"the field is not interesting or vibrant any more?"

How can the "field" possibly have changed from interesting and vibrant to not, in five years? Maybe the marketable part has but then that's the vocational part, too, right?

Posted by Mitch

2. I can only speak for my department, but yes, we are grappling with this issue, and my understanding is many other departments are as well.

I think one dramatic problem is the perception that computer science is programming, and people who major in computer science become programmers. This perception indeed reinforces the negative view that: 1) computer science is not a vibrant, interesting field and 2) that computer science jobs can just be outsourced away.

I think as a field we need to do a better job clarifying that computer science is about a lot more than programming, and that the skills learned in the major can apply well in other areas. I keep hearing that computational biology (or informatics, or whatever the variant currently is) is the next big thing -- but I see very few biologists taking the standard programming course, and sadly almost none taking the course I teach, algorithms and data structures. Where are these computational biologists learning about computation? They should be coming to us. Many CS majors I know go on to law school, consulting, or business, and I always hear that the thinking process they learned in computer science (I guess the basic ideas of logic, rules, algorithms, etc.) are extremely useful. We could and should surely have more CS majors going into non-programming fields.

There may eventually be a real shortage of jobs for programmers in the US. But here at Harvard, we get plenty of people who major in math and physics, where there's been a real shortage of jobs for a long time, never mind what my brother (who majored in psychology and history) likes to call "useless majors", like psychology and history. (He's now on the business side at -- you guessed it -- a technology company, after years of learning a lot about technology post-graduation.)

We have yet to come up with greatly compelling solutions to the problem of declining enrollments in my department. I'm eager to hear suggestions.

Posted by Michael Mitzenmacher

3. We need to make a distinction between short and long term issues here. Short term issues are only important if they endanger long term issues; long term issues are fundamentally important. Part of the reason I don't see the dropping enrollment as an issue is that I've seen it all before. A boom/bust cycle has been quite common in other engineering fields. I think this is merely a sign of our field's maturation, indeed "the end of the beginning". Ditto for the funding situation.

Rather than try to stick a band-aid on the matter (or, put in a more computing style, patch it), it may be better to allow it to run its course. Enrollment will come back. Funding will come back. Let's concentrate on the fundamentals: restoring our gender balance, clarifying the distinction in students' and industry's minds between immediate marketability and durable careers, concentrating more on important research questions than on building flashy systems that never see the light of day.

Posted by Michael Stiber

4. Michael Stiber:
"Let's concentrate on the fundamentals: restoring our gender balance, clarifying the distinction in students' and industry's minds between immediate marketability and durable careers, concentrating more on important research questions than on building flashy systems that never see the light of day.  "

Amen to that. This I can agree with.

Michael Mitzenmacher:"I think as a field we need to do a better job clarifying that computer science is about a lot more than programming, and that the skills learned in the major can apply well in other areas"

Exactly. I feel (and want to write another post on this) that durable metaphors for computer science are lacking. Pointing out applications is a good thing for funding agencies, but at least in theoretical work there are underlying principles that need to be spread more.

Posted by Suresh

5. I think that the real problem is that there is a big knowledge and attitude gap between industry and academia.

Think of the average CS graduate trying to apply for jobs. What most employers want is someone who can write code. The better type are interested in someone who knows algorithms. The absolute top, such as Google want smart people', which they test by asking interviewees to solve puzzles.

So the real problem is that good academic training, which prepares a student to think for himself and creatively, is not really valued by most employers. Thus, for most people, learning stops after leaving the university. How many software engineers know the best algorithms for the many problems they solve on a daily basis?

I just ended my job search, and was told time and again by prospective employers that I should expect to do a lot of quick and dirty' implementation. I was interviewing with investment banks and hedge funds---they also like to hire smart' people from mathematical fields. Now these firms are top' employers like Google and value creative and rigorous thinking. Not surprisingly, they hire a lot of PhDs. However, most of these people end up with atrophied brains---otherwise the financial industry would not keep repeating the same old mistakes. They stumble over things that financial economists keep warning them about. There is a very clear gap between the best experts in academia and the best practitioners in this otherwise highly competitive and nimble industry.

There seems to be this perception that in industry it is not possible to implement the best possible solution. It certainly seems that anyone who intends to maintain a reasonable work-life balance eventually has to give up on trying to do a `perfect' job. Therefore, it is not surprising that most products are not very well designed, or at least could be better designed.

I think most people view the university merely as a place where they can get a piece of paper that is going to be their ticket to a better paying job. It is not viewed as a place where they can become better thinkers. Therefore, these qualties are not valued by industry, or indeed the society at large. Hence, there shall always be this problem of funding for some research area of the other: the world at large does not recognise as valuable what is the most important feature of academic research, creativity and mathematical rigour.

I personally think that mathematical training---and theory CS is nothing but discrete Mathematics, to use an unfortunate term---is the best preparation for any thing that involves thinking. All these problems, should there be more students or less, how to publicise our field, will go away once clear, logical and precise thinking is valued. This is where one should begin.

Posted by Sanatan Rai