AP Computer Science AB
From Wikipedia, the free encyclopedia
Advanced Placement Computer Science AB (also APCS) is a course and following examination offered by the College Board to high school students as an opportunity to earn college credit for a college-level computer science course. APCS AB includes all the topics of AP Computer Science A, as well as a more formal and a more in-depth study of algorithms, data structures, and data abstraction. For example, binary trees are studied in AP Computer Science AB but not in AP Computer Science A. The use of recursive data structures and dynamically allocated structures is fundamental to AP Computer Science AB. As AP Computer Science A, the AP Computer Science AB exam is based on Java.
Contents |
[edit] Topic Outline
- Object-Oriented Program Design
- Problem Design
- Specify the purpose and goals for a problem.
- Decompose a problem into classes, define relationships and responsibilities of those classes.
- Apply data abstraction and encapsulation.
- Understand and implement a given class hierarchy.
- Identify reusable components from existing code using classes and class libraries.
- Class Design
- Design and implement a set of interacting classes.
- Choose appropriate advanced data structures and algorithms.
- Design an interface.
- Choose appropriate data representation and algorithms.
- Apply functional decomposition.
- Extend a given class using inheritance.
- Problem Design
- Program Implementation
- Implementation techniques
- Methodology
- Object-oriented development
- Top-down development
- Encapsulation and information holding
- Procedural abstraction
- Methodology
- Programming constructs
- Primitive types vs. objects
- Declaration
- Console output (System.out.print/println)
- Control
- Methods
- Sequential
- Conditional
- Iterations
- Recursion
- Java library classes (included in the AB-level AP Java Subset)
- Implementation techniques
- Program Analysis
- Testing
- Test classes and libraries in isolation
- Identify boundary cases and generate appropriate test data
- Perform integration testing
- Debugging
- Categorize errors: compile time, runtime, logic
- Identify and correct errors
- Techniques: use a debugger, add extra output statements, hand-trace code
- Understand and modify existing code
- Extend existing code using inheritance
- Understand error handling
- Understand runtime exeptions
- Throw runtime exceptions
- Reason about programs
- Analysis of algorithms
- Informal comparisons of running times
- Exact calculation of statement execution counts
- Big-O notation
- Worst-case and average-case time and space analysis
- Numerical representations and limits
- Representations of numbers in different bases
- Limitations of finite representations (e.g., integer bounds, imprecision of floating-point representations, and round-off error)
- Testing
- Standard Data Structures
- Simple data types (int, boolean, double)
- Classes
- One-dimensional arrays
- Two-dimensional arrays
- Linked lists (singly, doubly, circular)
- Stacks
- Queues
- Trees
- Heaps
- Priority queues
- Sets
- Maps
- Standard Algorithms
- Computing in Context
- Major hardware components
- Primary and secondary memory
- Processors
- Peripherals
- System software
- Language translators/compilers
- Virtual machines
- Operating systems
- Types of systems
- Single-user systems
- Networks
- Responsible use of computer systems
- System reliability
- Privacy
- Legal issues and intellectual property
- Social and ethical ramifications of computer use
- Major hardware components
[edit] The Exam
The AP exam currently tests students on their knowledge of Java. From 2001 to 2003, the exam tested students on their knowledge of C++ instead. Before 2001, the AP exam tested students on their knowledge of Pascal. The AP exam consists of two sections:
- Section I: Multiple Choice [1 hour and 15 minutes for 40 multiple-choice questions]
- Section II: Free-Response [1 hour and 45 minutes for 4 problems involving extended reasoning]
[edit] Grade distribution
In the 2006 administration, 4,939 students took the exam from 1,144 schools. The mean score was a 3.38.
The grade distribution for 2006 was:
Score | Percent |
---|---|
5 | 33.7% |
4 | 19.7% |
3 | 17.2% |
2 | 9.3% |
1 | 20.1% |