Steven Rudich's Position Statement

Computer Science is a sprawling, substantial field. How can we fit everything into a realistic curriculum? A curriculum planning meeting is already an exercise in tact and diplomacy. Everyone wants the curriculum to include the topics that most interest them. It will only get worse. Where do we find room for new topics? What is important?

Making Space

Room at the bottom: High school is a noop. Most Freshman refer to their high school computer classes as "worthless". What a waste! There is no quick fix for American high schools, but the long view suggests hope. Currently, many high schools offer college level calculus. This was not the case 20 years ago. I suggest a national funding priority to produce high quality software for high school education, computer science in particular. The software would be designed with two particularities in mind. 1) It should run on obsolete technology. 2) It should not require a high quality instructor to be of value. There is no off the shelf software that fits the bill-- this is a long term project. Short term we can establish (an easy to navigate) web site with a range of curricular guidelines, software, and bboards designed to help high school computer teachers. It should be relevant enough to be a `bookmark' that they visit often. One well maintained web site could keep all the nation's teachers up-to-date. Another thing to explore is the viability of adding discrete mathematics to the standard high school offerings. There are many good reasons to do so, but it is not clear that the world is ready.

The college curriculum: Some ideas, such as modularity or recursion, are completely fundamental. Most topics are important only in the sense that they serve to convey fundamental ideas. Many topic choices which were appealing and efficient 15 years ago have lost their luster. Fundamental ideas need to be repackaged into topics that capture the imagination of the current crop of students. In this way, we can find adequate space in the curriculum.

This repackaging is not simple. I have been working hard at creating a Freshman course called "How To Think Like A Computer Scientist". My goal is to repackage undergraduate theoretical computer science and discrete mathematics in an appealing and efficient manner. This is quite challenging. One conclusion is that we can't simply give as advice to the nation a laundry list of fundamental ideas to be incorporated into the curriculum. It will take me about three years of work to attempt this for a single course. We can't expect this sort of effort from most college professors. Another point is that important ideas should be introduced early so that they can be revisited often. For this reason, I teach Freshmen about topics such as undecidability and NP-completeness. These topics are appealing to students and provide an efficient vehicle for the fundamental idea of a reduction between problems. This idea is key in solving many programming challenges.

I would be delighted to discuss my course in detail with any interested working group members. From questionnaires given in class, I conclude that the average CS student can be inspired by theoretical topics.

Content

As we struggle to chose the right topics we sometimes experience a conflict. Which is more important--the general, abstract, and eternal, or the tools of the day? I feel strongly about the answer.

General skills which result in superior problem solving ability are not natural. For most students, they are the result of good training. Furthermore, this is last time in their lives that they will have the receptiveness and resources to be trained so generally. It would be shortsighted to optimize their first day on the job in favor of life long flexibility and intelligence.

Sometimes we can have it both ways. It appears that Java might be a reasonable teaching language as well as a hot topic. Sometimes we are not so lucky. In this case, I vote for the general, abstract, and eternal.

Of course, we go too far if physics majors turn out to be viewed as better computer professionals. But this is a worse case scenario. I think that judicious inclusion of topics involving the tools of the day will balance the curriculum enough for our graduates to be hired. In fact, if we do our job right, once they have their foot in the door, our graduates will consistently demonstrate that they are unusual assets in a computer environment based on their problem solving skills.

Conclusion

I have stated my opinion in very general terms. This is because, for me, the crafting of the curriculum requires much time for conjecture and experiment. I have only thought through the details for mathematical topics. I don't want to make suggestions beyond the boundaries of my competence.

We have a real space problem. It is solvable, but the solution is not simple. We will have to craft a curriculum in an efficiency conscious manner. We are juggling many constraints and goals. To be effective, our conclusions need to be presented in concrete and detailed ways. Many of the answers will not be at our fingertips. We will have to look to the nation's leading classrooms to find what is working and what is not.