AP Computer Science A

1.5 Credits
36 weeks
Technology icons transfer data through programming codes
Begins July 2024

Enrollment for the 2023-2024 school year is no longer available. Students may register now for the 2024-2025 school year and will be assigned to a course section after July 1, 2024.

The AP Computer Science A course is equivalent to the first semester of a college-level computer science course.  The course involves developing the skills to write programs or part of programs to correctly solve specific problems.  AP® Computer Science A also emphasizes the design issues that make programs understandable, adaptable, and when appropriate, reusable.  At the same time, the development of useful computer programs and classes is used as a context for introducing other important concepts in computer science, including the development and analysis of algorithms, the development and use of fundamental data structures, and the study of standard algorithms and typical applications.  In addition, an understanding of the basic hardware and software components of computer systems and the responsible use of these systems are integral parts of the course.

Required Materials: This course requires the download and installation of Java and a Java IDE. The use of PC or Mac with privileges to install software is required.



Major Topics and Concepts


Segment 1

  • Variables and Expressions
  • Strings and User Input
  • Condition Statements
  • Arrays: one and two -dimensional
  • Loops
  • Methods
  • Introduction to OOP and Classes
  • Simple Objects
  • Computer Systems and History


Segment 2

  • Technology and Society
  • Recursion
  • Inheritance & Polymorphism
  • Classes Revisited
  • Abstraction & Interfaces
  • Standard Algorithms to manipulate Arrays
  • Sorting Algorithms
  • Searching Algorithms
  • Program Analysis & Exceptions



Course Materials

AP Course & Exam Registration Requirements

College Board requires students to register for AP exams no later than November 13th (individual schools may set earlier deadlines).

All VLACS AP students are required to enroll in the “course only” section in My AP.  Instructions for joining My AP will be posted on each VLACS course page and instructors are available to help with this process.

Students who plan to take the corresponding AP exam must arrange to take the exam at a local school that administers it. To register for an AP Exam, the local school will enroll the student in an “exam only” section in My AP.  Students should follow these steps:

  • Search for a local test site through this resource of contact AP Services for Students at 888-225-5427 [email protected]. That office can give you contact information for local AP coordinators who may be willing to test outside students. Students are then responsible for contacting coordinators on that list to see if one can arrange to test for you. You should do this no later than October 2nd. Note that schools may have their own local deadlines for receiving requests from outside students to test at their school so we recommend doing this as soon as possible
  • The AP coordinator who agrees to assist you must provide a join code for an “exam only” section in My AP. You’ll use the join code to join the section so that the AP coordinator can order your exam.

Please note that, if a school allows a student to register after the 11/13 deadline, there will be a $40 late exam fee. There will also be a $40 canceled/unused exam fee if a student registers and then cancels his/her exam or if the student does not show up on test day.

More information is available on the College Board’s website: https://apstudents.collegeboard.org/


Primitive Data Types

Students will demonstrate an understanding of primitive data types by formulating print output, explaining primitive data types, and creating code that uses arithmetic expressions and assigns variables.


Students will demonstrate an understanding of objects by creating code that uses the primitive data type char, describing characteristics of strings, creating the scanner class, and comparing programming methods.

Boolean Expressions and if Statements

Students will demonstrate an understanding of boolean expressions and if statements by creating boolean expressions and conditionals, and creating code that uses relational operators and logical operators.

Iterative Control Programming Constructs

Students will demonstrate an understanding of iterative control programming constructs by explaining the process to read and write text files, and creating code that uses while loops, for loops, and nested loops.

Writing Classes

Students will demonstrate an understanding of writing classes by explaining the process of overloading and creating code that uses methods, objects, and classes.


Students will demonstrate an understanding of arrays by formulating one-dimensional arrays, explaining the process of formatting output, and assigning for-each loops.


Students will demonstrate an understanding of ArrayLists by formulating ArrayLists, and creating code that uses iteration algorithms and sorting algorithms.

2D Arrays

Students will demonstrate an understanding of 2D arrays by creating code that uses search algorithms and formulating 2D arrays.


Students will demonstrate an understanding of inheritance by explaining extending classes, formulating class hierarchy, comparing static and non-static methods, and creating code that uses polymorphism and overriding methods.


Students will demonstrate an understanding of recursion by creating code that uses recursive methods and iteration, and assigning merge sort.