- Advanced Placement Computer Science
-
This article is part of the
Advanced Placement series.General exam structure • Awards Current Subjects: - Art History
- Biology
- Calculus (AB & BC)
- Chemistry
- Chinese Language and Culture
- Comparative Government & Politics
- Computer Science A
- English Language & Composition
- English Literature & Composition
- Environmental Science
- European History
- French Language
- German Language
- Human Geography
- Italian Language and Culture
- Japanese Language and Culture
- Latin: Vergil
- Macroeconomics
- Microeconomics
- Music Theory
- Physics B
- Physics C: Mechanics
- Physics C: Electricity and Magnetism
- Psychology
- Russian Language and Culture
- Spanish Language
- Spanish Literature
- Statistics
- Studio Art (2-D, 3-D, & Drawing)
- U.S. History
- U.S. Government & Politics
- World History
Former Subjects: - Computer Science AB
- French Literature
- Latin Literature
Advanced Placement Computer Science (also called AP Comp Sci, APCS or AP Java) is the name of two distinct Advanced Placement courses and examinations offered by the College Board to high school students as an opportunity to earn college credit for a college-level computer science course. AP Computer Science A[1] is meant to be the equivalent of a first-semester course in computer science, while AP Computer Science AB[2] equates to a full year. The AP exam currently tests students on their knowledge of Java. AP Computer Science AB was discontinued following the May 2009 exam administration[3]. The current Chief Reader for AP Computer Science (2008–2012) is Dr. Jody Paul[4], Associate Professor of Computer Science at Metropolitan State College of Denver.
Contents
AP Computer Science A
Advanced Placement Computer Science A emphasizes object-oriented programming methodology with an emphasis on problem solving and algorithm development. It also includes the study of data structures and abstraction, but these topics are not covered to the extent that they are covered in AP Computer Science AB.
AP Computer Science AB (Discontinued)
Advanced Placement Computer Science AB included 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 were studied in AP Computer Science AB but not in AP Computer Science A. The use of recursive data structures and dynamically allocated structures was fundamental to AP Computer Science AB. Due to low numbers of students taking AP Computer Science AB, it was discontinued after the 2008-2009 year.[5]
Topic Outline
- Object-Oriented Program Design
- Problem Design
- Read and understand a problem's description, purpose, and goals.
- Specify the purpose and goals for a problem. (AB only)
- Apply data abstraction and encapsulation.
- Read and understand class specifications and relationships among the classes ("is-a", "has-a" relationships).
- Decompose a problem into classes, define relationships and responsibilities of those classes. (AB only)
- Understand and implement a given class hierarchy.
- Identify reusable components from existing code using classes and class libraries.
- Class Design
- Design and implement a class.
- Design and implement a set of interacting classes. (AB only)
- Design an interface.
- Choose appropriate data representation and algorithms.
- Choose appropriate advanced data structures and algorithms. (AB only)
- 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
- Java library classes (included in the A or 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 exceptions
- Throw runtime exceptions (AB only)
- Reason about programs
- Preconditions and postconditions
- Assertions
- Invariants (AB only)
- Analysis of algorithms
- Informal comparisons of running times
- Exact calculation of statement execution counts
- Big-O notation (AB only)
- Worst-case and average-case time and space analysis (AB only)
- 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
- 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
AP Computer Science exam
The AP exam currently tests students on their knowledge of computer science through Java. Before 1999, the AP exam tested students on their knowledge of Pascal. From 1999 to 2003, the exam tested students on their knowledge of C++ instead. The AP exam in Computer Science was first offered in 1984.
The exam is composed 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]
Case Studies
The AP exam has used several programs in its free-response section to test student's knowledge of object-oriented programs without requiring them to develop an entire environment. Currently, the test uses the GridWorld case study.
GridWorld Case Study
Main article: GridWorldThe GridWorld Case Study is intended to be a substitute for writing a single large program as a culminating project. Due to obvious time restraints during the exam, the GridWorld Case Study is provided by the College Board [1] to students prior to the exam. They are expected to be familiar with the classes and interfaces (and how they interact) before taking the exam. The case study is divided into five sections, the last of which is only tested on the AB exam.
Roughly five multiple-choice questions in Sections I are devoted to the GridWorld Case Study, and it is the topic of one free response question in Section II.
The GridWorld Case Study replaced the Marine Biology Case Study for the 2007-2008 school year.
Marine Biology Case Study
The Marine Biology Simulation Case Study (MBCS) was a program written in Java for use with the A and AB examinations. It served as an example of object-oriented programming (OOP) embedded in a more complicated design project than most students had worked with before. It replaced the Big Integer case study that was in use prior to 2000.
The case study was designed to allow the College Board to quickly test a student's knowledge of object oriented programming ideas such as inheritance and encapsulation while requiring students to understand how objects such as "the environment", "the fish", and the simulation's control module interact with each other without having to develop the entire environment independently, which would be quite time consuming. The case study also gives all students taking the AP Computer Science exams with a common experience from which to draw additional test questions.
On each of the exams, at least one free-response question was derived from the case study. There were also five multiple-choice questions that are derived from the case study.
This case study was discontinued from 2007, and was replaced by GridWorld.
Grade distributions for AP Computer Science A
In the 2010 administration, 20,120 students took the exam[6]. The mean score was a 3.15. The grade distribution for 2010 was:
Score Percent 5 26.3% 4 24.7% 3 13.9% 2 7.9% 1 27.1% Grade distributions for AP Computer Science AB
In the 2008 administration, 4,995 students took the exam[7]. The mean score was a 3.52. The grade distribution for 2008 was:
Score Percent 5 38.9% 4 19.1% 3 15.1% 2 9.0% 1 18.0% AP Computer Science: Principles
A new exam, titled Advanced Placement Computer Science: Principles is currently under development. It is designed not to be a replacement for AP Computer Science A, but rather as a parallel option that will focus on computational thinking and fluency. The project is being led by Prof. Owen Astrachan[8], Professor of the Practice of Computer Science at Duke University. Pilot materials are currently being created, with pilot studies planned to run from the end of 2010 through 2012. [9] [10] [11].
References
- ^ AP Computer Science A Home Page, The College Board
- ^ AP Computer Science AB Home Page, The College Board
- ^ AP Computer Science AB Home Page
- ^ Paul, Jody, www.jodypaul.com
- ^ Cech, Scott J., "College Board Intends to Drop AP Programs in Four Subjects", Education Week, 4 April 2008
- ^ http://www.collegeboard.com/student/testing/ap/compsci_a/dist.html?compscia
- ^ http://www.collegeboard.com/student/testing/ap/compsci_ab/dist.html?comsciab
- ^ Home page for Owen Astrachan
- ^ http://www.collegeboard.com/html/computerscience/
- ^ http://www.collegeboard.com/prod_downloads/computerscience/LSendorsement.pdf
- ^ http://csprinciples.org/
External links
Categories:- Advanced Placement
- Computer science education
Wikimedia Foundation. 2010.