AP Computer Science

  • AP Computer Science A emphasizes object-oriented programming methodology with an emphasis on problem solving and algorithm development and is meant to be the equivalent of a first-semester course in computer science. It also includes the study of data structures and abstraction.

    This course covers the following topics:

    1. 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, and can be adapted to changing circumstances. The design process needs to be based on a thorough understanding of the problem to be solved.

    1. Program and Class Design
    1. Program Implementation

    Part of the problem-solving process is the statement of solutions in a precise form that invites review and analysis. The implementation of solutions in the Java programming language reinforces concepts, allows potential solutions to be tested, and encourages discussion of solutions and alternatives.

    1. Implementation techniques
    2. Programming constructs
    3. Java library classes and interfaces included in the AP Java subset
    1. 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.

    1. Testing
    2. Debugging
    3. Runtime exceptions
    4. Program correctness
    5. Algorithm Analysis
    6. Numerical representations of integers
    1. 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.

    1. Primitive data types (int, boolean, double)
    2. Strings
    3. Classes
    4. Lists
    5. Arrays (1-dimensional and 2-dimensional)
    1. 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.

    1. Operations on data structures
    2. Searching
    3. Sorting
    1. Computing in Context

    An awareness of the ethical and social implications of computing systems is necessary for the study of computer science. These topics need not be covered in detail, but should be considered throughout the course.

    1. System reliability
    2. Privacy
    3. Legal issues and intellectual property
    4. Social and ethical ramifications of computer use