AP Computer Science A

Advanced Placement course and exam in Java programming

This article is part of a series on

Advanced Placement
Exams •  Awards
AP Capstone

* Seminar (AP Capstone Part 1)
* Research (AP Capstone Part 2)

Current subjects

* African American Studies
* Art History
* Biology
* Calculus (AB and BC)
* Chemistry
* Chinese Language and Culture
* Comparative Government and Politics
* Computer Science A
* Computer Science Principles
* English Language and Composition
* English Literature and Composition
* Environmental Science
* European History
* French Language and Culture
* German Language and Culture
* Human Geography
* Italian Language and Culture
* Japanese Language and Culture
* Latin
* Macroeconomics
* Microeconomics
* Music Theory
* Physics 1: Algebra-Based
* Physics 2: Algebra-Based
* Physics C: Electricity and Magnetism
* Physics C: Mechanics
* Precalculus
* Psychology
* Spanish Language and Culture
* Spanish Literature and Culture
* Statistics
* Studio Art (2-D, 3-D, and Drawing)
* U.S. Government and Politics
* U.S. History
* World History: Modern

In development

* World History: Ancient

Former subjects

* Computer Science AB (discontinued 2009)
* International English Language (discontinued 2002)
* French Literature (discontinued 2009)
* German Literature (discontinued 1983)
* Latin Literature (discontinued 2009)
* Latin: Vergil (discontinued 2012)
* Music Listening and Literature
* Physics B (discontinued 2014)
* Physics C (discontinued 1973)
* Russian Language and Culture (discontinued 2010)

* v
* t
* e

Advanced Placement (AP) Computer Science A (also known as AP CompSci, AP CompSci A, APCSA, AP Computer Science Applications, or AP Java) is an AP Computer Science course and examination 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. The AP exam currently tests students on their knowledge of Java.

AP Computer Science AB, which was equal to a full year, was discontinued following the May 2009 exam administration.[2]

## Course

[edit]

AP Computer Science 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 were not covered to the extent that they were covered in AP Computer Science AB. The Microsoft-sponsored program Technology Education and Literacy in Schools (TEALS) aims to increase the number of students taking AP Computer Science classes.[3]

The units of the exam are as follows:[4]

Unit  | Topic  | Exam Weighting

|
|

1  | Primitive Types | 2.5–5%
2  | Using Objects | 5–7.5%
3  | Boolean Expressions and if Statements | 15–17.5%
4  | Iteration | 17.5–22.5%
5  | Writing Classes | 5–7.5%
6  | Array | 10–15%
7  | ArrayList | 2.5–7.5%
8  | 2D Array  | 7.5–10%
9  | Inheritance and Polymorphism | 5–10%
10  | Recursion | 5–7.5%

## Case studies and labs

[edit]

Historically, the AP exam used several programs in its free-response section to test students' knowledge of object-oriented programs without requiring them to develop an entire environment. These programs were called Case Studies.

This practice was discontinued as of the 2014–15 school year and replaced with optional labs that teach concepts.

### Case studies (discontinued)

[edit]

Case studies were used in AP Computer Science curriculum starting in 1994.[5]

#### Large Integer case study (1994-1999)

[edit]

The Large Integer case study was in use prior to 2000. It was replaced by the Marine Biology case study.

#### Marine Biology case study (2000-2007)

[edit]

The Marine Biology Case Study (MBCS) was a program written in C++ until 2003, then 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.

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.

#### GridWorld case study (2008-2014)

[edit]

GridWorld is a computer program case study written in Java that was used with the AP Computer Science program from 2008 to 2014.[6] It serves as an example of object-oriented programming (OOP). GridWorld succeeded the Marine Biology Simulation Case Study, which was used from 2000–2007. The GridWorld framework was designed and implemented by Cay Horstmann, based on the Marine Biology Simulation Case Study. The narrative was produced by Chris Nevison and Barbara Cloud Wells, Colgate University.

