Skip Navigation

AP Computer Science A (NCAA Approved)

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: Session Based. See calendar for session dates and application deadlines.

Course Length: 30 weeks (Academic Year)

Recommended School Credit: One academic year

Student Expectations: Students are strongly encouraged to work an average of 8-9 hours per week for the 30-week session with breaks for holidays.

Course Code: APCS

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 Details

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

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.

Zoom online virtual classroom
This course uses an online virtual classroom for discussions with the instructor. The classroom works on standard computers with the Zoom desktop client and also tablets or handhelds that support the Zoom Mobile app. Students who are unable to attend live sessions will need a computer with the Zoom desktop client installed to watch recorded meetings. The Zoom desktop client and Zoom Mobile App are both available for free download.

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.

This course uses Respondus LockDown Browser proctoring software for designated assessments. LockDown Browser is a client application that is installed to a local computer. Visit the Respondus website for system requirements.

While Chromebook can be used to progress through the course, all exams must be completed on a PC or Mac.