CACM Letter opposing APCS Change

The following letter was published in the Communications of ACM, volume 38, June, 1995, on pp. 116-117.


We recently learned that the College Entrance Examination Board has decided to redesign the Advanced Placement Examination in Computer Science so that AP courses will be forced to switch from Pascal to C++ starting around 1998. The ACM should intercede in this process, which is badly lacking in accountability.

Setting a national exam in Computer Science is unlike doing this in calculus or French, where there is a long tradition and general agreement about the topics to be covered. In Computer Science, it is simply not the case that there is consensus about an appropriate language for the first-level college course. However one tries to minimize the impact of the AP exam, the CEEB is imposing a new national curriculum with this change to the AP exam, a curriculum that is being driven by a small committee of advisors to the AP program.

There is something seriously amiss with a process that can mandate such a change in Computer Science education with so little accountability. To put this in perspective, consider that the joint committee chartered by ACM and IEEE to prepare guidelines for the undergraduate curriculum in computing (Curricula 91) did not see fit to mandate any particular programming language for the introductory computing course, despite widespread participation and feedback from the professional organizations.

Compared with Curricula 91 and previous ACM curricula, and with the ACM recommended curriculum for high schools, the AP exam is a much more immediate constraint on Computer Science education. Few high schools can mount more than one second-level Computer Science subject, and this is by necessity almost always the AP course. First-level high-school subjects, in turn, are often designed as preparation for the AP course. On the university side, the introductory course is often constrained to build upon students' high-school background, and so is seriously influenced by the AP course as well. The result is that an exam whose agenda is dictated by a small committee has an enormous practical effect on US Computer Science education.

Beyond our concerns about the nature of the decision-making in the AP process, we have deep reservations about the wisdom of a mandated switch to C++. Even Owen Astrachan, chief faculty consultant to the 1993-94 AP exam development committee, calls the impending change to C++ "frightening." Pascal, the current AP language, is compact and designed around a small, coherent set of principles. C++, in contrast, was designed to meet industrial rather than pedagogical goals. It does not have a simple, coherent, conceptual model. It is difficult for teachers to present it consistently through a course without talking a lot about exceptions. Moreover, switching to C++ isn't just switching languages -- it is switching to a programming paradigm of object-oriented programming and object-oriented design. That is a huge change. Even universities and colleges are still grappling with it, and the material is both unstable and tricky to teach.

There is skepticism that C++ can be effectively taught at the high-school level at all. At the very least, teachers and students will be forced to work with an enormously complicated tool, large portions of which will be mysterious to them. These mysteries of the language will inevitably rear their heads as students write and debug programs, and there is little experience with or understanding of how much of C++ a teacher needs to master in order to use it as a teaching tool.

We appreciate that there are legitimate pressures to move away from an exam based entirely in Pascal. It is arguable, in fact, that Computer Science changes too fast for the AP exam to be tied down to any single language for a long period of time. A better design for the AP exam might be to test fundamental concepts in a language-independent format, and to maintain an approved set of perhaps four different languages from among which students could choose to demonstrate programming knowledge. One of the problems with a sudden mandated switch from Pascal to C++ (or any other language) is that it causes enormous transient stress on schools and teachers. A better system would be to let natural forces dictate how languages should be added to the approved set and how long they should be retained.

We understand that multiple-language formats for the AP exam have been suggested previously, and that they have been rejected on the grounds that they would be too expensive to design and administer, or that school systems should be "protected" from the responsibility of choosing which language to teach. This again raises the question of the accountability of the process by which the exam is developed. Perhaps an organization other than the Educational Testing Service could create a multiple-language exam in a more cost-effective way. Or perhaps the ACM might even recommend that it would be preferable to have no Computer Science AP exam at all, rather than mandate a switch to C++.

We urge the ACM, through its Education Board and through SIGCSE, to open a dialogue with the College Entrance Examination Board, aimed at both the immediate issue of the planned switch to C++ and the longer term issue of accountability of the process. We urge ACM members to express their views on these issues through the SIGs, through other professional organizations, and also directly to the College Entrance Examination Board.

Sincerely,

Hal Abelson
MIT

Kim Bruce
Williams College

Andy van Dam
Brown University

Brian Harvey
UC Berkeley

Allen Tucker
Bowdoin College

Peter Wegner
Brown University