I. Program Design
The overall goal for designing a piece of software (a computer
program) is to solve the given problem correctly, but at the same time to
specify and designa program that is understandable, can be adapted to
changing circumstances, and has the potential to be reuses 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 B | Computer Science AB only |
Design Process
|
II. Program Implementation
The overall goals of program implementation parrell those of
program design. Modules of the program that fill common needs should be
built so that they can be reused easily in other programs. Control and
data abstraction are important parts of program implementation.
| Computer Science A and AB | Computer Science AB only |
|
III. Program Analysis
The analysis opf programs includes analyzing and testing
programs to determine whether they correctly meet their specifications. It
also includes the analysis of programs or the algorithms they implement so
as to understand their time and space requirements when applied to
different data sets.
| Computer Science A and B | Computer Science AB only | A. Testing
|
B. Debugging
| |
| C. Understanding and modifying existing code | |
D. Handling errors
|
|
E. Reasoning about programs
|
|
F. Analysis of algorithms
|
|
G. Numerical limits
|
IV. Standard data structures
Data structures are the means by which the information used by a program is
represented within the program. An important theme of the development and
application of data structures is abstraction.
| Computer Science A and AB | Computer Science AB only |
| D. Linked lists E. Stacks F. Queues G. Trees |
V. Standard algorithms
Standard algorithms can serve as examples of good solutions to standard
problems. Programs implementing them can serve as models of good program
design. They provide examples for analysis of program efficiency. Many
are intertwined with standard data structures.
| Computer Science A and AB | Computer Science AB only |
A. Searching
|
|
B. Sorting
|
|
C. Operations
| |
D. Operations on Dynamic data structures
|
VI. Computer Systems
A working knowledge of the major hardware and software components of
computer systems is necessary for the study of computer science as is the
importance of considering 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 |
|