AP Computer Science A ✏ In a Nutshell



1. Introductory Java Language Features

A summary of Introductory Java Language Features: Packages and Classes, Identifiers, Built-in Types, Final Variables (Constants), Storage of Numbers, Hexadecimal and Octal Numbers, Operators, Relational Operators, Logical Operators, Assignment Operators, System Output, Escape Sequences, Control Structures: if Statements, Switch Statements, Loops, Common Loop Pitfalls, Errors and Exceptions, Handling Errors

2. Classes and Objects

A summary of Classes and Objects: Objects, Classes, Public Private and Static, Methods, Constructors, Accessors and Mutators, Static Methods, Method Overloading, Scope Rules, Reference vs. Primitive Types, Passing Parameters, Null References, Using the this Keyword, Garbage Collection, Good Class Design Principles

3. Inheritance and Polymorphism

A summary of Inheritance and Polymorphism: Inheritance, Inheritance Hierarchy, Implementing Subclasses with extends, Method Overriding and the super Keyword, Constructors and super, Rules for Subclasses, Declaring Subclass Objects, Polymorphism, Dynamic Binding (Late Binding), Type Compatibility and Downcasting, Abstract Classes and Methods, Benefits of Inheritance and Polymorphism, Best Practices

4. Some Standard Classes

A summary of Some Standard Classes: The Object Class, The String Class, Comparing Strings, Important String Methods, Processing Strings in Programs, Wrapper Classes Integer and Double, The Math Class, Generating Random Numbers, Randomness in Simulations, Common Errors with Math.random()

5. Program Design and Analysis

A summary of Program Design and Analysis: Software Development, Types of Errors, Robustness, Test Data Selection, Program Maintenance, Object-Oriented Program Design, Using UML Diagrams, Program Implementation Strategies, Top-Down Development, Procedural Abstraction, Data Encapsulation, Program Analysis Efficiency and Correctness, Common Efficiency Patterns, Correctness, Examples of Good Program Analysis

6. Arrays and Array Lists

A summary of Arrays and Array Lists: One-Dimensional Arrays, Array Initialization, Array Length, Traversing Arrays, Arrays as Parameters, Shuffling Arrays, Arrays in Classes, Analyzing Array Algorithms, ArrayLists, ArrayList Initialization and Usage, Traversing ArrayLists, Removing Elements from ArrayLists, Two-Dimensional Arrays, Traversing 2D Arrays, Row-Major and Column-Major Traversal, Key 2D Array Methods, Common Mistakes with 2D Arrays

7. Recursion

A summary of Recursion: Recursive Methods, General Form of Recursive Methods, Writing Recursive Methods, Analysis of Recursive Methods, Guidelines for Using Recursion, Recursive Helper Methods, Recursion in Two-Dimensional Grids, Common 2D Recursive Problems, Example of 2D Recursion, Sample Free-Response Question Fractal Pattern, Tracing Recursive Calls, Common Mistakes in Recursion

8. Sorting and Searching

A summary of Sorting and Searching: Selection Sort, Insertion Sort, Common Points Selection vs Insertion Sort, Recursive Sorts Merge Sort and Quicksort, Sorting Algorithms in Java, Sequential (Linear) Search, Binary Search, Efficiency Comparisons, Choosing the Right Search or Sort