Skip Navigation

AP Computer Science A


Open to: Grades 9 - 12

Eligibility: CTY-level or Advanced CTY-level math score required

Prerequisites: Completion of Algebra I and high school Introductory Computer Science course

Course Format: Individually Paced

Course Length: Typically 6-9 months

Recommended School Credit: One academic year

Course Code: ACS

Course Description


The AP Computer Science A course covers topics typically found in a college-level first course in computer science, and provides a solid preparation for the AP Computer Science A examination. The course emphasis is on procedural abstraction, data abstraction, object-oriented design and programming methodology using the Java programming language, and the use of algorithms and data structures.

Major topical areas include:

  • the concepts of computer science
  • program control constructs
  • use of arrays and strings
  • class methods
  • object-oriented design and programming concepts
  • creating and modifying classes
  • understanding existing designs and code
  • the use of sorting and searching algorithms
  • recursion
  • use of standard Java class libraries

Highly qualified instructors guide students through video lectures, readings, forum discussions, design and programming exercises, project assignments, and other resources. Student knowledge is assessed through homework assignments, projects, and exams.

Materials Needed

A textbook purchase is required for this course:

Java: How to Program (Late Objects Version), P. Deitel and H. Deitel, 11th Edition, Prentice-Hall, 2017.

ISBN-13: 9978-0134791401

Please note: If students purchase a used book, they may need to purchase a subscription to the online resources offered by the book.


Detailed Course Information

Course Information

Getting Started With Computer Science & Java

  • Computing Concepts
  • Computing Languages
  • Software Development Steps
  • Social & Ethical Issues
  • Java History & Architecture
  • The Structure of a Java Program
  • Compiling & Running a Java Program
  • Compiler, runtime, and logic errors
  • Source Code Comments & Program Documentation
  • Doing Basic Program Output

Java Programming Basics

  • Declaring & Initializing Java Variables
  • The Scope & Lifetime of Variables
  • Defining & Using Constants
  • Java Primitive Types
  • Arithmetic Operators
  • Relational Operators
  • Precedence & Order of Evaluation
  • Mixed Mode Expressions & Type Conversion
  • Getting user input

Program Control Structures - 1

  • Increment & Decrement Operators
  • Logical Operators
  • The if-else Construct
  • The switch Construct
  • The Conditional Operator
  • Nesting Control Structures

Program Control Structures - 2

  • Assignment Operators
  • The for Construct
  • The while Construct
  • The do-while Construct
  • Comparing the Java Iteration Constructs
  • Nested Iteration Constructs
  • Additional Iteration Topics

Introduction to Java Class Methods

  • Defining Class Methods
  • The Scope of Method Arguments & Variables
  • Passing Arguments to Class Methods
  • Returning Values From Class Methods
  • Method Overloading
  • Type Conversion & Type Checking
  • Some Built-In Java Class Methods
  • Method documentation


  • Creating & Using Arrays
  • Initializing Arrays
  • Passing Arrays As Method Arguments
  • Returning Arrays From Methods
  • Multi-Dimensional Arrays
  • Referencing Arrays Dynamically

Working With Java Strings & Files

  • Creating & Using String Objects
  • Manipulating Strings
  • String Immutability & Equality
  • Passing Strings To & From Methods
  • String Arrays
  • File input & output
  • Number systems

Introduction to Object-Oriented Design & Programming – Part 1

  • Identifying Classes, Attributes & Behaviors
  • Defining & Using Classes
  • Controlling Access To Class Members
  • Class Constructors
  • Class Variables & Class Methods
  • Method Overloading

Object-Oriented Design & Programming – Part 2

  • Class Design Guidelines
  • Designing Classes Using Containment
  • Designing Classes Using Aggregation & Composition
  • Layered Design Principles
  • Translating Requirements Into a Design
  • GUI input (dialog boxes)

Inheritance - Part 1

  • Introduction to Inheritance
  • Inheritance & Class Visibility
  • Base Class Constructors
  • Method Overriding
  • Preventing Inheritance
  • The Object superclass
  • Casting Objects

Inheritance - Part 2

  • Runtime Polymorphism
  • Abstract Methods & Abstract Classes
  • Inheritance Design Guidelines
  • Introduction to Interfaces
  • Defining & Using Interfaces
  • Interfaces & Polymorphism

Java Wrappers, Collections & Generics

  • Java Wrapper Classes
  • Collections & Generics
  • Working With The Array List Class
  • Working With The Linked List Class
  • Working With Map Classes

Exception Handling

  • Introduction to Exceptions
  • The Java Exception Hierarchy
  • Handling Exceptions

Working with GUI Components - 1

  • Java Swing Classes
  • Labels, Text Fields, Panels & Frames
  • Using Lists & Buttons

Working with GUI Components - 2

  • Events & Event Listeners
  • Using Check Boxes & Combo Boxes
  • Using Text Areas & Scroll Panes
  • Using Radio Buttons
  • Layout Managers

Recursion, Searching & Sorting

  • Recursion Concepts
  • Recursion vs. Iteration
  • Recursion Applications
  • Linear Search
  • Binary Search
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Algorithm complexity

Preparation for AP Exam

Back to top


Technical Requirements

This course requires a properly maintained computer with high-speed internet access and an up-to-date web browser (such as Chrome or Firefox). The student must be able to communicate with the instructor via email. Visit the Technical Requirements and Support page for more details.

The student will need the Java Runtime Environment.

This course uses an online virtual classroom for discussions with the instructor. The classroom works on standard computers with the Adobe Connect Add-in or Adobe Flash plugin, and also tablets or handhelds that support the Adobe Connect Mobile appStudents who are unable to attend live sessions will need a computer with the Adobe Connect Add-in or Adobe Flash plugin installed to watch recorded meetings. The Adobe Connect Add-in, Adobe Flash plugin, and Adobe Connect Mobile app are available for free download. Students who do not have the Flash plug-in installed or enabled on their browsers will be prompted to download and install the Adobe Connect add-in when accessing the virtual classroom.

Most course lectures may be viewed on mobile devices, but in some cases assignments and quizzes must be completed on a desktop or laptop computer.

Chromebooks are not recommended due to required downloading of specialized software.