![](images/null_1x1.gif) |
![](images/null_1x1.gif) |
Here is the article in a print-friendly format. Click the button above to print this page. |
![](images/null_1x1.gif) |
Topic Outline for AP CS : 2003-2004
|
|
Topic Outline
Following is an outline of the major topics covered by the AP
Examinations in Computer Science. This outline is intended to define
the scope of the course, but not necessarily the sequence. The topics
in the right-hand column will not be tested on the Computer Science A
examination.
I. Object-Oriented Program Design The
overall goal for designing a piece of software (a computer program) is
to correctly solve the given problem. At the same time, this goal
should encompass specifying and designing a program that is
understandable, can be adapted to changing circumstances, and has the
potential to be reused in whole or in part. The design process needs to
be based on a thorough understanding of the problem to be solved.
Computer Science A and AB |
A. |
Program design |
1. Read and understand a problem's description, purpose, and goals. |
2. Apply data abstraction and encapsulation. |
3. Read and understand class specifications and relationships among the classes ("is-a", "has-a" relationships). |
4. Understand and implement a given class hierarchy. |
5. Identify reusable components from existing code using classes and class libraries. |
B. |
Class design |
1. Design and implement a class. |
2. Design an interface. |
3. Choose appropriate data representation and algorithms. |
4. Apply functional decomposition. |
5. Extend a given class using inheritance. |
|
Computer Science AB only |
|
|
1. Specify the purpose and goals for a problem.
|
|
3. Decompose a problem into classes, define relationships and responsibilities of those classes.
|
|
|
|
1. Design and implement a set of interacting classes. |
|
3. Choose appropriate advanced data structures and algorithms.
|
|
|
|
| |
II. Program Implementation The overall
goals of program implementation parallel those of program design.
Classes that fill common needs should be built so that they can be
reused easily in other programs. Object-oriented design is an important
part of program implementation.
Computer Science A and AB |
A. |
Implementation techniques |
1. Methodology |
a. Object-oriented development |
b. Top-down development |
c. Encapsulation and information hiding |
d. Procedural abstraction |
B. |
Programming constructs |
1. Primitive types vs. objects |
2. Declaration |
a. Constant declarations |
b. Variable declarations |
c. Class declarations |
d. Interface declarations |
e. Method declarations |
f. Parameter declarations |
3. Console output (System.out.print/println) |
4. Control |
a. Methods |
b. Sequential |
c. Conditional |
d. Iteration |
e. Recursion |
C. |
Java library classes (included in the A-level AP Java Subset) |
|
Computer Science AB only |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C. |
Java library classes (included in the AB-level AP Java Subset) |
| |
III. Program Analysis
The analysis of programs includes examining and testing programs to
determine whether they correctly meet their specifications. It also
includes the analysis of programs or algorithms in order to understand
their time and space requirements when applied to different data sets.
Computer Science A and AB |
A. |
Testing |
1. Test classes and libraries in isolation |
2. Identify boundary cases and generate appropriate test data |
3. Perform integration testing |
B. |
Debugging |
1. Categorize errors: compile-time, run-time, logic |
2. Identify and correct errors |
3. Techniques: use a debugger, add extra output statements, hand-trace code |
C. |
Understand and modify existing code |
D. |
Extend existing code using inheritance |
E. |
Understand error handling |
1. Understand runtime exceptions |
|
F. |
Reason about programs |
1. Pre- and post-conditions |
2. Assertions |
|
G. |
Analysis of algorithms |
1. Informal comparisons of running times |
2. Exact calculation of statement execution counts |
|
|
H. |
Numerical representations and limits |
1. Representations of numbers in different bases |
2.
Limitations of finite representations (e.g., integer bounds,
imprecision of floating-point representations, and round-off error) |
|
Computer Science AB only |
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Throw runtime exceptions |
|
|
|
3. Invariants |
|
|
|
3. Big-Oh notation |
4. Worst-case and average-case time and space analysis |
|
|
|
| |
IV. Standard Data Structures
Data structures are used to represent information within a program.
Abstraction is an important theme in the development and application of
data structures.
Computer Science A and AB |
A. |
Simple data types (int, boolean, double) |
B |
Classes |
C. |
One-dimensional arrays |
|
Computer Science AB only |
|
|
|
|
D. |
Two-dimensional arrays |
E. |
Linked lists (singly, doubly, circular) |
F. |
Stacks |
G. |
Queues |
H. |
Trees |
I. |
Heaps |
J. |
Priority queues |
K |
Sets |
L. |
Maps |
| |
V. Standard Algorithms Standard algorithms
serve as examples of good solutions to standard problems. Many are
intertwined with standard data structures. These algorithms provide
examples for analysis of program efficiency.
Computer Science A and AB |
A. |
Operations on A-level data structures listed above |
1. Traversals |
2. Insertions |
3. Deletions |
|
B. |
Searching |
1. Sequential |
2. Binary |
|
C. |
Sorting |
1. Selection |
2. Insertion |
3. Mergesort |
|
|
|
Computer Science AB only |
A. |
Operations on AB-level data structures listed above |
1. Traversals |
2. Insertions |
3. Deletions |
4. Iterators |
|
|
|
3. Hashing |
|
|
|
|
4. Quicksort |
5. Heapsort |
| |
VI. Computing in Context
A working knowledge of the major hardware and software components of
computer systems is necessary for the study of computer science, as is
the awareness of the ethical and social implications of computing
systems. These topics need not be covered in detail, but should be
considered throughout the course.
Computer Science A and AB |
A. |
Major hardware components |
1. Primary and secondary memory |
2. Processors |
3. Peripherals |
B. |
System software |
1. Language translators/compilers |
2. Virtual machines |
3. Operating systems |
C. |
Types of systems |
1. Single-user systems |
2. Networks |
D. |
Responsible use of computer systems |
1. System reliability |
2. Privacy |
3. Legal issues and intellectual property |
4. Social and ethical ramifications of computer use |
|
| |
|
|
|