The GridWorld Case Study was used as a substitute for writing a single large program as a culminating project. Due to obvious time restraints during the exam, the GridWorld Case Study was provided by the College Board to students prior to the exam. Students were expected to be familiar with the classes and interfaces (and how they interact) before taking the exam. The case study was divided into five sections, the last of which was only tested on the AB exam. Roughly five multiple-choice questions in Section I were devoted to the GridWorld Case Study, and it was the topic of one free response question in Section II.

GridWorld has been discontinued and replaced with a set of labs for the 2014–2015 school year.

* Actors
* The GridWorld Case Study employs an Actor class to construct objects in the grid. The Actor class manages the object's color, direction, location, what the object does in the simulation, and how the object interacts with other objects.
* Actors are broken down into the classes "Flower", "Rock", "Bug", and "Critter", which inherit the Actor class and often override certain methods (most notably the Act method). Flowers can't move, and when forced to Act, they become darker. Flowers are dropped by Bugs and eaten by Critters. Rocks are also immobile and aren't dropped or eaten. Bugs move directly ahead of themselves, unless blocked by a rock or another bug, in which case the Bug will make a 45 degree turn and try again. They drop flowers in every space they occupy, eat flowers that are directly on their space of grid, and are consumed by Critters. Critters move in a random direction to a space that isn't occupied by a Rock or other Critter and consume Flowers and Bugs.
* Extensions
* The Case Study also includes several extensions of the above classes. "BoxBug" extends "Bug" and moves in a box shape if its route is not blocked. "ChameleonCritter" extends "Critter" and does not eat other Actors, instead changing its color to match the color one of its neighbors. "Crab Critter" moves left or right and only eats Actors in front of it, but otherwise extends the "Critter" class.
* Students often create their own extensions of the Actor class. Some common examples of student created extensions are Warden organisms and SimCity-like structures, in which objects of certain types create objects of other types based on their neighbors (much like Conway's Game of Life). Students have even created versions of the games Pac-Man, Fire Emblem, and Tetris.[7]
* Known issues
* The version that is available at the College Board website, GridWorld 1.00, contains a bug (not to be confused with the Actor subclass Bug) that causes a SecurityException to be thrown when it is deployed as an applet. This was fixed in the "unofficial code" release on the GridWorld website. Also, after setting the environment to an invalid BoundedGrid, it will cause a NullPointerException.

### Labs

[edit]

Instead of the discontinued case studies, the College Board created three new labs that instructors are invited to use, but they are optional and are not tested on the exam. There are no questions on the specific content of the labs on the AP exam, but there are questions that test the concepts developed in the labs. The three labs are:[8]

* The Magpie Lab
* The Elevens Lab
* The Picture Lab

## Exam

[edit]

### History

[edit]

The AP exam in Computer Science was first offered in 1984.

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. Since 2003, the AP Computer Science exam has tested students on their knowledge of computer science through Java.

### Format

[edit]

Prior to 2015, the exam was composed of two sections, consisting of the following times:

* 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]

As of 2015, however, the Multiple Choice section was extended by 15 minutes while the Free-Response section was reduced by 15 minutes for the following:

* Section I: Multiple Choice [1 hour and 30 minutes for 40 multiple-choice questions]
* Section II: Free-Response [1 hour and 30 minutes for 4 problems involving extended reasoning]

### Grade distributions

[edit]

In the 2023 administration, 94,438 students took the exam. The mean score was a 3.21 with a standard deviation of 1.50. The grade distributions since 2003 were:

Score  | 2003  | 2004  | 2005[9] | 2006[10] | 2007[11] | 2008  | 2009[12] | 2010[13] | 2011[14] | 2012[15] | 2013[16] | 2014[17] | 2015[18] | 2016[19] | 2017[20] | 2018[21] | 2019[22] | 2020[23] | 2021[24] | 2022[25] | 2023[26] | 2024[27]

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

