Jump to page content Jump to navigation

College Board

AP Central

APAC 2008 Call for Proposals
AP Course Audit Web Site
Become an AP Reader
Click for more information about College Board Online Events

Print Page
Home > The Courses > Course Home Pages > And On to Java

And On to Java

by Susan Horwitz
University of Wisconsin
Madison, Wisconsin

Changing With the Times
Computer science is an exciting and fast-moving field, and the AP Computer Science program is moving fast to keep up! Starting with the first AP CS Exam in 1984 (taken by 4,263 students), we have seen a number of important changes:
1988: The exam format was changed; the overall exam was designated the "AB" exam, with one part of the exam considered to be an "A" subsection. (10,618 students took just the A subsection, while 7,294 students took the full exam.)

1992: The exam was split in two; separate A and AB exams were offered. (5,230 students took the A exam, and 4,643 students took the AB exam.)

1996: A case study was included on the exam for the first time. (That year, 6,841 students took the A exam, and 4,722 took the AB exam.)

1999: Pascal was replaced by C++. (A record 12,218 students took the A exam, and 6,619 students -- also a record -- took the AB exam.)
And now (starting with the 2004 exam) C++ is replaced by Java.

Through it all, though, the basic goals of the program have remained the same:
  • Teach computer science, not just programming.
  • Maximize the likelihood that students will receive college credit and/or placement for their AP CS work.
The choice of the programming language to be used in the AP CS course is an important factor in meeting those goals. We need a good "pedagogical" language: one that is not too complicated, that provides good support for beginning programmers (e.g., good error messages and support for debugging), and one that makes it easy to teach important CS concepts such as modularity and abstraction. It is also important to have a language that is available on "popular" platforms (those that high schools have or are likely to acquire), that is widely available and not expensive (again, a practical consideration for high schools), and that is broadly used in introductory courses at the college level.

First C++, Now Java
In the mid-1990s, ETS did a survey and found that C++ was becoming the language of choice in college-level CS2 courses. That, together with a number of other factors (including those listed above), led the AP CS Examination Committee to recommend the switch to C++ that took place in the academic year 1998-99. The response was overwhelmingly positive: about 10,500 students took the AP CS Exam using Pascal in 1998, while in 1999 close to 19,000 students took the exam using C++! And the numbers have continued to grow, with more than 23,000 taking the exam in 2001, and more than 24,000 expected to take it in 2002.

Then came Java. Never before has a new programming language caught on the way Java has. Part of its appeal is that it provides many of the nice features of C++ and is simpler, cleaner, and safer. In C++ it is easy for a student to write a buggy program with errors that are very difficult to track down. For example, in C++ a use of an uninitialized variable or an out-of-bounds array index may have no apparent effect on one run of the program, may cause bad output on another run, and may even cause the program to "crash" on yet another run. In none of these cases is any help provided to the programmer pointing to the source of the error. By contrast, in Java it is not possible to use an uninitialized variable: heap-allocated storage is automatically initialized, and if a program uses a local variable that might not be initialized, a compile-time error message is given. Java also includes run-time checks of array indexes: if an out-of-bounds index is used, an IndexOutOfBoundsException is thrown. In both cases, the programmer knows exactly what the problem is and where it occurred.

The Future of AP CS
Given the fast pace of change in the field of computer science, an Ad Hoc Committee was formed by the College Board in 1999 to address the future of the AP Computer Science program. The Committee debated how the AP CS program could best meet its goals. It consulted experts in the field and considered a number of new survey results (including those published in the Journal of Computer Science Education in April 2000). The conclusion of the Ad Hoc Committee was that the AP CS course should move from an "object-based" approach to a truly "object-oriented" approach (including the fundamental ideas of inheritance), and that part of this paradigm shift should involve changing from C++ to Java.

So here we are, gearing up for the change, learning new concepts and new skills. That's part of the joy of being in the evolving, vibrant field of computer science!


Susan Horwitz is a professor of computer science at the University of Wisconsin-Madison, where she has been on the faculty since 1985. She was a member of the AP Computer Science Development Committee from 1987 to 1997, serving as committee chair from 1992 to 1997. She served as an Exam Reader in 1999, the first year the exams were offered in C++. Also in 1999, her review book for the AP CS Exam was published by Addison-Wesley; a Java version is expected in the fall of 2002.
  MY AP CENTRAL
    Course and Email Newsletter Preferences
  AP COURSES AND EXAMS
    Course Home Pages
    Course Descriptions
    The Course Audit
    Sample Syllabi
    Teachers' Resources
    Exam Calendar and Fees
    Exam Questions
    AP Credit Policy Information
  PRE-AP
    Teachers' Corner
    Publications
  AP COMMUNITY
    About Electronic Discussion Groups
    Become an AP Exam Reader

Back to top