Skip to content

High School AP Computer Science A

Pre Requisites

Algebra I and II recommended


The AP Computer Science A course is an introductory computer science course. A large part of the course involves developing the skills to write programs or parts of programs that correctly solve specific problems. The course 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.

Segment One

Module 01 - Primitive Types

  • Course Folder Management
  • Installing Java
  • Installing the BlueJ IDE
  • Student Contact Card
  • Stylish Java
  • Order of Operations
  • Printing Arithmetic Expressions
  • Primitive Data Type: ints
  • Primitive Data Type: doubles
  • Arithmetic Expressions
  • Primitive Data Type Conversions
  • Pitfalls, Surprises, and Shortcuts

Module 02 - Using Objects

  • Pseudocode, Recipe for Success
  • The Java API
  • Java's Math Class
  • Primitive Data Types: char
  • String Objects Lite
  • String Class Methods: The Basics
  • Scanner Class Methods
  • Parsing
  • Calling Methods in Java

Module 03 - Boolean Expressions and if Statements

  • Getting Started with if Statements
  • Number Systems
  • Primitive Data Types: booleans
  • Condition Statements: if
  • Condition Statements: if-else
  • Condition Statements: if-else-if
  • Comparing Strings
  • Logical Operator

Module 04 - Iteration

  • Loops
  • While Loops (Part 1)
  • While Loops (Part 2)
  • Reading Text Files
  • For Loops
  • Nested Loops
  • Writing Text Files

Module 05 - Writing Classes

  • Procedural and OOP Styles
  • Defining New Static Methods: Part 1
  • Defining New Static Methods: Part 2
  • Getting Started with Objects
  • Instances of a Class
  • Default Constructors
  • Constructors with Parameters
  • Overloading Methods and Using Two Classes
  • Constructing Multiple Objects
  • Programming Ethics and Security

Segment Two

Module 06 - Arrays

  • Getting Started With Arrays
  • One-Dimensional Arrays
  • Formatting Output
  • The for-each Loop
  • Arrays of Objects
  • Computer Science Lab: Magpie Part 1

Module 07 - ArrayList

  • Introduction to Standard Algorithms
  • ArrayLists I
  • ArrayLists II
  • Challenge Program
  • Traversals Lesson
  • Replacements Lesson
  • Insertions Lesson
  • Deletions Lesson
  • Insertion Sort
  • Selection Sort
  • Computer Science Lab: Magpie Part 2

Module 08 - 2D Array

  • Introduction to Searching
  • Sequential Search
  • Binary Search
  • 2D Array Part 1
  • 2D Array Part 2
  • Computer Science Lab: Picture

Module 09 - Inheritance

  • Introduction to Inheritance and Polymorphism
  • Extending Classes
  • Class Hierarchies
  • Polymorphism
  • Overriding Methods
  • Design Strategy: Iterative and Incremental
  • Static Means Never Having to Instantiate an Object
  • Class Variables and Constants
  • Thinking Outside the Box

Module 10 - Recursion

  • Getting Started with Recursion
  • Divide et Impera
  • Real-World Recursion
  • The Recursive Leap of Faith
  • There and Back Again
  • Are We There Yet?
  • Recursive Strings and Things
  • Computer Science Lab: Elevens

Ready to Get Started?

Discover the Future at FlexPoint Virtual School… Your Customized Classroom of One

Learn How to Enroll