Skip Navigation

AP Computer Science A

Open to: Grades 9 - 12

Prerequisites: Qualifying math score; 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) or 12 weeks (intensive Early Summer and Mid-summer). This course is not offered during the winter session.

Recommended School Credit: One academic year

Student Expectations: Students are strongly encouraged to work an average of 18-20 hours per week for intensive 12-week sessions with no breaks, and 8-9 hours per week for the 30-week session with breaks for holidays.

Course Code: APCS

Course Description

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, 10th Edition, Prentice-Hall, 2014.

ISBN-13: 978-0132575652

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

Arrays

  • 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.

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.