Stanford University

News Service



CONTACT: David F. Salisbury, News Service (650) 725-1944;

Roberts first holder of innovative teaching chair

At a typical Ivy League university, about 25 percent of undergraduates take a course in computer science. At Stanford, that number is 80 percent. Eric S. Roberts accounts for some of that difference.

Roberts, associate chair for education affairs in the computer science department, oversees the teaching of Stanford's introductory computer science courses. Colleagues say that he has played a major role in adopting a number of innovations that have made the courses popular, interesting and accessible to students from a wide variety of backgrounds.

In recognition of his work, Roberts has been named to a new, five-year appointment as the Charles Simonyi Professor for Innovation in Teaching at the School of Engineering. The chair was established with a $500,000 pledge from Charles Simonyi, the chief architect at Microsoft and author of Microsoft Word and Multiplan, the predecessor to Excel. Simonyi received his doctorate in computer science from Stanford in 1977. He worked at NASA Ames Research Center and Xerox Palo Alto Research Center before moving to Microsoft in 1981.

Roberts said he intends to use this added support to:

  • participate in a general review of the core computer science curriculum being conducted by his department;
  • study the possibility of changing the programming language taught in the introductory courses from C to Java;
  • explore ways that Stanford can export more of its instructional materials;
  • work for the establishment of a national repository of computer science educational materials; and
  • write a general-interest book that explains the basic concepts involved in computer science to intelligent laypersons.

A history of successful innovation

These new efforts are built on a history of successful teaching innovations that Roberts has been involved with over the years. These include the use of undergraduates as teaching assistants, switching from an academic to a commercial computer language in introductory courses, and using contests and other methods to make these courses interesting and challenging to students from a wide range of backgrounds.

As the combined annual enrollment in the introductory computer science courses began to rise about five years ago, Roberts expanded a program begun by lecturer Stuart Reges that recruited advanced undergraduates as teaching assistants. Initially, the idea of using undergraduates was a matter of necessity. "There just weren't enough graduate students available to teach," Roberts said.

The department has found, however, that using undergraduates has a number of advantages. They are less expensive than graduate teaching assistants, better able to establish a rapport with introductory students, and more familiar with campus computing facilities and curriculum. Roberts and his colleagues have also determined that the system has a number of benefits for the undergraduate section leaders as well. They learn a considerable amount as they teach. Even though only about 25 percent of computer science majors participate, the section leaders develop strong personal connections that benefit the entire undergraduate department. They also become role models for younger students and a talent pool for future lecturers.

In 1992 Roberts played a leading role in switching the department's introductory courses from a purely academic programming language called Pascal to the commercial programming language C. Stanford was one of the first universities to make this change. To make it work, the department had to develop its own programming environment for C because the students were frustrated by the complexity of C compilers available on the commercial market. Although it was a difficult transition, Roberts argued that it was necessary to make the courses interesting and relevant to students. Since then, enrollments have grown steadily and Roberts has written two successful textbooks that use C to teach introductory programming.

Under Roberts' supervision, the introductory classes have been specifically structured to accommodate students with a wide range of computing experience. Basic lessons are paced so that computing novices can keep up, but they also include numerous challenges to keep experienced students interested. The courses use a grading system that goes two steps above A. The two steps don't count more than an A toward the final grade, but they give advanced students additional recognition for exceptional efforts. The classes also contain a number of optional programming contests.

"These features are designed to encourage individuals to go beyond the minimum requirements of the course, but to do so in ways that do not threaten those who choose to stick to the basic assignments," Roberts said. For those who need extra help, the student section leaders serve as a safety net, providing one-on-one tutoring for those having difficulty.

According to the on-line course reviews posted by Tau Beta Pi, the department appears to have gotten the courses about right. "CS 106A is an excellent course for any major. You can feel it developing your thought processes and the logic you learn can be applied to any area of life and to other classes. The pace is fair, but the material is very challenging, especially if you have no background in programming," wrote one engineering freshman. An undeclared sophomore added, "They seem to have this course down to a science. I recommend it to any student remotely interested in computers."

Designing computer instruction for the year 2000

This year the computer science department has embarked on a general review of its core. The objective, set out by computer science professor and chairman Jean-Claude Latombe, is to redefine its programs in light of the changes that are taking place in the field as it approaches the year 2000. Roberts will play a major role in the effort. "It is not reasonable to say that the core of computer science is fixed and immutable. But to make room for new topics, we have to cut other things out," Roberts said.

As part of the departmental review, Roberts has raised the question of whether now is the time to change the programming language taught in the introductory courses once again, this time from C to Java. Java is a more modern language, with a better tool base, particularly for interactive applications, he argues. Although it would require a major effort, changing to Java would keep the courses at the cutting edge. On the other hand, such a move might be premature, he acknowledges. The Java language may not be stable enough yet to warrant such a shift.

Roberts also will explore ways to position Stanford to export more of its curricular computer materials. "Teaching is very complex in this field. It requires a lot of one-on-one session time. It requires good materials. But a lot of the books available are not very good and the materials available electronically are weak. Most of us involved feel that we must develop these things for ourselves. There is no way that we can review and vet things on the web so that we can understand what we are getting," he said.

As the department builds new instructional software tools, however, it will be in a position to provide them to other institutions on a subscription basis, Roberts suggests. The fees could be set to cover the costs involved in making the material available and providing assistance to outside users.

The computer scientist would like to see top universities each take responsibility for maintaining and updating different parts of the computer science curriculum. The materials that they generate could be placed in a national repository and made available to all schools with computer science courses. This suggestion was made in a study of computer science education by the National Science Foundation that was completed last year. Roberts intends to use his position on the education board of the Association for Computing Machinery and as information director for the association's special interest group on computer science education to push for this goal.

Roberts argues that efforts to make computer science education much more efficient are needed because the field may be headed into another period like the early 1980s, when industry demand was so strong that it was impossible for universities to fill all the computer science positions that they had open.

"One of my long-term disappointments is that I can't get more of our best students to go on to get their Ph.D.'s," Roberts said. It is natural that most computer science students go on to industry, but enough have to choose academic careers and teach future generations of students or the entire industry will begin to stagnate due to the lack of trained people. Centralizing educational materials is one way to address this problem, he said.

Another project that Roberts will work on is a popular book about computer science. "I have a goal of my own to make computer science more understandable to the public. I don't mean the public as a whole, necessarily, but the educated public, people who are interested in ideas but who have somehow missed what is this computer revolution that is going on," he said.

In sharp distinction to the racks of how-to books with titles like "DOS for Dummies" or "Internet for Idiots" that one now sees in the bookstores, Roberts' goal is to write a book about computer science and the intellectually exciting ideas that it encompasses for creative people who are not afraid of a challenge. The book will be accompanied by web-accessible resources; this reflects his conviction that understanding computer science is a "learning by doing" process.


By David F. Salisbury

© Stanford University. All Rights Reserved. Stanford, CA 94305. (650) 723-2300. Terms of Use  |  Copyright Complaints