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.