AP® Computer Science
AP® Computer Science: Java Programming is a computer science course leading to the College Board's Advanced Placement Computer Science exam.
AP® Audit Information
IMACS is an authorized online provider. Schools that
teach this course are NOT required to submit an audit to the College Board.
More »
The curriculum is presented on web pages in which Java compilers are embedded at key points. A Java compiler web service takes care of the compilation and execution of Java programs, so students require only an internet browser. The course covers the full exam syllabus. A chapter containing practice free-response questions is also included. Additionally, the course contains a optional chapter loaded with challenging topics (beyond the scope of the AP® exam) that will be of interest to more advanced students.
Introduction
Welcome
How To Use This Course
Computing in Context
Introduction
Hardware
Systems and System Software
Responsible Use of Computer
Java Basics
Variables and Expressions
Integers
Doubles
Casting
Quick Reference 1
Test 1
Arithmetic Expressions
Pitfalls and Surprises
Declaring and Assigning Values to Variables
Programming Shortcuts
Lab 1: Rounding
Quick Reference 2
Test 2
Lab 2: Circles and Spheres
Strings
Concatenation
String Methods
Displaying Messages
Converting Between Numbers and Strings
Lab 3: Strings 1
Quick Reference 3
Test 3
Booleans
Relational Operators
Comparing Strings
Logical Operators
Lab 4: Booleans
Quick Reference 4
Test 4
Arrays
Lab 5: Arrays
Quick Reference 5
Test 5
Program Control
Conditional Statements
Blocks
Lab 6: Airline Meals
Quick Reference 6
Test 6
Iteration
While Loops
Quick Reference 7
Test 7
For Loops
Quick Reference 8
Test 8
For-each Loops
Lab 7: Checksums
Lab 8: The Luhn Algorithm
Lab 9: Statistics
Lab 10: Ordinal Numbers
Quick Reference 9
Test 9
Methods
Static Methods
Defining New Static Methods
Lab 11: Strings 2
Quick Reference 10
Test 10
The main Method
Comments
Multiple Variable Declarations
Overloaded Methods
Lab 12: Optional Arguments
Recursive Methods
Lab 13: Recursion
Quick Reference 11
Test 11
Object-oriented Programming
Object-oriented Programming Concepts
OOP and Java
Classes and Instances
Simple Objects
A Person Class
A Point Class
Public Classes and the Java Compiler
The Java Compiler and the Virtual Machine
Errors, Exceptions, and Garbage Collection
Lab 14: Address Objects
Project 1
Quick Reference 12
Test 12
Arrays and Objects
Lab 15: Check Please!
ArrayLists
Lab 16: On the Menu
Project 2
Quick Reference 13
Test 13
Inheritance and Polymorphism
Extending Classes
Lab 17: Airplanes
Class Hierarchies
Lab 18: Components
Polymorphism
Quick Reference 14
Test 14
Overriding Methods
Lab 19: Inheriting from Object
Project 3
Quick Reference 15
Test 15
Class Definitions Revisited
Class Methods
Class Variables and Constants
final Block Variables
Multiple Constructors
public and private
Overloaded Instance Methods
Lab 21: Flower Arrangments
Integer and Double
Lab 22: Integer and Double
Using this
Object Aliasing
Lab 22: this and That
Quick Reference 16
Test 16
Abstractions
Abstract Classes
Lab 24: More on Transactions
Interfaces
The List<E> Interface
Lab 25: Startable Objects
The Comparable<T> Interface
Lab 26: Weather Report
The EventListener Interface
Project 4
Quick Reference 17
Test 17
Algorithms
Introduction
Algorithms
Traversals
Replacements
Lab 27: Phone Extensions 1
Insertions
Deletions
Lab 28: Phone Extensions 2
Searching and Sorting
Sequential search
Binary search
Quick Reference 18
Test 18
Selection sort
Insertion sort
Lab 29: A Selection of Sorts
Merge sort
Project 5
Quick Reference 19
Test 19
Program Analysis
Introduction
Assertions and Exceptions
Lab 30: Argument Checking
GridWorld Case Study
Introducing GridWorld
Introduction
Running the Smulation
A Peek at Some Code!
GridWorld Classes and Interfaces
Overview
Locations
The Grid<E> Interface
Quick Reference 20
Test 20
Actors
Rocks
Flowers
Bugs
Critters
Quick Reference 21
Test 21
Extending GridWorld Classes
Introduction
Extending the Critter class
Extending the Bug class
Extending the Actor class
Choosing a Superclass
Quick Reference 22
Test 22
Practice Free-Response Questions
The Free-Response Section of the AP Exam
Introduction
Practice Questions
Question Set 1
Question Set 2
Question Set 3
Interlude
Course Information
What's Next?
Advanced Topics
Introduction
An Overview
Searching and Sorting
Hashing
Quicksort
Lab 31: Sorting with compareTo
Program Analysis
Loop Invariants
Order of Growth Analysis
Big-O Analysis
Quick Reference 23
Test 23
Data Structures
Abstract Data Types
ArrayLists
Linked Lists
Iterators
List Iterators
Lab 32: The StringList class
Quick Reference 24
Test 24
Stacks
Queues
Priority Queues
Quick Reference 25
Test 25
Sets
Maps
Quick Reference 26
Test 26
Trees
Binary Trees
Binary Tree Traversals
Binary Search Trees
Heaps
Quick Reference 27
Test 27
Grid Data Structures
Overview
The AbstractGrid<E> class
The BoundedGrid<E> class
The UnboundedGrid<E> class
Quick Reference 28
Test 28
Epilogue
The Advanced Placement Examination
Review and Practice
Interspersed within a well-organized curriculum are exercises to be completed using an embedded Java compiler, graded labs, and tests that are graded automatically. Teachers access an "electronic gradebook" to monitor students' progress.
Additional teacher support materials include substantial programming projects complete with model solutions. Each project is in downloadable PDF format, and includes code for use with the BlueJ interactive Java environment. (The BlueJ development environment is downloadable free, and eIMACS provides detailed download and installation instructions.)
The course is designed to be studied either at a student's own pace, or at a pace set by the teacher. This flexibility allows the teacher to permit the more capable students to proceed rapidly at their own pace (and even study the optional, advanced topics), allowing the teaching to more carefully guides the progress of students of lesser ability or motivation.
The course requires that students have access to the internet using a recent browser.
Embedded Compiler
AP® Computer Science: Java Programming makes use of a web service to embed a Java compiler directly into interactive web pages. The authors use this technology to reveal only those code segments that are immediately relevant to the student. The resulting programs can be executed online with the press of a button.
The advantage offered by this technology is huge! Beginning students can write and test simple programs from the get-go, and it allows more advanced students to focus on the issues immediately at hand.
In addition, the interactive web pages include a Java "single step debugger", which students use to single step through programs observing the flow of control and changing variable values.
Automatic Grading
AP® Computer Science: Java Programming features interactive exercises, in which students use the embedded compiler to write and test Java programs, and integrated multiple choice tests.
Test questions are graded by application servers in at the Institute for Mathematics and Computer Science's headquarters in Plantation, Florida, with results relayed immediately to students via the interactive web pages.
Students' progress is monitored using an online electronic gradebook. As each student completes a test, the test is graded automatically and the grade is entered into the gradebook.
Each student has access to his or her grades, and teachers have access to a full gradebook showing the progress of all students in their classes.
Please note that IMACS does not order AP exams for students. Obtaining a copy of the actual AP exam must be arranged through your school or you can visit the College Board's website here for more information.
Testimonials
This online course is used in institutions across the USA and internationally. Several teachers have taken the time to describe their experiences with this course. Read the testimonials »