Goals of AP Computer Science

Students should be able to

  • Design, implement, and analyze solutions to problems;
  • Use and implement commonly used algorithms;
  • Develop and select appropriate algorithms and data structures
    to solve new problems;
  • Write solutions fluently in an object-oriented paradigm;
  • Write, run, test, and debug solutions in the Java programming
    language, utilizing standard Java library classes and interfaces
    from the AP Java subset;
  • Read and understand programs consisting of several classes
    and interacting objects;
  • Read and understand a description of the design and
    development process leading to such a program; and
  • Understand the ethical and social implications of computer use.

Topics Outline for AP Computer Science AP is

  • Object-Oriented Program Design
    • Program and class design
  • Program Implementation
    • Implementation techniques
    • Programming constructs
    • Java library classes and interfaces included in the Java Subset
  • Program Analysis
    • Testing
    • Debugging
    • Runtime exceptions
    • Program correctness
    • Algorithm analysis
    • Numerical representations of integers
  • Standard Data Structures
    • Primitive data types (int, boolean, double)
    • Strings
    • Classes
    • Lists
    • Arrays (1-dimensional and 2-dimensional)
  • Standard Operations and Algorithms
    • Operations on data structures
    • Searching
    • Sorting
  • Computing in Context
    • System reliability
    • Privacy
    • Legal issues and intellectual property
    • Social and ethical ramifications of computer use

    Assessment Overview: All code on the AP Computer Science A Exam is consistent with
    the AP Java subset that can be found in Appendix A of the Course Description. All questions involving code should be answered in Java. Students are not tested on minor points of syntax.

  • Format of Assessment
    Section I: Multiple Choice | 40 Questions | 1 Hour, 30 Minutes |
    50% of Exam Score
    • Discrete Question topics will include: programming
    fundamentals, data structures, logic, algorithms/problem
    solving, object-oriented programming, recursion, and software
    Section II: Free Response | 4 Questions | 1 Hour, 30 Minutes |
    50% of Exam Score
    • Short Answer (each requiring Java programming language)
    • Solve problems involving more extended reasoning.

    Sample Multiple-Choice Question

    A car dealership needs a program to store information about the cars for sale. For each car, they want to keep track
    of the following information: number of doors (2 or 4), whether the car has air-conditioning, and its average number
    of miles per gallon. Which of the following is the best object-oriented program design?
    (a) Use one class, Car, with three instance variables: int numDoors, boolean hasAir, and milesPerGallon.
    (b) Use four unrelated classes: Car, Doors, AirConditioning, and MilesPerGallon.
    (c) Use a class Car with three subclasses: Doors, AirConditioning, and MilesPerGallon.
    (d) Use a class Car, with a subclass Doors, with a subclass AirConditioning, with a subclass MilesPerGallon.
    (e) Use three classes: Doors, AirConditioning, and MilesPerGallon, each with a subclass Car.
    Correct Answer: A

    Sample Free-Response Question: Experimental Design

    A travel agency maintains a list of information about airline flights. Flight information includes a departure time and
    an arrival time. You may assume that the two times occur on the same day. These times are represented by objects of
    the Time class. The declaration for the Time class is shown below. It includes a method minutesUntil, which returns the difference (in minutes) between the current Time object and another Time object. Students are provided with a scenario and part of the program to solve that scenario. They are then asked to complete a method in that program so that the program can calculate the duration of flights.