5  | 17.1%  | 18.6%  | 17.9%  | 21.9%  | 19.3%  | 21.7%  | 23.2%  | 26.3%  | 24.9%  | 23.6%  | 26.6%  | 21.3%  | 24.4%  | 20.8%  | 24.2%  | 24.7%  | 26.7%  | 25.6%  | 23.9%  | 27.3%  | 26.8%  | 24%
4  | 24.5%  | 23.6%  | 23.2%  | 22.2%  | 22.8%  | 21.7%  | 25.7%  | 24.7%  | 24.8%  | 24.3%  | 26.6%  | 23.1%  | 24.6%  | 20.5%  | 20.9%  | 21.2%  | 21.9%  | 21.7%  | 21.9%  | 20.4%  | 22.4%  | 22%
3  | 19.6%  | 15.3%  | 14.9%  | 14.4%  | 14.5%  | 13.9%  | 13.2%  | 13.9%  | 14.2%  | 15.6%  | 13.9%  | 16.8%  | 15.2%  | 23.1%  | 21.9%  | 21.8%  | 21.0%  | 23.2%  | 19.3%  | 19.9%  | 18.8%  | 20%
2  | 9.2%  | 9.4%  | 9.9%  | 7.7%  | 9.5%  | 9.0%  | 8.2%  | 7.9%  | 7.9%  | 7.7%  | 7.0%  | 7.7%  | 7.2%  | 12.5%  | 11.5%  | 11.9%  | 11.9%  | 12.8%  | 12.1%  | 10.4%  | 9.5%  | 11%
1  | 29.6%  | 33.1%  | 34.0%  | 33.7%  | 33.9%  | 33.7%  | 29.8%  | 27.1%  | 28.2%  | 28.7%  | 25.9%  | 31.1%  | 28.5%  | 23.1%  | 21.5%  | 20.4%  | 18.4%  | 16.8%  | 22.8%  | 22.1%  | 22.5%  | 23%
% of scores 3 or higher  | 61.2%  | 57.5%  | 56.0%  | 58.5%  | 56.6%  | 57.3%  | 62.1%  | 65.0%  | 63.9%  | 63.5%  | 67.1%  | 61.2%  | 64.3%  | 64.5%  | 67.0%  | 67.8%  | 69.6%  | 70.4%  | 65.1%  | 67.5%  | 68.0%  | 66%
Mean  | 2.90  | 2.85  | 2.81  | 2.91  | 2.84  | 2.89  | 3.05  | 3.15  | 3.10  | 3.06  | 3.21  | 2.96  | 3.09  | 3.04  | 3.15  | 3.18  | 3.26  | 3.26  | 3.12  | 3.20  | 3.21  | 3.13
Standard Deviation  | 1.48  | 1.54  | 1.54  | 1.59  | 1.56  | 1.58  | 1.57  | 1.56  | 1.56  | 1.55  | 1.55  | 1.55  | 1.56  | 1.44  | 1.46  | 1.45  | 1.44  | 1.40  | 1.48  | 1.50  | 1.50  | 1.48
Students  | 14,674  | 14,337  | 13,924  | 14,662  | 15,049  | 15,537  | 16,622  | 20,120  | 22,176  | 26,103  | 31,117  | 39,278  | 48,994  | 57,937  | 60,519  | 65,133  | 69,685  | 70,580  | 74,676  | 77,753  | 94,438  |

## AP Computer Science AB

[edit]

### Course

[edit]

The discontinued AP Computer Science AB course 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 were fundamental to AP Computer Science AB. Due to low numbers of students taking the AP Computer Science AB exam, it was discontinued after the 2008–2009 year.[28]

### Grade distributions for AP Computer Science AB

[edit]

The AP Computer Science AB Examination was discontinued as of May 2009. The grade distributions from 2003 to 2009 are shown below:

Score  | 2003[29] | 2004[30] | 2005[9] | 2006[10] | 2007[11] | 2008[31] | 2009[12]

|
|
|
|
|
|
|

