The 1999-2000 Ad Hoc Advisory Committee

Round 2: Potential Principles Governing Language Selection for CS1-CS2

This Web site reviews background work, discussions, and planning that led to a panel session, organized by the Ad Hoc AP CS Committee on March 10, 2000 at SIGCSE 2000. In this capacity, the page presents the intentions of the Committee and various common understandings.

Initial Committee Work: Over the past several months, the Ad Hoc AP CS Advisory Committee sought input from the computer science community on appropriate high-level goals for the introductory CS1-CS2 sequence at the college and university level. (At the high school level, the corresponding course typically is labeled CS AB.) Thus, the Committee sent surveys to several hundred department chairs, members of the SIGCSE.MEMBERS list-serve, and members of the ap-compsci list-serve. Click here for a copy of this initial survey. See Directions for Advanced Placement Computer Science for more information on AP CS and the Ad Hoc Advisory Committee.

SIGCSE 2000 Panel: The Ad Hoc Committee organized a panel on March 10 at SIGCSE 2000 in Austin, Texas, to report some preliminary findings and to check the extent to which there is community agreement about these findings. As the Committee discussed the surveys and planned for the panel session, three main principles seemed to emerge.

  1. Emphasis on Object-Orientation:
    The current AP CS course and examination may be described as object-based, meaning that classes and objects are used throughout, but object-oriented design is not included in the present syllabus. Respondents to the survey suggest that CS1-CS2 courses are becoming more object-oriented, including an emphasis on higher-level abstraction, object-oriented design, encapsulation, inheritance, and polymorphism.

  2. Need for Safety in a Language and Environment:
    Since faculty seem to want to emphasize high-level concepts, there seems to be a desire to provide a safe and controlled language and environment. For example, it should not be easy for students to fall into sophisticated loopholes which might be built into a language for the use of professionals. Similarly, compilers should provide extensive checking, and programming environments should contain extensive tools for tracing and debugging.

  3. Desire for Simplicity:
    Feedback to the Ad Hoc Committee suggested that faculty for CS1-CS2 courses want both a language and a programming environment which are reasonably simple. Introductory students can be easily side-tracked by awkward syntax, complex language semantics, or expansive programming environments. While both the language and the environment must support the desired concepts and problem-solving approaches, a simple and clear context can encourage students to develop high-level thinking skills.

Panel Perspective on a Possible Language Change for AP CS: If the Panel discussion supported the view that the computer science community had reached some consensus on the importance of object-orientation, safety, and simplicity for CS1-CS2, then the Committee was prepared to consider whether there also might be some consensus that AP CS should move from C++ to Java with an increased emphasis on object-orientation. In reviewing the languages commonly used in colleges and universities in CS1-CS2, Java seemed to be the primary language that satisfied the above principles. Again, preparation for the Panel noted the need to check in with the community to determine whether the inferences of the Ad Hoc Committee seemed consistent with the perspectives of the general computer science community.

Panel Session and Discussion: Panel Session and Discussion: Members of the Committee began the panel session itself by providing general background on AP CS, some history of past and current AP CS Ad Hoc Committees, and the process of test development. Committee members then introduced the ideas of object-orientation, safety, and simplicity.

Impressions: While it was not the intention of the Committee, it seems that some session attendees received the impression that the Committee had already reached conclusions regarding a switch from C++ to Java and that the Committee was not interested in receiving input. The Committee deeply regrets anything it might have done to give this impression. Also, the Committee anticipates on-going discussion of various elements of this session.

As a separate issue, the Committee notes that its role is only to give advice to the AP CS Development Committee. The Ad Hoc Advisory Committee has no authority to make changes itself; it only can present some suggestions.

After the initial presentations, general discussion followed, touching on a wide range of topics including Java versus C++, options for a language-independent exam, the role of discrete mathematics, hardware and software support for high schools, and preparation of teachers. Contact members of the committee or other session attendees for additional information.

Panel Survey: At the conclusion of the Panel, the Ad Hoc Committee circulated the following brief survey to gain additional feedback.

The Committee is still interested in feedback.

Please send e-mail with your ideas by Thursday, March 30, 2000, to committee members at the addresses given at the end of the survey.

AP Computer Science Ad-Hoc Committee Survey -- March, 2000

The AP CS Ad-Hoc Committee is charged with advising the AP CS Development Committee concerning future directions for the Advanced Placement Computer Science Examination. Already, the AP CS Ad-Hoc Committee has asked for input from college and university department chairs, members of SIGCSE, and high school AP CS teachers. With this data, the Committee has had additional discussions, and some ideas are being presented at a special panel and feedback session at SIGCSE 2000. This Survey is the next step to get your reaction to this session.

The Committee wants to present a vision for AP CS that reflects the general computer science community. Thus, your thoughts on the following are particularly important.

  1. In considering the content of a year-long college-level computer science course, please rate the appropriateness of each of the following on a 1 (low) to 6 (high) scale:

    ____encapsulation ____emphasis on higher-level abstraction
    ____inheritance ____object-oriented data design
    ____polymorphism ____student-friendly environment
    ____safety ____simplicity of language
    ____simplicity of environment

    Please add your comments on appropriate directions for AP CS.

  2. Does your school currently give credit for the AP CS examination?

  3. Does your school currently give special or advanced placement for the AP CS examination?

  4. With the possible changes summarized here (described in more detail at the panel), would your school change its AP policy? Why or why not?

  5. Please indicate your school (optional):

Feedback Requested

Please send your comments either individually or collectively to the members of the Ad Hoc Advisory Committee:

Send mail to all Ad Hoc Committee Members

Thank you very much for your feedback.

Suggestions concerning this World Wide Web page are welcome.

created March 15, 2000
last revised March 23, 2000

Henry M. Walker (