AP® Computer Science
AP® Computer Science: Java Programming is an introductory computer science course leading to the College Board's Advanced Placement Computer Science A exam. Over 3,000 students used eIMACS' APCS course this past school year!
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 coding activities, eight labs, and graded tests.
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
Activity 1: Rounding
Quick Reference 2
Test 2
Activity 2: Circles and Spheres
Strings
Concatenation
String Methods
Displaying Messages
Converting Between Numbers and Strings
Activity 3: Strings 1
Quick Reference 3
Test 3
Booleans
Relational Operators
Comparing Strings
Logical Operators
Activity 4: Booleans
Quick Reference 4
Test 4
Arrays
Activity 5: Arrays
Quick Reference 5
Test 5
Program Control
Conditional Statements
Blocks
Activity 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
Activity 7: Checksums
Activity 8: The Luhn Algorithm
Activity 9: Statistics
Activity 10: Ordinal Numbers
Quick Reference 9
Test 9
Methods
Static Methods
Defining New Static Methods
Activity 11: Strings 2
Quick Reference 10
Test 10
The main Method
Comments
Lab 1: Chatter
Multiple Variable Declarations
Overloaded Methods
Activity 12: Optional Arguments
Recursive Methods
Activity 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
Activity 14: Address Objects
Lab 2: Points and Rectangles
Quick Reference 12
Test 12
Arrays and Objects
Activity 15: Check Please!
ArrayLists
Activity 16: On the Menu
Lab 3: Poker
Programming Strategies
Quick Reference 13
Test 13
Inheritance and Polymorphism
Extending Classes
Activity 17: Airplanes
Class Hierarchies
Activity 18: Components
Polymorphism
Quick Reference 14
Test 14
Overriding Methods
Activity 19: Inheriting from Object
Lab 4: Inventory Tracking
Quick Reference 15
Test 15
Class Definitions Revisited
Class Methods
Class Variables and Constants
final Block Variables
Activity 20: A Volume Calculator Class
Multiple Constructors
public and private
Overloaded Instance Methods
Activity 21: Flower Arrangments
Integer and Double
Activity 22: Integer and Double
Using this
Object Aliasing
Activity 22: this and That
Quick Reference 16
Test 16
Abstractions
Abstract Classes
Activity 24: More on Transactions
Interfaces
The List<E> Interface
Activity 25: Startable Objects
The Comparable<T> Interface
Activity 26: Weather Report
The EventListener Interface
Lab 5: Turtle Geometry
Quick Reference 17
Test 17
Algorithms
Introduction
Algorithms
Traversals
Replacements
Activity 27: Phone Extensions 1
Insertions
Deletions
Activity 28: Phone Extensions 2
Lab 6: Image Processing
Searching and Sorting
Sequential search
Binary search
Quick Reference 18
Test 18
Selection sort
Insertion sort
Activity 29: A Selection of Sorts
Merge sort
Lab 7: Comparing Sorts
Quick Reference 19
Test 19
Program Analysis
Introduction
Assertions and Exceptions
Activity 30: Argument Checking
Lab 8: Elevens
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
Activity 31: Sorting with compareTo
Program Analysis
Loop Invariants
Order of Growth Analysis
Big-O Analysis
Quick Reference 20
Test 20
Data Structures
Abstract Data Types
ArrayLists
Linked Lists
Iterators
List Iterators
Activity 32: The StringList class
Quick Reference 21
Test 21
Stacks
Queues
Priority Queues
Quick Reference 22
Test 22
Sets
Maps
Quick Reference 23
Test 23
Trees
Binary Trees
Binary Tree Traversals
Binary Search Trees
Heaps
Quick Reference 24
Test 24
Making Android Apps: A Tutorial
Getting Ready to Make Android Apps
Introduction
Setting Up The Android Development Kit
A First App
A Simple First App
Running Your First Android App
A Maze App
Developing a Maze App
A Simple Maze-creating Algorithm
Implementation
Importing the Maze App Code
Examining the Maze App Code
An Improved Maze Algorithm
A Maze-Navigation App
Navigating the Maze
A Maze-Solving App
Solving the Maze
A More Sophisticated Maze App
Using the Accelerometer
How Does It Work?
Escaping the Maze
Quick Reference 25
Test 25
Epilogue
The Advanced Placement Examination
Review and Practice
Android App Development
AP® Computer Science: Java Programming includes an advanced tutorial that introduces students to the app development process, from setting up the integrated development environment (IDE) to programming a game app to running it on a mobile Android device. Important aspects of the larger development process are also covered, including an understanding of key technical terminology, how various components of the project code fit together, and how to implement modifications and updates.
The Android app tutorial is presented in a lab format, with students writing code online prior to integrating it into a project in their chosen IDE, and then following detailed guidelines to debug, modify, and improve the behavior of the resulting app. The section includes a number of online coding tasks and a single online test, all of which are autograded.
Labs
AP® Computer Science: Java Programming provides eight labs that exceed the College Board's requirement that students should spend at least 20 hours working in a Java integrated development environment (IDE). Each lab provides the starter code for a project to be imported into a suitable IDE — eIMACS supports the Eclipse and NetBeans IDEs, both of which are free to download and install. Students are guided to develop full-blown, working Java projects in their chosen IDE.
Lab titles: (1) Chatter, (2) Points and Rectangles, (3) Poker, (4) Inventory Tracking, (5) Turtle Geometry, (6) Image Processing, (7) Comparing Sorts, and (8) Elevens.
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 (US Eastern Time). 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.