5  | 37.6%  | 27.0%  | 31.2%  | 33.7%  | 33.2%  | 38.9%  | 39.3%
4  | 13.8%  | 18.5%  | 19.5%  | 19.7%  | 19.7%  | 19.1%  | 20.6%
3  | 24.6%  | 17.8%  | 18.5%  | 17.2%  | 18.3%  | 15.1%  | 16.1%
2  | 10.0%  | 12.0%  | 10.4%  | 9.3%  | 9.3%  | 9.0%  | 7.4%
1  | 13.8%  | 24.6%  | 20.4%  | 20.1%  | 19.5%  | 18.0%  | 16.5%
% of scores 3 or higher  | 76.0%  | 63.3%  | 69.2%  | 70.6%  | 71.2%  | 73.0%  | 76.0%
Mean  | 3.51  | 3.11  | 3.31  | 3.38  | 3.38  | 3.52  | 3.59
Standard deviation  | 1.42  | 1.54  | 1.51  | 1.52  | 1.50  | 1.51  | 1.47
Students  | 7,071  | 6,077  | 5,097  | 4,939  | 5,064  | 4,995  | 5,105

## See also

[edit]

* Computer science
* Glossary of computer science

## References

[edit]

1. ^ AP Computer Science A Home Page, The College Board
2. ^ "Important Announcement about AP Computer Science AB". AP Central. The College Board. 2008. Archived from the original on April 9, 2008.
3. ^ Bishop, Todd (2012-07-27). "Geek of the Week: Kevin Wang is putting computer scientists into high schools". GeekWire. Archived from the original on 2015-07-05. Retrieved 2015-07-05.
4. ^ "AP Computer Science A Course and Exam Description, Effective 2020" (PDF). AP Central. Retrieved September 24, 2020.
5. ^ "GridWorld Case Study". AP. The College Board. Archived from the original on February 26, 2012.
6. ^ Horstmann, Cay. "GridWorld". horstmann.com. Accessed September 15, 2008.
7. ^ Horstmann, Cay. "Extending GridWorld". Extending GridWorld. Retrieved 22 February 2016.
8. ^ "New Computer Science A Lab Requirement". Retrieved 10 July 2014.
9. ^ a b STUDENT GRADE DISTRIBUTIONS (PDF), College Board, 2005, retrieved January 30, 2017
10. ^ a b STUDENT GRADE DISTRIBUTIONS (PDF), College Board, 2006, retrieved January 30, 2017
11. ^ a b STUDENT GRADE DISTRIBUTIONS (PDF), College Board, 2007, retrieved January 30, 2017
12. ^ a b STUDENT GRADE DISTRIBUTIONS (PDF), College Board, 2009, retrieved January 30, 2017
13. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
14. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
15. ^ "AP Computer Science A 2012 Score Distribution" (PDF). College Board. Retrieved 12 January 2014.
16. ^ "AP Computer Science A 2013 Score Distribution" (PDF). College Board. Retrieved 12 January 2014.
17. ^ "Student Score Distribution" (PDF). College Board. Retrieved 28 February 2015.
18. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
19. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
20. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
21. ^ "Student Score Distributions, AP Exams - May 2018" (PDF). The College Board. Retrieved December 24, 2022.
22. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
23. ^ "STUDENT SCORE DISTRIBUTIONS" (PDF). Retrieved June 9, 2021.
24. ^ "Student Score Distributions" (PDF). Retrieved January 12, 2024.
25. ^ "Student Score Distributions" (PDF). Retrieved October 1, 2023.
26. ^ "STUDENT SCORE DISTRIBUTIONS" (PDF). Retrieved January 12, 2024.
27. ^ Total Registration (2024-06-25). "2024 AP Exam Score Distributions". www.totalregistration.net. Retrieved 2024-06-27.
28. ^ Cech, Scott J., "College Board Intends to Drop AP Programs in Four Subjects", Education Week, 9 April 2008
29. ^ "2003: Computer Science AB Grade Distributions". AP Central. College Board. Retrieved January 30, 2017.
30. ^ "2004: Computer Science AB Grade Distributions". AP Central. College Board. Retrieved January 30, 2017.
31. ^ "2008 Computer Science AB Grade Distribution". College Board. Archived from the original on 20 June 2009. Retrieved 5 March 2012.

## External links

[edit]

* College Board: AP Computer Science A

Listen to this article (16 minutes)

This audio file was created from a revision of this article dated 16 May 2020 (2020-05-16), and does not reflect subsequent edits.

(Audio help · More spoken articles)
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template