Please enable JavaScript to use CodeHS

AP Computer Science A Textbook

1. Primitive Types {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.1 Introduction {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.2 Why programming? Why Java? {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.3 Variables and Data Types {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.4 Expressions and Assignment Statements {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.5 Compound Assignment Operators {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 1.6 Casting and Range of Variables
2. Using Objects {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.1 Objects: Instances of Classes {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.2 Creating and Storing Objects (Instantiation) {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.3 Calling a Void Method {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.4 Calling a Void Method with Parameters {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.5 Calling a Non-void Method {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.6 String Objects: Concatenation, Literals & More {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.7 String Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.8 Wrapper Classes: Integers and Doubles {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 2.9 Using the Math Class
3. Boolean Expressions and if Statements {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.1 Boolean Expressions {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.2 if Statements and Control Flow {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.3 if-else Statements {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.4 else if Statements {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.5 Compound Boolean Expressions {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.6 Equivalent Boolean Expressions {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 3.7 Comparing Objects
4. Iteration {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 4.1 while Loops {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 4.2 for Loops {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 4.3 Developing Algorithms Using Strings {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 4.4 Nested Iteration {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 4.5 Informal Code Analysis
5. Writing Classes {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.1 Anatomy of a Class {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.2 Constructors {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.3 Documentation with Comments {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.4 Accessor Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.5 Mutator Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.6 Writing Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.7 Static Variables and Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.8 Scope and Access {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.9 this Keyword {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 5.10 Ethical and Social Implications of Computing Systems
6. Arrays {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 6.1 Array {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 6.2 Traversing Arrays {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 6.3 Enhanced for Loop for Arrays {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 6.4 Developing Algorithms Using Arrays
7. ArrayLists {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.1 ArrayLists {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.2 ArrayList Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.3 Traversing ArrayLists {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.4 Developing Algorithms using ArrayLists {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.5 Searching {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.6 Sorting {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 7.7 Ethical Issues Around Data Collection
8. 2D Arrays {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 8.1 2D Arrays {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 8.2 Traversing 2D Arrays
9. Inheritance {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.1 Inheritance {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.2 Writing Constructors for Subclasses {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.3 Overriding Methods {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.4 super Keyword {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.5 Creating References Using Inheritance Hierarchies {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.6 Polymorphism {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 9.7 Object Superclass
10. Recursion {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 10.1 Recursion {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 10.2 Recursive Searching {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 10.3 Recursive Sorting {# number the lesson by where it sits in this module: a lesson shared with another module must not link to that other module's number #} 10.4 Conclusion