Please enable JavaScript to use CodeHS

AP Computer Science A (Mocha) - Outline

  1. Introduction to Programming in Java with Karel the Dog

    1. 1.1 Introduction to Programming With Karel

    2. Video 1.1.1 Introduction to Programming With Karel
    3. Check for Understanding 1.1.2 Quiz: Karel Commands
    4. Example 1.1.3 Our First Karel Program
    5. Exercise 1.1.4 Your First Karel Program
    6. Exercise 1.1.5 Short Stack
    7. 1.2 More Basic Karel

    8. Video 1.2.1 More Basic Karel
    9. Check for Understanding 1.2.2 More Basic Karel
    10. Example 1.2.3 Tennis Ball Square
    11. Exercise 1.2.4 Make a Tower
    12. Exercise 1.2.5 Pyramid of Karel
    13. 1.3 Java Programs and the Run Method

    14. Video 1.3.1 Writing a Java Program
    15. Check for Understanding 1.3.2 Run Method
    16. Example 1.3.3 Square Karel
    17. Exercise 1.3.4 Tower Karel
    18. Exercise 1.3.5 Gold Medal Karel
    19. Exercise 1.3.6 Maze Karel
    20. 1.4 Karel Can't Turn Right

    21. Video 1.4.1 Karel Can't Turn Right
    22. Check for Understanding 1.4.2 Karel Can't Turn Right
    23. Example 1.4.3 Tower and Turn Right
    24. Exercise 1.4.4 Slide Karel
    25. Exercise 1.4.5 Fireman Karel
    26. Badge 1.4.6 Right Turn Karel Badge
    27. 1.5 Methods in Karel

    28. Video 1.5.1 Methods in Karel
    29. Check for Understanding 1.5.2 Methods in Karel
    30. Example 1.5.3 Turn Around
    31. Exercise 1.5.4 Planting Bushes
    32. Exercise 1.5.5 Mario Karel
    33. 1.6 Top Down Design and Decomposition in Karel

    34. Video 1.6.1 Top Down Design and Decomposition in Karel
    35. Check for Understanding 1.6.2 Top Down Design and Decomposition
    36. Example 1.6.3 Hurdle Karel
    37. Exercise 1.6.4 The Two Towers
    38. Exercise 1.6.5 Planting Flowers
    39. 1.7 Commenting Your Code

    40. Video 1.7.1 Commenting Your Code
    41. Check for Understanding 1.7.2 Commenting Your Code
    42. Example 1.7.3 Hurdle Karel (Comments)
    43. Exercise 1.7.4 The Two Towers + Comments
    44. 1.8 Super Karel

    45. Video 1.8.1 Super Karel
    46. Check for Understanding 1.8.2 Super Karel
    47. Example 1.8.3 Hurdle Karel (with SuperKarel)
    48. Exercise 1.8.4 The Two Towers + SuperKarel
    49. Badge 1.8.5 Super Karel Badge
    50. 1.9 For Loops

    51. Video 1.9.1 For Loops
    52. Check for Understanding 1.9.2 For Loops
    53. Example 1.9.3 Repeated Move
    54. Example 1.9.4 Put Down Tennis Balls
    55. Exercise 1.9.5 Marathon Karel
    56. Exercise 1.9.6 Take 'em All
    57. Exercise 1.9.7 Dizzy Karel
    58. Exercise 1.9.8 For Loop Square
    59. Exercise 1.9.9 Planting Flowers
    60. Exercise 1.9.10 Lots of Hurdles
    61. 1.10 While Loops in Karel

    62. Video 1.10.1 While Loops in Karel
    63. Check for Understanding 1.10.2 While Loops in Karel
    64. Example 1.10.3 Move to Wall
    65. Exercise 1.10.4 Follow The Yellow Ball Road
    66. Exercise 1.10.5 Just Keep Spinning
    67. Exercise 1.10.6 Lay Row of Tennis Balls
    68. Exercise 1.10.7 Big Tower
    69. 1.11 If Statements

    70. Video 1.11.1 If Statements
    71. Check for Understanding 1.11.2 If Statements Quiz
    72. Example 1.11.3 If Statements
    73. Example 1.11.4 Safe Take Ball
    74. Exercise 1.11.5 Is There a Ball?
    75. 1.12 If/Else Statements

    76. Video 1.12.1 If/Else Statements
    77. Check for Understanding 1.12.2 If/Else Statements
    78. Example 1.12.3 Flip Karel
    79. Exercise 1.12.4 Fix It Karel
    80. Exercise 1.12.5 Invert
    81. Badge 1.12.6 Conditional Karel Badge
    82. 1.13 Control Structures Example

    83. Video 1.13.1 Control Structures Example
    84. Check for Understanding 1.13.2 Control Structures Example
    85. Example 1.13.3 Cleanup Karel
    86. Exercise 1.13.4 Random Hurdles
    87. Exercise 1.13.5 Fix It Karel
    88. 1.14 More Karel Examples and Testing

    89. Video 1.14.1 More Karel Examples and Testing
    90. Example 1.14.2 Move Tennis Ball Stack
    91. Example 1.14.3 Climbing Karel
    92. 1.15 How to Indent Your Code

    93. Video 1.15.1 How to Indent Your Code
    94. Check for Understanding 1.15.2 How to Indent Your Code
    95. Example 1.15.3 Dance and Clean Karel
    96. Exercise 1.15.4 Diagonal
    97. Exercise 1.15.5 Staircase
    98. Badge 1.15.6 Karel Exercises Badge
    99. 1.16 Karel Challenges

    100. Challenge 1.16.1 Fetch
    101. Challenge 1.16.2 Racing Karel
    102. Challenge 1.16.3 Tower Builder
    103. Challenge 1.16.4 Super Cleanup Karel
    104. Challenge 1.16.5 Double Tennis Balls
    105. Challenge 1.16.6 Midpoint Karel
    106. Badge 1.16.7 Karel Challenges Badge
    107. 1.17 Introduction to Programming in Java Quiz

    108. Unit Quiz 1.17.1 Introduction to Programming in Java Quiz Unit 1
  2. Basic Java

    1. 2.1 Printing in Java

    2. Video 2.1.1 Printing in Java
    3. Check for Understanding 2.1.2 Printing in Java
    4. Example 2.1.3 Hello world
    5. Example 2.1.4 Printing Multiple Lines
    6. Exercise 2.1.5 Welcome Program
    7. Exercise 2.1.6 ASCII Art
    8. 2.2 Variables and Types

    9. Video 2.2.1 Variables and Types
    10. Check for Understanding 2.2.2 Variables and Types
    11. Example 2.2.3 Variables
    12. Exercise 2.2.4 Our First Integer
    13. Exercise 2.2.5 Answering Questions
    14. 2.3 User Input

    15. Video 2.3.1 User Input
    16. Check for Understanding 2.3.2 User Input
    17. Example 2.3.3 UserInput
    18. Exercise 2.3.4 About You
    19. Exercise 2.3.5 Poetry
    20. Badge 2.3.6 User Input Badge
    21. 2.4 Arithmetic Expressions

    22. Video 2.4.1 Arithmetic Expressions
    23. Check for Understanding 2.4.2 Arithmetic Expressions
    24. Example 2.4.3 Calculator
    25. Example 2.4.4 Tricky Java
    26. Exercise 2.4.5 Weight of a Pyramid
    27. Exercise 2.4.6 Add Fractions
    28. 2.5 Casting

    29. Video 2.5.1 Casting
    30. Check for Understanding 2.5.2 Casting
    31. Example 2.5.3 Casting
    32. Exercise 2.5.4 Casting to an Int
    33. Exercise 2.5.5 Casting to a Double
    34. Example 2.5.6 Casting Order of Operations
    35. Example 2.5.7 Rounding using Casting
    36. Exercise 2.5.8 Movie Ratings
    37. 2.6 Booleans

    38. Video 2.6.1 Booleans
    39. Check for Understanding 2.6.2 Booleans
    40. Example 2.6.3 Boolean Example
    41. Exercise 2.6.4 Ice Cream
    42. Badge 2.6.5 Booleans Badge
    43. 2.7 Logical Operators

    44. Video 2.7.1 Logical Operators
    45. Check for Understanding 2.7.2 Logical Operators
    46. Example 2.7.3 Light Switch
    47. Exercise 2.7.4 Roller Coaster
    48. 2.8 Comparison Operators

    49. Video 2.8.1 Comparison Operators
    50. Check for Understanding 2.8.2 Comparison Operators
    51. Example 2.8.3 Grade Range
    52. Exercise 2.8.4 Triple Double
    53. 2.9 For Loops

    54. Video 2.9.1 For Loops
    55. Check for Understanding 2.9.2 For Loops
    56. Example 2.9.3 The For Loop
    57. Exercise 2.9.4 Repeat 1000 Times
    58. Video 2.9.5 General For Loop
    59. Example 2.9.6 Countdown
    60. Example 2.9.7 Count By Twos
    61. Exercise 2.9.8 Print The Odds
    62. Video 2.9.9 For Loop Examples
    63. Example 2.9.10 For Loop Sum
    64. Exercise 2.9.11 Factorial
    65. 2.10 While Loops

    66. Video 2.10.1 While Loops
    67. Check for Understanding 2.10.2 While Loops
    68. Example 2.10.3 While Loop Countdown
    69. Exercise 2.10.4 Making Taffy
    70. 2.11 If Statements

    71. Video 2.11.1 If Statements
    72. Check for Understanding 2.11.2 If Statements
    73. Example 2.11.3 Negative Numbers
    74. Example 2.11.4 Even and Odd
    75. Exercise 2.11.5 Find the Minimum
    76. 2.12 Loop-and-a-Half

    77. Video 2.12.1 Loop-and-a-Half
    78. Check for Understanding 2.12.2 Loop-and-a-Half Quiz
    79. Example 2.12.3 Running Average
    80. Exercise 2.12.4 Guess the Number
    81. Badge 2.12.5 Looper Badge
    82. 2.13 Short-Circuit Evaluation

    83. Video 2.13.1 Short-Circuit Evaluation
    84. Check for Understanding 2.13.2 Short-Circuit Evaluation Quiz
    85. Example 2.13.3 Pizza Slices
    86. Exercise 2.13.4 Divisibility
    87. 2.14 De Morgan's Laws

    88. Video 2.14.1 De Morgan's Laws
    89. Check for Understanding 2.14.2 De Morgan's Laws Quiz
    90. Example 2.14.3 De Morgan AND
    91. Example 2.14.4 De Morgan OR
    92. Exercise 2.14.5 Amusement Park
    93. 2.15 Strings

    94. Video 2.15.1 Strings
    95. Check for Understanding 2.15.2 Strings
    96. Example 2.15.3 Comparing Strings
    97. Exercise 2.15.4 Three Strings
    98. Badge 2.15.5 Basic Java Exercises Badge
    99. 2.16 Basic Java Quiz

    100. Unit Quiz 2.16.1 Basic Java Quiz
  3. Methods

    1. 3.1 Java Methods

    2. Video 3.1.1 Java Methods
    3. Check for Understanding 3.1.2 Java Methods
    4. Example 3.1.3 Print Line Break
    5. Exercise 3.1.4 Print Karel
    6. 3.2 Methods and Parameters

    7. Video 3.2.1 Methods and Parameters
    8. Check for Understanding 3.2.2 Methods and Parameters
    9. Example 3.2.3 Line Breaks with Parameters
    10. Example 3.2.4 Sum
    11. Exercise 3.2.5 Product
    12. Exercise 3.2.6 Add10
    13. Exercise 3.2.7 Countdown From
    14. Exercise 3.2.8 Repeating Message
    15. 3.3 Methods and Return Values

    16. Video 3.3.1 Methods and Return Values
    17. Check for Understanding 3.3.2 Return Value
    18. Example 3.3.3 Methods and Return Values
    19. Practice 3.3.4 Double Number
    20. Practice 3.3.5 Square
    21. Practice 3.3.6 Average
    22. 3.4 Javadocs and More Methods

    23. Video 3.4.1 Javadocs
    24. Check for Understanding 3.4.2 Javadocs
    25. Example 3.4.3 Javadoc Sum
    26. Practice 3.4.4 Is in Range
    27. Practice 3.4.5 Sum Range
    28. Practice 3.4.6 Is Divisible
    29. Practice 3.4.7 Fahrenheit to Celsius
    30. Badge 3.4.8 Methods Badge
    31. 3.5 Strings Methods

    32. Video 3.5.1 String Methods
    33. Check for Understanding 3.5.2 String Methods
    34. Example 3.5.3 Looping Over a String
    35. Practice 3.5.4 Yelling
    36. Practice 3.5.5 Porky Pig
    37. Practice 3.5.6 Triple String
    38. Practice 3.5.7 Full Name
    39. Practice 3.5.8 Repeating String
    40. 3.6 Strings and Characters

    41. Video 3.6.1 Strings and Characters
    42. Example 3.6.2 Chars are Numbers
    43. Example 3.6.3 Escape Sequences
    44. Example 3.6.4 Character Methods
    45. Practice 3.6.5 Is it an Integer?
    46. 3.7 Exceptions

    47. Video 3.7.1 Exceptions
    48. Check for Understanding 3.7.2 Exceptions Quiz
    49. Example 3.7.3 Arithmetic Exception
    50. Example 3.7.4 Index Out Of Bounds Exception
    51. Exercise 3.7.5 Bug Hunter
    52. 3.8 String Processing

    53. Video 3.8.1 String Processing
    54. Check for Understanding 3.8.2 String Processing
    55. Example 3.8.3 Finding Palindromes
    56. Example 3.8.4 String Concatenation
    57. Practice 3.8.5 Fix the Sum String
    58. Practice 3.8.6 Convert To Uppercase
    59. Practice 3.8.7 Double Vowels
    60. Practice 3.8.8 All Same Letter
    61. Practice 3.8.9 AltCase
    62. Practice 3.8.10 Do the Brackets Match?
    63. Practice 3.8.11 Teen Talk
    64. Practice 3.8.12 Fixing Grammar
    65. Practice 3.8.13 Password Checker
    66. Practice 3.8.14 Replace Letter
    67. Badge 3.8.15 Methods Exercises Badge
    68. 3.9 Methods Quiz

    69. Unit Quiz 3.9.1 Methods Quiz
  4. Classes and Object-Oriented Programming

    1. 4.1 Introduction to Classes and Objects

    2. Video 4.1.1 What is a Class?
    3. Check for Understanding 4.1.2 Quiz: Classes and Objects
    4. Example 4.1.3 The Rectangle Class
    5. Example 4.1.4 The Point Class
    6. Example 4.1.5 The Student Class
    7. Exercise 4.1.6 Using the Rectangle Class
    8. Exercise 4.1.7 Calling A Method
    9. Exercise 4.1.8 Using the Point Class
    10. Exercise 4.1.9 Using the Student Class
    11. 4.2 Classes vs. Objects

    12. Video 4.2.1 Classes and Objects
    13. Check for Understanding 4.2.2 Classes vs. Objects vs. Instances
    14. Example 4.2.3 Classes, Objects, and Instances
    15. Example 4.2.4 Creating Rectangle Objects
    16. Exercise 4.2.5 Text Messages
    17. 4.3 Using a Class as a Client

    18. Video 4.3.1 How to Use a Class
    19. Check for Understanding 4.3.2 Quiz: Client of a Class
    20. Example 4.3.3 Using the Rectangle Class as a Client
    21. Example 4.3.4 Using the Randomizer Class as a Client
    22. Exercise 4.3.5 Coin Flips
    23. Exercise 4.3.6 Longest Streak
    24. Example 4.3.7 Testing the GeoLocation Class
    25. Exercise 4.3.8 How Far Away is ...?
    26. Badge 4.3.9 Client Badge
    27. 4.4 Writing Classes

    28. Video 4.4.1 Constructors
    29. Check for Understanding 4.4.2 Quiz: Constructors
    30. Example 4.4.3 Rectangle toString
    31. Example 4.4.4 Student toString
    32. Exercise 4.4.5 toString for Flowers
    33. Exercise 4.4.6 Instance Variables for Your Dog
    34. Exercise 4.4.7 Student GPA Field
    35. Free Response 4.4.8 Free Response: What instance variables?
    36. Exercise 4.4.9 Pizza Time!
    37. Exercise 4.4.10 Fractions
    38. 4.5 Writing Classes and Instance Methods

    39. Video 4.5.1 Writing Instance Methods
    40. Check for Understanding 4.5.2 Quiz: Writing Methods
    41. Example 4.5.3 Area of a Rectangle
    42. Example 4.5.4 Moving a Point
    43. Exercise 4.5.5 Writing getPerimeter()
    44. Exercise 4.5.6 Honors Students
    45. Exercise 4.5.7 Batting Average
    46. Exercise 4.5.8 Distance in Kilometers
    47. Resource 4.5.9 Combination Lock FRQ
    48. 4.6 Getter and Setter Methods

    49. Video 4.6.1 Getter and Setter Methods
    50. Check for Understanding 4.6.2 Quiz: Getter and Setter Methods
    51. Example 4.6.3 Rectangle Getter Methods
    52. Example 4.6.4 Student Getter Methods
    53. Exercise 4.6.5 Text Messages Getter Methods
    54. Exercise 4.6.6 Fractions Getter/Setter Methods
    55. Exercise 4.6.7 Full Fraction Class
    56. Exercise 4.6.8 Full Dragon Class
    57. Exercise 4.6.9 A Different Dragon Class
    58. 4.7 Class Methods and Class Variables

    59. Video 4.7.1 Static Methods and Variables (Class Methods and Class Variables)
    60. Check for Understanding 4.7.2 Quiz: Static Methods
    61. Example 4.7.3 Student Class Variables and Methods
    62. Example 4.7.4 Using the Math Class
    63. Example 4.7.5 Using Randomizer
    64. Example 4.7.6 Static Variables: Circle
    65. Exercise 4.7.7 The Unit Circle
    66. Exercise 4.7.8 How Many Players in the Game?
    67. Exercise 4.7.9 Circle Area, another way
    68. Practice 4.7.10 Rock, Paper, Scissors: Get Winner
    69. Exercise 4.7.11 Rock, Paper, Scissors!
    70. 4.8 Wrapper Classes

    71. Video 4.8.1 Wrapper Classes
    72. Check for Understanding 4.8.2 Quiz: Wrapper Classes
    73. Example 4.8.3 Creating Integers
    74. Example 4.8.4 Using Doubles
    75. Example 4.8.5 Autoboxing Example
    76. Exercise 4.8.6 Order Up!
    77. Exercise 4.8.7 Currency
    78. Exercise 4.8.8 Guess the number!
    79. 4.9 Method Overloading

    80. Video 4.9.1 Method Overloading
    81. Check for Understanding 4.9.2 Method Overloading Quiz
    82. Example 4.9.3 Sum Method Overloading
    83. Example 4.9.4 Constructor Overloading
    84. Exercise 4.9.5 Average Method Overloading
    85. Badge 4.9.6 Overloading Badge
    86. 4.10 Local Variables and Scope

    87. Video 4.10.1 Local Variables and Scope
    88. Check for Understanding 4.10.2 Local Variables and Scope Quiz
    89. Example 4.10.3 Instance Variable Scope
    90. Example 4.10.4 Local Variable Scope
    91. Example 4.10.5 Variable Shadowing
    92. Exercise 4.10.6 Which Variables Exist?
    93. 4.11 Key Terms for Classes

    94. Video 4.11.1 Key Terms for Classes
    95. Check for Understanding 4.11.2 Quiz: This Keyword
    96. Example 4.11.3 Rectangles and this
    97. Exercise 4.11.4 Batteries
    98. Exercise 4.11.5 Write Your Own CodeHS
    99. 4.12 Objects vs Primitives

    100. Video 4.12.1 Objects vs Primitives
    101. Check for Understanding 4.12.2 Objects vs Primitives Quiz
    102. Example 4.12.3 Comparing Rectangles
    103. Example 4.12.4 Changing Dogs
    104. Example 4.12.5 Null Pointer Exception
    105. Free Response 4.12.6 Objects vs Primitives
    106. Exercise 4.12.7 Comparing Circles
    107. 4.13 Inheritance

    108. Video 4.13.1 Inheritance
    109. Check for Understanding 4.13.2 Quiz: Subclasses and Superclasses
    110. Example 4.13.3 Square is a Rectangle
    111. Exercise 4.13.4 Clothing Store
    112. Badge 4.13.5 Inheritance Badge
    113. 4.14 Class Design and Abstract Classes

    114. Video 4.14.1 Class Design and Abstract Classes
    115. Check for Understanding 4.14.2 Quiz: Class Design
    116. Example 4.14.3 The Shape Hierarchy
    117. Example 4.14.4 Classes for Dessert
    118. Exercise 4.14.5 Finding The Perimeters
    119. 4.15 Polymorphism

    120. Video 4.15.1 Polymorphism
    121. Check for Understanding 4.15.2 Quiz: Polymorphism
    122. Example 4.15.3 Animal Sounds
    123. Example 4.15.4 Shape Areas
    124. Exercise 4.15.5 Fun with Solids
    125. 4.16 Object Superclass

    126. Video 4.16.1 Object Superclass
    127. Check for Understanding 4.16.2 Quiz: Object Superclass
    128. Example 4.16.3 Default Values
    129. Example 4.16.4 Override toString
    130. Example 4.16.5 Override equals
    131. Exercise 4.16.6 Equal?
    132. Exercise 4.16.7 Equals? - Part 2
    133. Exercise 4.16.8 Equal Rectangles
    134. Exercise 4.16.9 2D Array Tester
    135. 4.17 Interfaces

    136. Video 4.17.1 Interfaces
    137. Check for Understanding 4.17.2 Quiz: Interfaces
    138. Example 4.17.3 Comparable Interface
    139. Example 4.17.4 Summable Interface
    140. Exercise 4.17.5 Fraction is Comparable
    141. Exercise 4.17.6 City is Summable
    142. Badge 4.17.7 Classes and Object-Oriented Programming Badge
    143. 4.18 Ethical and Social Implications of Computing

    144. Video 4.18.1 Implications of Computing Systems
    145. Free Response 4.18.2 Computing and Your Life
    146. Check for Understanding 4.18.3 Quiz: Ethical and Social Impact
    147. Connection 4.18.4 ACM General Ethical Principles
    148. Free Response 4.18.5 ACM General Ethical Principles
    149. Connection 4.18.6 Bias in Facial Recognition
    150. Free Response 4.18.7 Bias in Facial Recognition
    151. Connection 4.18.8 Self-driving Cars
    152. Free Response 4.18.9 Self-driving Cars
    153. 4.19 Classes and Object-Oriented Programming Quiz

    154. Unit Quiz 4.19.1 Classes and Object-Oriented Programming Quiz
  5. Data Structures

    1. 5.1 What are Data Structures?

    2. Video 5.1.1 What are Data Structures?
    3. Check for Understanding 5.1.2 Quiz: Data Structures
    4. Free Response 5.1.3 Data Structures Everywhere
    5. 5.2 Introduction to Arrays

    6. Video 5.2.1 Introduction to Arrays
    7. Check for Understanding 5.2.2 Quiz: Arrays
    8. Example 5.2.3 Making an Array
    9. Example 5.2.4 Make an Empty Array
    10. Example 5.2.5 Indexing Into an Array
    11. Exercise 5.2.6 Our First Array
    12. Practice 5.2.7 Array Length
    13. Practice 5.2.8 Last Element in Array
    14. 5.3 Using Arrays

    15. Video 5.3.1 Using Arrays
    16. Check for Understanding 5.3.2 Quiz: Using Arrays
    17. Example 5.3.3 Iterating Over an Array
    18. Example 5.3.4 Sum Array
    19. Example 5.3.5 Array Out of Bounds
    20. Exercise 5.3.6 Print Array
    21. Exercise 5.3.7 Print Odd Array Indices
    22. Practice 5.3.8 Find the Last Multiple of 3
    23. Example 5.3.9 Classroom Example
    24. Example 5.3.10 Exam Scores
    25. Example 5.3.11 Array References
    26. Practice 5.3.12 Find the Median
    27. Exercise 5.3.13 Most Improved
    28. Badge 5.3.14 Arrays Badge
    29. 5.4 Enhanced For Loops

    30. Video 5.4.1 Enhanced For Loops
    31. Check for Understanding 5.4.2 Enhanced For Loop
    32. Example 5.4.3 Enhanced For Loop
    33. Example 5.4.4 Classroom Array
    34. Example 5.4.5 Updating Values in a Loop
    35. Exercise 5.4.6 Print Odds
    36. Exercise 5.4.7 Largest Value
    37. Exercise 5.4.8 Classroom Array
    38. Exercise 5.4.9 Array Average
    39. 5.5 ArrayList Methods

    40. Video 5.5.1 ArrayLists
    41. Check for Understanding 5.5.2 Quiz: ArrayList
    42. Example 5.5.3 Hello World ArrayList
    43. Example 5.5.4 ArrayList and Java Primitives
    44. Example 5.5.5 ArrayList Size Method
    45. Exercise 5.5.6 Get First Element
    46. Example 5.5.7 Reading List
    47. Example 5.5.8 Texting in Class
    48. Exercise 5.5.9 Road Trip!
    49. Resource 5.5.10 MagicalWorld Candy FRQ
    50. 5.6 Arrays vs ArrayLists

    51. Video 5.6.1 Arrays vs ArrayLists
    52. Check for Understanding 5.6.2 Quiz: Arrays vs ArrayList
    53. Example 5.6.3 Expanding Array
    54. Exercise 5.6.4 Improving Expanding Array
    55. Example 5.6.5 Array vs ArrayList
    56. Resource 5.6.6 Seat Assignments FRQ
    57. 5.7 Additional Loop Examples

    58. Video 5.7.1 Additional Loop Examples
    59. Check for Understanding 5.7.2 Additional Loop Examples
    60. Example 5.7.3 For and While Loops
    61. Example 5.7.4 ArrayList Traversing Error
    62. Example 5.7.5 Traversing ArrayLists Simultaneously
    63. Exercise 5.7.6 Replace FOR Loop with WHILE Loop
    64. Exercise 5.7.7 Traversing Odds
    65. Exercise 5.7.8 ArrayList Equals
    66. 5.8 The List Interface

    67. Video 5.8.1 The List Interface
    68. Check for Understanding 5.8.2 The List Interface Quiz
    69. Example 5.8.3 Reverse the List
    70. Practice 5.8.4 Summer Reading Short List
    71. 5.9 2D Arrays (Matrices or Grids)

    72. Video 5.9.1 2D Arrays
    73. Check for Understanding 5.9.2 Quiz: 2D Arrays
    74. Example 5.9.3 Nested Loops
    75. Practice 5.9.4 Ice Cream Combos
    76. Example 5.9.5 First 2D Array
    77. Example 5.9.6 Initializing a 2D Array
    78. Example 5.9.7 The Matrix
    79. Practice 5.9.8 Sum Rows in a Matrix
    80. Badge 5.9.9 Matrix Badge
    81. 5.10 Traversing 2D Arrays

    82. Video 5.10.1 Traversing 2D Arrays
    83. Check for Understanding 5.10.2 Quiz: Traversing 2D Arrays
    84. Example 5.10.3 Traversing Gradebook
    85. Example 5.10.4 Linear Search 2D Arrays
    86. Example 5.10.5 Row vs. Column Major
    87. Free Response 5.10.6 Row vs. Column Major
    88. Exercise 5.10.7 Sum Rows in a 2D Array
    89. Exercise 5.10.8 2D Array Tester
    90. Exercise 5.10.9 Tic Tac Toe Methods
    91. Challenge 5.10.10 Finalizing Tic Tac Toe
    92. 5.11 HashMaps

    93. Video 5.11.1 HashMaps
    94. Check for Understanding 5.11.2 Quiz: HashMaps
    95. Example 5.11.3 The Phonebook
    96. Exercise 5.11.4 Word Counts
    97. 5.12 Binary

    98. Video 5.12.1 Number Systems
    99. Check for Understanding 5.12.2 Number Systems Quiz
    100. Example 5.12.3 Converting Octal to Decimal
    101. Practice 5.12.4 Converting Binary to Decimal
    102. Video 5.12.5 Using Binary
    103. Check for Understanding 5.12.6 Using Binary Quiz
    104. Example 5.12.7 Integer Limits
    105. Exercise 5.12.8 Binary Translator
    106. Resource 5.12.9 Genres Galore Online Shop FRQ
    107. 5.13 Ethical Issues Around Data Collection

    108. Video 5.13.1 Ethical Issues Around Data Collection
    109. Check for Understanding 5.13.2 Ethical Issues Around Data Collection
    110. Connection 5.13.3 The Curly Fry Conundrum
    111. Free Response 5.13.4 Reflection
    112. Connection 5.13.5 Guidelines on Ethical Data Use
    113. Free Response 5.13.6 Issue News Article
    114. Badge 5.13.7 ArrayList Badge
    115. 5.14 Data Structures Quiz

    116. Unit Quiz 5.14.1 Data Structures Quiz
  6. Blackjack

    1. 6.1 Writing BlackJack

    2. Video 6.1.1 The Card Class
    3. Example 6.1.2 The Card Class
    4. Video 6.1.3 The Deck Class
    5. Example 6.1.4 The Deck Class
    6. Video 6.1.5 The Hand Class
    7. Example 6.1.6 The Hand Class
    8. Video 6.1.7 The Blackjack Class
    9. Example 6.1.8 The Blackjack Game
    10. Exercise 6.1.9 Improving Blackjack
  7. Battleship

    1. 7.1 Battleship

    2. Video 7.1.1 Battleship Demo
    3. Exercise 7.1.2 Battleship Part 1: The Ship Class
    4. Exercise 7.1.3 Battleship Part 2: The Location Class
    5. Exercise 7.1.4 Battleship Part 3: The Grid Class
    6. Exercise 7.1.5 Battleship Part 4: Adding a Ship to the Grid
    7. Exercise 7.1.6 Battleship Part 5: The Player Class
    8. Exercise 7.1.7 Battleship Part 6: The Battleship Class
    9. Exercise 7.1.8 Battleship Part 7: Finishing the Game
    10. Exercise 7.1.9 Battleship Extensions
  8. Algorithms and Recursion

    1. 8.1 What is an Algorithm?

    2. Video 8.1.1 What is an Algorithm?
    3. Free Response 8.1.2 Every Day Algorithms
    4. 8.2 Linear Search

    5. Video 8.2.1 Linear Search
    6. Example 8.2.2 Linear Search
    7. Practice 8.2.3 Linear Search on ArrayList
    8. Resource 8.2.4 Gradebook FRQ
    9. 8.3 Binary Search

    10. Video 8.3.1 Binary Search
    11. Check for Understanding 8.3.2 Binary Search
    12. Example 8.3.3 Binary Search
    13. Exercise 8.3.4 Comparing Binary Search and Linear Search
    14. Badge 8.3.5 Binary Search Badge
    15. 8.4 Selection Sort

    16. Video 8.4.1 Selection Sort
    17. Check for Understanding 8.4.2 Selection Sort
    18. Example 8.4.3 Selection Sort
    19. Example 8.4.4 Visualizing Algorithms
    20. Exercise 8.4.5 Explore Selection Sort
    21. 8.5 Insertion Sort

    22. Video 8.5.1 Insertion Sort
    23. Check for Understanding 8.5.2 Insertion Sort
    24. Example 8.5.3 Visualizing Algorithms
    25. Example 8.5.4 Insertion Sort
    26. Exercise 8.5.5 Explore Insertion Sort
    27. 8.6 Advanced: Recursion

    28. Video 8.6.1 Recursion
    29. Example 8.6.2 Factorial
    30. Practice 8.6.3 Factorial Unit Test Example
    31. Video 8.6.4 Recursion Walkthrough
    32. Example 8.6.5 Recursion Example
    33. Example 8.6.6 Recursive Binary Search
    34. Example 8.6.7 Fibonacci Recursive
    35. Practice 8.6.8 Bacteria Cultures
    36. Practice 8.6.9 Recursive Minimum
    37. AP Practice 8.6.10 AP Multiple Choice Practice
    38. 8.7 Mergesort

    39. Video 8.7.1 Mergesort
    40. Example 8.7.2 Visualizing Algorithms
    41. Example 8.7.3 Merge Sort
    42. Exercise 8.7.4 Explore Merge Sort
    43. Badge 8.7.5 Algorithms Badge
    44. 8.8 Informal Code Analysis

    45. Video 8.8.1 Informal Code Analysis
    46. Check for Understanding 8.8.2 Informal Code Analysis
    47. Example 8.8.3 Loop Execution Count
    48. Example 8.8.4 While Loop Time
    49. Example 8.8.5 For Loop Time
    50. Free Response 8.8.6 Time Comparisons
    51. Exercise 8.8.7 Improving isChar Speed
    52. Example 8.8.8 Improving isChar Speed Check
    53. Free Response 8.8.9 isChar Speed Reflection
    54. 8.9 Algorithms and Recursion Quiz

    55. Unit Quiz 8.9.1 Algorithms and Recursion Quiz
  9. AP Test Practice

    1. 9.1 AP Practice Test 1

    2. AP Practice 9.1.1 Final AP Review
    3. Practice 9.1.2 Free Response 1a
    4. Practice 9.1.3 Free Response 1b
    5. Practice 9.1.4 Free Response 2a
    6. Practice 9.1.5 Free Response 2b
    7. Practice 9.1.6 Free Response 3a
    8. Exercise 9.1.7 Free Response 3b
    9. Exercise 9.1.8 Free Response 4a
    10. Exercise 9.1.9 Free Response 4b
    11. Badge 9.1.10 AP Practice Test Badge
  10. Final Project

    1. 10.1 Final Project

    2. Free Response 10.1.1 Brainstorm
    3. Free Response 10.1.2 Milestones
    4. Exercise 10.1.3 Final Project
    5. Badge 10.1.4 Final Project Badge
    6. 10.2 AP Java Completed

    7. Badge 10.2.1 AP Java Badge
  11. Project: Pokemon Simulation

    1. 11.1 Pokemon Simulation

    2. Video 11.1.1 Pokemon Demo
    3. Challenge 11.1.2 The Move Class
    4. Challenge 11.1.3 The Pokemon Class
    5. Challenge 11.1.4 Adding Pokemon Images
    6. Challenge 11.1.5 Pokemon can Attack!
    7. Challenge 11.1.6 The PokemonTrainer Class
    8. Challenge 11.1.7 The PokemonSimulation Class
    9. Challenge 11.1.8 Finishing the Battle
    10. Challenge 11.1.9 Adding the ComputerTrainer
    11. Challenge 11.1.10 Pokemon Extensions
    12. Badge 11.1.11 Pokemon Badge
  12. Project: Mad Libs

    1. 12.1 Mad Libs

    2. Video 12.1.1 Mad Libs Demo
    3. Challenge 12.1.2 Collecting the Placeholders
    4. Challenge 12.1.3 Getting User Input
    5. Challenge 12.1.4 Replacing a Placeholder
    6. Challenge 12.1.5 Generating the Mad Lib
    7. Challenge 12.1.6 Write your own Mad Lib!
    8. Challenge 12.1.7 Mad Lib Extensions
  13. Java Outside of CodeHS

    1. 13.1 Java Outside of CodeHS

    2. Video 13.1.1 Java Outside of CodeHS
    3. Video 13.1.2 Hello World in Eclipse
    4. Video 13.1.3 Hello World in BlueJ
    5. Video 13.1.4 Hello World in Terminal
    6. Video 13.1.5 Java main vs run
    7. Video 13.1.6 Using the main Method in Eclipse
    8. Video 13.1.7 Using the main Method in BlueJ
    9. Video 13.1.8 Using the main Method in the Terminal
    10. Example 13.1.9 Hello World with main Method
    11. Video 13.1.10 Getting User Input
    12. Example 13.1.11 Using Scanner for Input
  14. Project: Quiz Creation

    1. 14.1 Quiz Creation

    2. Video 14.1.1 Quiz Demo
    3. Challenge 14.1.2 The Question Class
    4. Challenge 14.1.3 Question toString
    5. Challenge 14.1.4 The Quiz Class
    6. Challenge 14.1.5 Using the QuizFileReader Class
    7. Challenge 14.1.6 Constructing Quizzes from Files
    8. Challenge 14.1.7 The QuizRunner Class
    9. Challenge 14.1.8 Write your own Quiz!
    10. Challenge 14.1.9 Quiz Extensions
  15. Elevens

    1. 15.1 Elevens

    2. Connection 15.1.1 Elevens Activity Guide
    3. Exercise 15.1.2 Activity 1: Design and Create a Card Class
    4. Exercise 15.1.3 Activity 2: Initial Design of a Deck Class
    5. Free Response 15.1.4 Activity 2 Questions
    6. Exercise 15.1.5 Activity 3: Shuffling the Cards in a Deck
    7. Free Response 15.1.6 Activity 3 Questions
    8. Exercise 15.1.7 Activity 4: Adding a Shuffle Method to the Deck
    9. Exercise 15.1.8 Activity 6: Playing Elevens
    10. Free Response 15.1.9 Activity 6 Questions
    11. Example 15.1.10 Activity 7: Elevens Board Class Design
    12. Free Response 15.1.11 Activity 7 Questions
    13. Example 15.1.12 Activity 8: Using an Abstract Board Class
    14. Free Response 15.1.13 Activity 8 Questions
    15. Exercise 15.1.14 Activity 9: Implementing the Elevens Board
    16. Free Response 15.1.15 Activity 9 Questions
  16. Magpie

    1. 16.1 Magpie Lab

    2. Connection 16.1.1 Magpie Student Guide
    3. Free Response 16.1.2 Activity 1: Chatbots
    4. Example 16.1.3 Activity 2: Introduction to Magpie
    5. Exercise 16.1.4 Activity 2: Modifying Magpie
    6. Free Response 16.1.5 Activity 2: Questions
    7. Exercise 16.1.6 Activity 3: Improving Keyword Detection
    8. Exercise 16.1.7 Activity 4: Responses that Transform Statements
  17. Picture Lab

    1. 17.1 Picture Lab

    2. Connection 17.1.1 Introduction & Student Guide
    3. Free Response 17.1.2 A1: Digital Pictures and Color
    4. Example 17.1.3 A2: Picking a Color
    5. Free Response 17.1.4 A2 Questions: Picking a Color
    6. Example 17.1.5 A3: Exploring a Picture
    7. Free Response 17.1.6 A3 Questions: Exploring a Picture
    8. Exercise 17.1.7 A4: Two-Dimensional Arrays in Java
    9. Free Response 17.1.8 A5: Interfaces
    10. Exercise 17.1.9 A5: Modifying a Picture
    11. Exercise 17.1.10 A6: Mirroring a Picture
    12. Exercise 17.1.11 A9: Edge Detection
  18. Consumer Review Lab

    1. 18.1 Introduction

    2. Resource 18.1.1 Consumer Review Lab Activity Guide
    3. Exercise 18.1.2 Review
    4. Free Response 18.1.3 Review Free Response
    5. Check for Understanding 18.1.4 Check For Understanding
    6. 18.2 Sentiment Value and Star Ratings

    7. Exercise 18.2.1 Sentiment Value
    8. Free Response 18.2.2 Sentiment Value Free Response
    9. 18.3 Autogenerated Review

    10. Exercise 18.3.1 Autogenerate Review
    11. Free Response 18.3.2 Autogenerate Review Free Response
    12. 18.4 Create a Negative or Positive Review

    13. Exercise 18.4.1 Create a Negative or Positive Review
    14. Free Response 18.4.2 Create a Negative or Positive Review
    15. 18.5 Open Ended Activity!

    16. Exercise 18.5.1 Final Activity
    17. Free Response 18.5.2 Wrap Up
  19. Celebrity Lab

    1. 19.1 Activity 1: Introduction to Celebrity

    2. Free Response 19.1.1 Introduction to Celebrity
    3. 19.2 Activity 2: The Celebrity Class: A Simple Version

    4. Free Response 19.2.1 Celebrity Class: A Simple Version
    5. Exercise 19.2.2 Celebrity Constructor
    6. 19.3 Activity 3: Putting it All Together

    7. Exercise 19.3.1 Set up Constructors
    8. Exercise 19.3.2 Setting up the Game
    9. Exercise 19.3.3 Complete Game Play Methods
    10. Free Response 19.3.4 Check Your Understanding
    11. 19.4 Activity 4: Extending the Celebrity Class

    12. Free Response 19.4.1 Extending the Celebrity Class
    13. Example 19.4.2 Literature Celebrity
    14. Exercise 19.4.3 Custom Celebrity
    15. Exercise 19.4.4 Updating CelebrityGame
    16. Exercise 19.4.5 Updating the GUI
    17. 19.5 Activity 5: Open Ended Activity

    18. Free Response 19.5.1 Open Ended Activity
  20. Steganography Lab

    1. 20.1 Activity 1: Exploring Color

    2. Resource 20.1.1 Steganography Student Lab
    3. Free Response 20.1.2 Picture Lab A1: Digital Pictures and Color
    4. Free Response 20.1.3 Exploring Color
    5. Example 20.1.4 Clearing Bits
    6. Free Response 20.1.5 Clearing Bits Responses
    7. Exercise 20.1.6 Changing Colors
    8. Free Response 20.1.7 Changing Colors Response
    9. Exercise 20.1.8 Setting Bits
    10. 20.2 Activity 2: Hiding and Revealing a Picture

    11. Free Response 20.2.1 Hiding and Revealing
    12. Exercise 20.2.2 Hiding and Revealing
    13. 20.3 Activity 3: Identifying a Hidden Picture

    14. Exercise 20.3.1 Identifying a Hidden Picture
    15. Free Response 20.3.2 Identify a Hidden Picture: Check Your Understanding
    16. 20.4 Activity 4: Hiding and Revealing a Text Message

    17. Free Response 20.4.1 Hiding and Revealing a Text Message Intro
    18. Exercise 20.4.2 Hiding and Revealing a Text Message
    19. Free Response 20.4.3 Hiding and Revealing; Check your Understanding
    20. 20.5 Activity 5: Open Ended Project

    21. Exercise 20.5.1 Open Ended Project
  21. Java Level 1 Certification Practice

    1. 21.1 Practice #1: Java Fundamentals

    2. Quiz 21.1.1 Quiz: Java Fundamentals
    3. Notes 21.1.2 Practice #1 Reflection
    4. 21.2 Practice #2: Data Types and Lists

    5. Quiz 21.2.1 Quiz: Data Types and Lists
    6. Notes 21.2.2 Practice #2 Reflection
    7. 21.3 Practice #3: Implementing Flow Control

    8. Quiz 21.3.1 Quiz: Implementing Flow Control
    9. Notes 21.3.2 Practice #3 Reflection
    10. 21.4 Practice #4: OOP and Other Advanced Topics

    11. Quiz 21.4.1 Quiz: OOP and Other Advanced Topics
    12. Notes 21.4.2 Practice #4 Reflection