1. Read and understand a problem description, purpose, and goals.
2. Apply data abstraction and encapsulation.
3. Read and understand class specifications and relationships among the classes
(“is-a,” “has-a” relationships).
4. Understand and implement a given class hierarchy.
5. Identify reusable components from existing code using classes and class
libraries.
Class Design
Nota:
1. Design and implement a class.
2. Choose appropriate data representation and algorithms.
3. Apply functional decomposition.
4. Extend a given class using inheritance.
Program Implementation
Programming constructs
Primitive types vs. objects
Declaration
Nota:
a. Constant declarations
b. Variable declarations
c. Class declarations
d. Interface declarations
e. Method declarations
f. Parameter declarations
Console output (System.out.print/println)
Control
Nota:
a. Methods
b. Sequential
c. Conditional
d. Iteration
e. Understand and evaluate recursive methods
Implementation Techniques
Methodology
Nota:
a. Object-oriented development
b. Top-down development
c. Encapsulation and information hiding
d. Procedural abstraction
Java library classes (included in the AP Java subset)
Program Analysis
Debugging
Nota:
1. Categorize errors: compile-time, run-time, logic.
2. Identify and correct errors.
3. Employ techniques such as using a debugger, adding extra output statements,
Understand and modify existing code
Extend existing code using inheritance
Understand error handling
Nota:
Understand runtime exceptions
Reason about prograing
Nota:
1. Pre- and post-conditions
2. Assertions
Analysis of algorithms
Nota:
1. Informal comparisons of running times
2. Exact calculation of statement execution counts
Numerical representations and limits
Nota:
1. Representations of numbers in different bases
2. Limitations of finite representations (e.g., integer bounds, imprecision of
floating-point representations, and round-off error)
Testing
Nota:
Testing
1. Test classes and libraries in isolation.
2. Identify boundary cases and generate appropriate test data.
3. Perform integration testing.
Standard Data Structures
Nota:
Data structures are used to represent information within a program. Abstraction is an
important theme in the development and application of data structures.
Simple Data Types
Nota:
int, boolean
Classes
Lists
Arrays
Standard Algorithms
Nota:
Standard algorithms serve as examples of good solutions to standard problems. Many
are intertwined with standard data structures. These algorithms provide examples for
analysis of program efficiency.
Operations on Data Structures
Nota:
1. Traversals
2. Insertions
3. Deletions
Searching
Nota:
1. Sequential
2. Binary
Sorting
Nota:
1. Selection
2. Insertion
3. Mergesort
Computing in Context
Nota:
An awareness of the ethical and social implications of computing systems is necessary
for the study of computer science. These topics need not be addressed in detail but
should be considered throughout the course.