TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
TeenCoder™: Java Programming and the “AP* Computer Science A” Exam Requirements Updated March, 2013 The Advanced Placement* (AP) exams offered by the College Board allow high school students to earn college credit by demonstrating mastery of certain subjects. The TeenCoder™: Java Programming curriculum can be used as part of a study program for the “AP Computer Science A” exam. We have carefully studied the exam requirements and ensured that all required conceptual programming topics and Java™ language features are covered in the course. This document contains cross-reference tables detailing each “AP Computer Science A” exam requirement and the corresponding textbook chapter and lesson where the material is covered. You can find the College Board’s full details of the “AP Computer Science A” exam online here: http://media.collegeboard.com/digitalServices/pdf/ap/explore-ap/AP_Computer-Science-ACED_Effective_Fall_2010.pdf Our cross-reference tables are broken into two sections: Topic Outline – This table corresponds to the “Topic Outline” section containing general-purpose programming skills as found in the exam description linked above. Java AP Subset and Library Methods – This table corresponds to Appendix “A” and “B” sections of the exam description linked above that list required Java language and class library features covered on the exam. We have a separate document “Preparing_for_the_AP_Exam.pdf” that describes the overall “AP” experience in more detail and answers several frequently asked questions. Please read that document if you are using this course as part of your AP exam preparation!
http://www.HomeschoolProgramming.com
Page 1 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Topic Outline Cross-Reference Table Major Topics
Corresponding Lesson in
TeenCoder™: Java Programming
Object-Oriented Program Design Program Design Read and understand a problem description, purpose, goals.
Covered in all Chapter Activities
Apply data abstraction and encapsulation.
Chapter 10, Lesson 1
Read and understand class specifications and relationships
Chapters 10 and 15
among the classes Understand and implement a given class hierarchy.
Chapters 15 and 16
Identify reusable components from existing code using
Chapter 10, Lesson 1
classes and class libraries.
Class Design Design and implement a class
Chapter 10
Choose appropriate data representation and algorithms
Chapters 10 and 14
Apply functional decomposition
Chapter 8, Lesson 1
Extend a given class using inheritance
Chapter 10, Lesson 1 and Chapter 15
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 2 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Topic Outline Cross-Reference Table (continued) Major Topics
Corresponding Lesson in
TeenCoder™: Java Programming
Program Implementation Implementation Techniques & Methodology Object-Oriented development
Chapters 10 and 15
Top-Down development
Chapters 15 and 16
Encapsulations and information hiding
Chapter 10, Lesson 1
Procedural abstraction
Chapter 10, Lesson 1
Programming Constructs Primitive data types vs. objects
Chapter 4, Lessons 1 and 3
Constant declarations
Chapter 4, Lesson 2
Variable declarations
Chapter 4, Lesson 2
Class declarations
Chapter 10, Lesson 2
Interface declarations
Chapter 10, Lesson 5
Method declarations
Chapter 8, Lesson 1
Parameter declarations
Chapter 8, Lesson 2
Console output (System.out.println)
Chapter 4, Lesson 4
Method control
Chapter 8, Lesson 3
Sequential control
Chapter 2, Lesson 1
Conditional control
Chapter 7
Iteration
Chapter 13, Lesson 3
Understand and evaluate recursive methods
Chapter 14, Lesson 1
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 3 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Topic Outline Cross-Reference Table (continued) Major Topics
Corresponding Lesson in
TeenCoder™: Java Programming See second cross-reference table below
Java Library Classes
Program Analysis Testing Test classes and libraries in isolation
Chapter 9, Bonus Lesson
Identify boundary cases and generate appropriate test data
Chapter 9, Bonus Lesson
Perform integration testing
Chapter 9, Bonus Lesson
Debugging Categorize errors: compile-time, run-time or logic
Chapter 9, Lesson 1
Identify and correct errors
Chapter 9, Lesson 2
Employ debugging techniques such as using a debugger,
Chapter 9, Lessons 2 and 3
adding extra output statements, or hand-tracing code
Understand and modify existing code
Chapters 9, 10, 15, and 16
Extend existing code using Inheritance
Chapter 15, Lesson 2
Understand error handling and runtime exceptions Chapter 9, Lesson 1 Reason about Programs Pre- and post- conditions
Chapter 9, Lesson 1
Assertions
Chapter 9, Lesson 1
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 4 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Topic Outline Cross-Reference Table (continued) Major Topics
Corresponding Lesson in
TeenCoder™: Java Programming
Analysis of Algorithms Informal comparison of running times
Chapter 14, Lessons 2 and 3
Exact calculation of statement execution counts
Chapter 14, Lesson 2
Numerical Representations and Limits Representation of numbers in different bases
Chapter 4, Bonus Lesson
Limitations of finite representations
Chapter 4, Bonus Lesson
Standard Data Structures Simple (primitive) data types
Chapter 4, Lesson 1
Classes
Chapter 10
Lists
Chapter 13, Lesson 2
Arrays
Chapter 13, Lesson 1
Standard Algorithms Operations on Standard Data Structures Traversals
Chapter 13, Lesson 3
Insertions
Chapter 13, Lesson 2
Deletions
Chapter 13, Lesson 2
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 5 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Topic Outline Cross-Reference Table (continued) Major Topics
Corresponding Lesson in
TeenCoder™: Java Programming
Searching Sequential searches
Chapter 14, Lesson 3
Binary searches
Chapter 14, Lesson 3
Sorting Selection
Chapter 14, Lesson 2
Insertion
Chapter 14, Lesson 2
Mergesort
Chapter 14, Lesson 2
Computing in Context System reliability
Chapter 1, Lesson 1
Privacy
Chapter 1, Lesson 1
Legal issues and intellectual property
Chapter 1, Lesson 1
Social and ethical ramifications of computer use
Chapter 1, Lesson 1
(This ends the Topic Outline Cross-Reference Table!)
The following pages contain a second cross-reference table covering the required Java AP Subset and Library Methods.
http://www.HomeschoolProgramming.com
Page 6 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Java AP Subset and Library Methods Cross-Reference Table Java AP Subset or Library Method
Corresponding Lesson in
TeenCoder™: Java Programming
Java AP Subset Primitive data types int, boolean and double
Chapter 4, Lesson 1
String concatenation, String.substring(), String.equals()
Chapter 5, Lessons 1, 2, 3
Arithmetic operators: +, -, *, / and %
Chapter 4, Lesson 2
The increment (++) and decrement (--) operators
Chapter 4, Lesson 2
Using the assignment operator (=)
Chapter 4, Lesson 2
The combined assignment/arithmetic operators:
Chapter 4, Lesson 2
+=, -=, *=, /=, and %= Relational operators: ==, !=, , =
Chapter 7, Lesson 1
Logical operators: &&, ||, and !
Chapter 7, Lesson 1
Numeric casts like (int) and (double)
Chapter 4, Lesson 2
Understanding truncation and rounding
Chapter 4, Lesson 2, Bonus Lesson
String concatenation with + and toString()
Chapter 5, Lesson 4
Escape sequences in strings (\\, \n and \")
Chapter 4, Lesson 4
Testing of output with System.out.print or
Chapter 9, Lesson 1
System.out.println methods One-dimensional and Two-dimensional arrays
Chapter 13, Lesson 1
Creating arrays of primitive data or of Objects
Chapter 13, Lesson 1
Initialization of named arrays
Chapter 13, Lesson 1
Using array[0].length in 2-D arrays
Chapter 13, Lesson 1
Control structures: if and if/else
Chapter 7, Lesson 2
Control structure: while loops
Chapter 7, Lesson 4
Control structure: for loops
Chapter 7, Lesson 3
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 7 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Java AP Subset and Library Methods Cross-Reference Table (continued) Java AP Subset or Library Method
Corresponding Lesson in
TeenCoder™: Java Programming
Control structure: enhanced for loops
Chapter 13, Lesson 3
Returning from a control structure
Chapter 7, Lesson 2; Chapter 8, Lesson 2
Method overloading
Chapter 8, Lesson 2
Constructing objects with new
Chapter 10, Lesson 2
Object constructors
Chapter 10, Lesson 4
Invoking accessor or modifier methods
Chapter 10, Lesson 2
Modify existing classes
Multiple Chapter Activities
Design your own classes
Chapter 10
Usage of public and private visibility
Chapter 10, Lesson 3
Commenting code with /* */ and //
Chapter 2, Lesson 1
JavaDoc comments /** */, @param, and @return
Chapter 2, Bonus Lesson
The final keyword with constant values
Chapter 4, Lesson 2
Defining and using static methods
Chapter 10, Lesson 6
Using static variables
Chapter 10, Lesson 6
The null reference
Chapter 4, Lesson 3
Using “this” to pass implicit parameters
Chapter 10, Lesson 2
Using the super to invoke superclass constructors
Chapter 15, Lesson 6
Create constructors that initialize all instance variables
Chapter 10, Lesson 4
Knowledge of implementing interfaces
Chapter 10, Lesson 5
Knowledge of extending classes
Chapter 15, Lesson 2
Understand inheritance and polymorphism
Chapter 15 Lessons 2 and 3
Creating and Implementing sub-classes
Chapter 15, Lesson 2
Understand abstract classes and abstract methods
Chapter 15, Lesson 2
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 8 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Java AP Subset and Library Methods Cross-Reference Table (continued) Java AP Subset or Library Method Ability to create and implement interfaces and classes, given
Corresponding Lesson in
TeenCoder™: Java Programming Chapters 10, 15, 16
a description of functionality Understand the difference between object equality equals()
Chapter 15, Lesson 5
and identity (==) Understand that conversion from a subclass to a super class
Chapter 15, Lesson 3
does not require casting Ability to cast classes from one type to another
Chapter 15, Lesson 3
Understand packages and import statements
Chapter 2, Lesson 3
Usage of generic classes and interfaces
Chapter 13, Lesson 2
Understand exceptions like NullPointerException,
Chapter 9, Lesson 1
ArrayIndexOutOfBoundsException, ArithmeticException, ClassCastException, and IllegalArgumentException.
Standard Java Library Methods class java.lang.Object
Chapter 15, Lesson 5
boolean equals(Object other)
Chapter 15, Lesson 5
String toString()
Chapter 15, Lesson 5
class java.lang.Integer
Chapter 4, Lesson 1
Integer(int value)
Chapter 4, Lesson 3
int intValue()
Chapter 4, Lesson 1
Integer.MIN_VALUE
Chapter 4, Lesson 1
Integer.MAX_VALUE
Chapter 4, Lesson 1
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 9 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Java AP Subset and Library Methods Cross-Reference Table (continued) Java AP Subset or Library Method
Corresponding Lesson in
TeenCoder™: Java Programming
class java.lang.Double
Chapter 4, Lesson 1
Double(double value)
Chapter 4, Lesson 3
double doubleValue()
Chapter 4, Lesson 1
class java.lang.String
Chapter 5
int length()
Chapter 5, Lesson 2
String substring(int from, int to)
Chapter 5, Lesson 2
String substring(int from)
Chapter 5, Lesson 2
int indexOf(String str)
Chapter 5, Lesson 2
int compareTo(String other)
Chapter 5, Lesson 2
class java.lang.Math
Chapter 4, Bonus Lesson
static int abs(int x)
Chapter 4, Bonus Lesson
static double abs (double x)
Chapter 4, Bonus Lesson
static double pow(double base, double exponent)
Chapter 4, Bonus Lesson
static double sqrt(double x)
Chapter 4, Bonus Lesson
static double random()
Chapter 4, Bonus Lesson
(Table continued next page!)
http://www.HomeschoolProgramming.com
Page 10 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.
TeenCoder™: Java Programming and “AP Computer Science A” Exam Requirements Copyright 2013 Homeschool Programming, Inc.
Java AP Subset and Library Methods Cross-Reference Table (continued) Java AP Subset or Library Method
Corresponding Lesson in
TeenCoder™: Java Programming
interface java.util.List
Chapter 13, Lesson 2
int size()
Chapter 13, Lesson 2
boolean add(E obj)
Chapter 13, Lesson 2
void add(int index, E obj)
Chapter 13, Lesson 2
E get(int index)
Chapter 13, Lesson 2
E set(int index, E obj)
Chapter 13, Lesson 2
E remove (int index)
Chapter 13, Lesson 2
class java.util.ArrayList
Chapter 13, Lesson 2
implements java.util.List (This ends the Java AP Subset and Library Methods Cross-Reference Table)
http://www.HomeschoolProgramming.com
Page 11 of 11
* AP and Advanced Placement Program are registered trademarks of the College Entrance Examination Board, which was not involved in the production of and does not endorse this product “TeenCoder” and “Homeschool Programming, Inc.” are trademarks of Homeschool Programming, Inc.