AP® Computer Science
AP® Computer Science: Java Programming is an introductory computer science course leading to the College Board's Advanced Placement Computer Science exam.
The course can be completed in eight months, allowing students time to review for and take the AP® exam. Not only does the course cover all the contents required for the AP® exam, but it also contains optional sections covering more advanced topics.
Interspersed within a well-organized exposition are exercises to be completed using an embedded Java compiler, graded labs, and graded tests. Additional materials include guided programming projects in downloadable PDF format that a student attempts as he or she reaches certain milestones.
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
Procedures
Each student is assigned a principal IMACS instructor, and is given unlimited access to the curriculum during the registration period.
The principal instructor is available by phone or by email during regular business hours. Additionally, the principal instructor or other IMACS instructors are available via the online Help Desk, monitored seven days a week including evenings.
Students submit assignments and tests online. Scores for assignments and tests are accumulated into the student's online gradebook so that parents, students and instructors can monitor student progress.
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.