April 6, 1995
Donald Stewart, President
The College Board
45 Columbus Avenue
New York, New York 10023-6992
Wade Curry, Director
The Advanced Placement Program
The College Board
45 Columbus Avenue
New York, New York 10023-6992
Dear Mr. Stewart and Mr. Curry:
As elected officers of the Special Interest Group on Computer Science Education (SIGCSE), we are writing to you to express our concern about the process that has led to the recent decision by the Advanced Placement Computer Science (APCS) Test Development Committee to change from Pascal to C++ as the language to be used on the APCS Examination.
When the APCS exam first appeared in 1984, there was considerable agreement throughout the computer science community about the content of the CS syllabus for the first two semesters (CS1 and CS2). National task forces, sponsored by the Education Board of the Association for Computing Machinery (ACM), published national recommendations for CS1 and CS2 in 1984 and 1985. These groups worked in consultation with the APCS Test Development Committee, and the APCS curriculum paralleled the CS1/CS2 recommendations.
Further, after much discussion through the early 1980's, computer science educators throughout the country reached a remarkable consensus on the use of Pascal as the appropriate language. While some other languages were used in introductory courses at the college level at some colleges, Pascal was clearly the language of choice at the great majority of colleges for CS1/CS2.
While this consensus continued through the late 1980's, the early 1990's brought a significant increase in experimentation within these courses. Many colleges and universities were searching for new approaches, and the content of beginning courses varied considerably. For example, the national recommendations published by ACM and IEEE in Curricula 1991 identified appropriate topics for CS majors, but these were packaged in a dozen different sets of courses. While some themes were common for CS1 and CS2 in these curricula, the introductory courses outlined in Curricula 1991 show considerable diversity.
Similarly, colleges and universities are showing much more diversity in their choices of programming languages for the introductory CS courses. At the SIGCSE Technical Symposia in the last few years, for example, presentations have discussed many languages for CS1 and CS2, including Pascal, C++, Ada, ML, Miranda, and Scheme. In these discussions, it seems clear that Pascal is becoming less popular, but it is premature to say that another language has taken over as the clear language of choice.
This letter expresses the SIGCSE Officers' concern that the announced change to C++ has not seemed to include the same level of dialog with CS educators that was part of the discussion in the 1980's. While the APCS Test Development Committee may have conducted some informal surveys, the change to C++ did not involve the same level of public dialog seen earlier. Several examples may illustrate the closed nature of this decision.
``Course offerings of the AP Computer Science Examination require the use of Pascal; later offerings may permit the use of other languages as well. Pascal will remain an acceptable language, ... [other] languages too may become acceptable for an AP course.''This statement made no mention of a possible elimination of Pascal, and in fact seems to guarantee Pascal's continued use.
From our perspective as SIGCSE officers, the decision to change to C++ has significant consequences nationally at both the high school and college level.
At the high school level, APCS provides the only national guidelines for curricula beyond general computing literacy. Secondary schools interested in expanding their curricula or looking for direction turn to AP as the only recognized, published recommendations available for high schools. As a result, schools invest in hardware and software, teachers learn and prepare materials. With the scarcity of education dollars, schools may buy textbooks and compilers only with the assurance that ``Pascal will remain an acceptable language, ...''
As new C++ compilers often require capabilities not present on older machines, a change to C++ may require schools to purchase new hardware as well as software. Even schools with adequate machinery will need to purchase all new compilers and textbooks. Teachers of APCS also will need to retrain and to invest considerable time in a completely new set of handouts. It is reasonable to expect that such costs will be beyond the reach of many school districts.
At the college and university level, the change to C++ will make a dramatic difference in the nature of the background of their students. Further, since AP students often are among the best of the incoming students, the change in programming language is likely to affect courses at several introductory levels. CS departments seek to attract the best students available, and every department must rethink its beginning curriculum if APCS students enter knowing a different language.
With the extensive experimentations already in progress in CS courses, a change in APCS to C++ compounds difficulties already encountered as colleges and universities seek to rethink their curricula. A change to a single language C++ without national discussion seems to be counter to the diversity of approaches currently under discussion.
As SIGCSE Officers, we are concerned that the contemplated change by APCS to C++ has strong national implications, but has not had broad national discussion. Further, this change is occurring at a time of great curricular experimentation, with rather little consensus. With this in mind, we ask the College Board to consider the following proposal.
Since the College Board seeks to promote a national dialog between high schools and colleges, we hope the AP program will encourage such open discussion concerning the selection of one or more languages for introductory computer science. A reconsideration of the imminent change to C++ would encourage such discussion and provide an opportunity to move the country forward in its experimentation and dialog concerning introductory computer science.
Thank you for your consideration of this request.
Sincerely yours,
Henry M. Walker, SIGCSE Secretary/Treasurer
with the support and approval of the SIGCSE Board
Lillian N. Cassel, SIGCSE Chair
G. Michael Schneider, SIGCSE Vice-Chair
Janet Hartman, Board Member
J. Paul Myers, Jr., Board Member
Margaret Reek, Board Member
cc: Professor Susan B. Horwitz, University of Wisconsin, Madison
SIGCSE Membership