The 1999-2000 Ad Hoc Advisory Committee
Feedback Round 1: Goals for the Conclusion of CS1-CS2
This document represents a first round in what is expected to be an
on-going process to develop directions for the Advanced
Placement (AP) Computer Science (CS) course. See
Directions for Advanced Placement Computer Science for more information
on AP CS and the Ad Hoc Advisory Committee.
As the Ad Hoc Advisory Committee begins its discussions concerning possible
directions, it will be helpful for committee members to receive feedback
concerning desired outcomes 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.) The Ad Hoc Advisory Committee
anticipates that colleges and universities may choose significantly
different mechanisms to achieve the desired outcomes. Rather than initiate
another round of language and pedagogy wars, the Committee has put aside
(for awhile) any consideration of outcomes for CS1. Further, the
Committee wants to focus on high-level goals -- independent of a specific
language. Thus, comments are specifically solicited for the following.
All of the following questions refer to goals to be met at the end of
the introductory CS1-CS2 sequence.
To what extent should object-oriented design be a central part of CS1-CS2?
For example, at the end of CS1-CS2, should students be comfortable working
with the concepts of classes, objects, is-a and has-a relationships,
aggregates, single inheritance, and encapsulation?
(If object-oriented design should not be part of CS1-CS2, please outline
an appropriate alternative.)
At the end of CS1-CS2, should students be comfortable programming in some
language, using concepts of conditional execution, iteration, and recursion?
Within CS1-CS2, should problem solving emphasize high-level constructs
(e.g., wrappers, iterators), low-level constructs (e.g., pointer
manipulation), both, or neither?
What example classes should be included in CS1-CS2 (e.g., stacks, queues,
lists, trees, hash tables, priority queues)?
Within CS1-CS2, to what extent should students understand abstract classes
that need to be subclassed for instantiation?
Within CS1-CS2, should students have extensive experience with dynamic
memory allocation and/or memory deallocation?
What techniques of program testing, program verification, and/or program
documentation should be included in CS1-CS2?
To what extent should exception handling be emphasized within CS1-CS2?
What additional high-level topics which should be a central part of CS1-CS2?
In providing feedback, please make your comments language
references to specific languages are especially discouraged at this
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
Owen Astrachan, Committee Chair,
Corky Cartwright, ACM Ed Board Representative,
Gail Chapman, College Board Representative,
Frances Hunt, Educational Testing Service Representative
AP CS Development Committee Representative
Henry Walker, SIGCSE Representative
Suggestions concerning this World Wide Web page are welcome.
created November 23, 1999
last revised December 7, 1999
Henry M. Walker