A Response to the 2007 LACS Curriculum

Rahul Simha

When President Truman said "Give me a one-handed economist" he was musing about the confusion wrought by experts who see all sides of a problem and advise "On the one hand ..., but on the other ..."

Fortunately, the 2007 Curriculum is an exemplar of clarity, written by a sure and competent hand. The curriculum outlined has many good ideas that are attentive to the concerns of liberal-arts colleges and, just as importantly, cogently laid out in an eminently readable article. The authors make a strong case for introducing the functional paradigm early while at the same time accomodating alternative paths to that introduction. The curriculum is appropriately language-free, and carefully strikes a balance between requiring core material and leaving room for curricular experimentation. Similarly, the new software course seems like the right place to have students learn key concepts in specific content areas such as networks or databases in the context of developing applications with software engineering principles.

So far so good. However, it's also fair to say that the center of gravity of this curriculum is that indefinable combination of functional-language and discrete math we all recognize as very "academic computer science-y". I wonder what the curriculum would have looked like if designed by people with strong interests in systems or scientific computing, to pick two areas. In this sense, the 2007 Curriculum may have missed an opportunity to accomodate a wider view of our ever-changing discipline.

I'm going to make four suggestions, the first three of which are straightforward:

The first two suggestions above are infused with the less obvious subtext of disciplinary ownership. We should remember that we in Computer Science voluntarily gave up ownership of numerical methods to physics and math, something that came back to haunt us with computational science. We shouldn't now give up embedded systems entirely to electrical engineering. At the same time, we should start to lay stronger claim to those parts of mathematics relevant to Computer Science. (Using the name "Foundations" is a great way to start). I'm hoping that one day we will also pay attention to the common core of continuous mathematics that underlies exciting new algorithmic developments in machine learning, statistical NLP, simulation and robotics.

Lastly, I want to focus on the timing and, consequently, scope of this curriculum, which will lead to my fourth suggestion. As a discipline, we are now in a bit of a funk nationally: we've seen a dramatic downturn in enrollment and, perhaps even more worrisome, we sense that CS no longer has the cachet for high-school students that it once had. We seem to need new ideas to both grow student interest, especially among female students, and to reassure parents anxious about outsourcing.

So, my final, slightly fuzzy, suggestion is to see whether we can use the release of this curriculum as a way to ignite a wider discussion about the state of our discipline. One way to do this might be to put together a website whose centerpiece would be the curriculum (and perhaps other, ABET-related curricula). Apart from collating and annotating useful CS-education related links and resources, the site could serve many related purposes, among which is to re-imagine the role of CS in the university:

I know - much of this discussion is already taking place in venues like Snowbird and SIGCSE and, of course, in our own corridors. I may be merely groping for a way to somehow organize these efforts to dovetail with curriculum discussion.

Since I started with a quote, I'll end with one, hopefully relevant, from sociologist Alvin Toffler: "You've got to think about big things while you're doing small things, so that all the small things go in the right direction."