AP Computer Science A

AP Computer Science A Course Overview

AP Computer Science A is an introductory college-level computer science course. Students cultivate their understanding of coding through analyzing, writing, and testing code as they explore concepts like modularity, variables, and control structures.

AP Computer Science A introduces students to computer science through programming. Fundamental topics in this course include the design of solutions to problems, the use of data structures to organize large sets of data, the development and implementation of algorithms to process data and discover new information, the analysis of potential solutions, and the ethical and social implications of computing systems. The course emphasizes object-oriented programming and design using the Java programming language.

AP Computer Science A Course Content

The AP Computer Science A course reflects what computer science teachers, professors, and researchers have indicated are the main goals of an introductory, college-level computer science programming course:

  • Program Design and Algorithm Development— Determine required code segments to produce a given output.
  • Code Logic—Determine the output, value, or result of given program code given initial values.
  • Code Implementation—Write and implement program code.
  • Code Testing—Analyze program code for correctness, equivalence, and errors.
  • Documentation—Describe the behavior and conditions that produce the specified results in a program.
  • Ethical Computing—Understand the ethical and social implications of computer use.

Students practice the computer science skills of designing, developing, and analyzing their own programs to address real-world problems or pursue a passion.

Computer Language

The AP Computer Science A course requires that solutions of problems be written in the Java programming language. Because the Java programming language is extensive, with far more features than could be covered in a single introductory course, the AP Computer Science A Exam covers a subset of Java.

Lab Requirement

The AP Computer Science A course must include a minimum of 20 hours of hands-on, structured lab experiences to engage students in individual or group problem solving. Thus, each AP Computer Science A course includes a substantial lab component in which students design solutions to problems, express their solutions precisely (e.g., in the Java programming language), test their solutions, identify and correct errors (when mistakes occur), and compare possible solutions. College Board has developed several labs that are aligned to the course framework that fulfill the 20-hour lab requirement. The class period recommendations provided in the unit guides account for the time needed to complete each lab activity as described in the lab guide.

AP Computer Science A

Exam Structure

AP COMPUTER SCIENCE A EXAM: 3 HOURS

Assessment Overview

The AP Computer Science A Exam assesses student understanding of the computational thinking practices and learning objectives outlined in the course framework. The exam is 3 hours long and includes 40 multiple-choice questions and 4 free-response questions. As part of the exam, students will be given the Java Quick Reference, which lists accessible methods from the Java library that may be included in the exam.

Format of Assessment

Section I: Multiple Choice | 40 Questions | 1 Hour, 30 Minutes | 50% of Exam Score

  • The multiple-choice section includes mostly individual questions, with 1–2 sets of questions (typically 2–3 questions per set).
  • Computational Thinking Practices 1, 2, 4, and 5 are all assessed in the multiple-choice section.

Section II: Free Response | 4 Questions | 1 Hour, 30 Minutes | 50% of Exam Score

All free-response questions assess Computational Thinking Practice 3: Code Implementation, with the following focuses:

  • Question 1: Methods and Control Structures—Students will be asked to write program code to create objects of a class and call methods, and satisfy method specifications using expressions, conditional statements, and iterative statements.
  • Question 2: Classes—Students will be asked to write program code to define a new type by creating a class and satisfy method specifications using expressions, conditional statements, and iterative statements.
  • Question 3: Array/ArrayList - Students will be asked to write program code to satisfy method specifications using expressions, conditional statements, and iterative statements and create, traverse, and manipulate elements in 1D array or ArrayList objects.
  • Question 4: 2D Array—Students will be asked to write program code to satisfy method specifications using expressions, conditional statements, and iterative statements and create, traverse, and manipulate elements in 2D array objects