Skip to content
Library
Cover of CSAwesome

CSAwesome

by Beryl Hoffman and Barbara Ericson

Published by CSAwesome

Computer ScienceAP

Free, interactive AP Computer Science A curriculum using Java, endorsed by the College Board and aligned with the new AP CSA standards for 2025–2026.

Adopted pages stay linked to the book. Make your own copy of any page to change it for your class.

Attribution

CSAwesome by Beryl Hoffman and Barbara Ericson, published on GitHub under CC BY-NC-SA 4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/). Access the original for free at https://github.com/bhoffman0/CSAwesome2.

Table of contents

230 pages in 11 modules. Sign up to read and adopt them.

  1. 0Getting Started9 pages
    1. Welcome to CSAwesome
    2. Preface
    3. About the AP CSA Exam
    4. Transitioning from AP CSP to AP CSA
    5. Java Development Environments
    6. Growth Mindset and Pair Programming
    7. Short PD Pretest
    8. Pretest for the AP CSA Exam
    9. Survey
  2. 1Using Objects and Methods30 pages
    1. 1.1Introduction to Algorithms, Programming, and Compilers
    2. 1.2Variables and Data Types
    3. 1.3Expressions and Output
    4. 1.4Assignment and Input
    5. 1.5Casting and Ranges of Values
    6. 1.6Compound Assignment Operators
    7. 1.7APIs and Libraries
    8. 1.8Documentation with Comments and Preconditions
    9. 1.9Method Signatures
    10. 1.10Calling Class Methods
    11. 1.11Using the Math Class
    12. 1.12Objects - Instances of Classes
    13. 1.13Creating and Initializing Objects: Constructors
    14. 1.14Calling Instance Methods
    15. 1.15Strings
    16. Unit Summary 1a (1.1-1.6)
    17. Toggle Code Practice 1a (1.1-1.6)
    18. Coding Practice 1a (1.1-1.6)
    19. Multiple Choice Exercises for Unit 1a (1.1-1.6)
    20. Unit Summary 1b (1.7-1.15)
    21. Toggle Code Practice 1b (1.7-1.15)
    22. Coding Practice 1b (1.7-1.15)
    23. Multiple Choice Exercises for Unit 1b (1.9-1.15)
    24. Practice Test for Objects (1.12-1.14)
    25. Java Swing GUIs (optional)
    26. Unit 1 Free Response Question (FRQ) Practice
    27. Unit 1A Projects
    28. Unit 1B Projects
    29. Mixed Up Code Practice 1a (1.1-1.6)
    30. Mixed Up Code Practice 1b (1.7-1.15)
  3. 2Selection and Iteration34 pages
    1. 2.1Algorithms with Selection and Repetition
    2. 2.2Boolean Expressions
    3. 2.3if Statements
    4. 2.4Nested if Statements
    5. 2.5Compound Boolean Expressions
    6. 2.6Comparing Boolean Expressions (De Morgan’s Laws)
    7. 2.7While Loops
    8. 2.8For Loops
    9. 2.9Implementing Selection and Iteration Algorithms
    10. 2.10Implementing String Algorithms
    11. 2.11Nested Iteration
    12. 2.12Informal Runtime Analysis of Loops
    13. Unit 2 Part 1 Summary on Selection (2.1-2.6)
    14. Selection Toggle Code Practice (2.1-2.6)
    15. Selection Coding Practice (2.1-2.6)
    16. Selection Multiple Choice Exercises (2.1-2.6)
    17. Selection Free Response Question (FRQ) Game Practice (2.1-2.6)
    18. FRQ Style Selection Coding Practice (2.1-2.6)
    19. Group Work - Remainder Operator (%)
    20. Unit 2 Part 2 Summary on Loops (2.7-2.12)
    21. Loops Toggle Code Practice (2.7-2.12)
    22. Loops Coding Practice (2.7-2.12)
    23. Loops Multiple Choice Exercises (2.7-2.12)
    24. Unit 2 Test
    25. FRQ 1 MessageBuilder with Loops and Strings
    26. FRQ APCalendar for Loops and Control Structures
    27. FRQ Self Divisor A
    28. FRQ String Scramble A
    29. Magpie Chatbot Lab
    30. Consumer Review Lab
    31. Unit 2A Projects
    32. Unit 2B Projects
    33. Selection Mixed Up Code Practice (2.1-2.6)
    34. Loops Mixed Up Code Practice (2.7-2.12)
  4. 3Class Creation22 pages
    1. 3.1Abstraction and Program Design
    2. 3.2Impact of Program Design
    3. 3.3Anatomy of a Java Class
    4. 3.4Writing Constructors
    5. 3.5Methods: How to Write Them
    6. 3.6Methods: Passing and Returning References of an Object
    7. 3.7Class (static) Variables and Methods
    8. 3.8Scope and Access
    9. 3.9this Keyword
    10. Unit 3 Summary
    11. Toggle Code Practice 3 (3.4-3.9)
    12. Unit 3 Mixed Up Code Practice
    13. Unit 3 Write Code Practice for Classes
    14. Multiple-Choice Exercises - Objects and Classes
    15. Unit 3 Test
    16. Free Response Question (FRQ) 2 Class Design - CupcakeMachine Class
    17. FRQ 2 Practice with Classes
    18. Free Response Question (FRQ) - StepTracker Class
    19. Free Response Question - Time
    20. College Board Labs
    21. Design a Class for your Community Project
    22. Unit 3 Projects
  5. 4Data Collections76 pages
    1. 4.1Ethical and Social Issues Around Data Collection
    2. 4.2Data Sets
    3. 4.3Array Creation and Access
    4. 4.4Array Traversals
    5. 4.5Implementing Array Algorithms
    6. 4.6Using Text Files
    7. 4.7Wrapper Classes - Integer and Double
    8. 4.8ArrayList and its Methods
    9. 4.9ArrayList Traversals
    10. 4.10Implementing ArrayList Algorithms
    11. 4.112D Array Creation and Access
    12. 4.122D Array Traversals: Nested Loops
    13. 4.13Implementing 2D Array Algorithms
    14. 4.14Searching Algorithms
    15. 4.15Sorting Algorithms
    16. 4.16Recursion
    17. 4.17Recursive Searching and Sorting
    18. Unit 4A - Arrays Summary
    19. Unit 4A - Toggle Code Practice 4a Arrays (4.1-4.6)
    20. Unit 4A - Arrays Code Practice
    21. Unit 4A - More Code Practice with Arrays
    22. Unit 4A - Arrays Multiple-Choice Exercises
    23. Unit 4A - Practice Exam for Arrays
    24. Unit 4A - Free Response - Horse Barn A
    25. Unit 4A - Free Response - Horse Barn B
    26. Unit 4A - Free Response - Self Divisor B
    27. Unit 4A - Free Response - Sound A
    28. Unit 4A - Free Response - Sound B
    29. Unit 4A - Free Response - Number Cube A
    30. Unit 4A - Free Response - Number Cube B
    31. Unit 4B - ArrayList Summary
    32. Unit 4B - Toggle Code Practice 4b ArrayList (4.7-4.10)
    33. Unit 4B - Code Practice with ArrayLists
    34. Unit 4B - ArrayList Multiple-Choice Exercises
    35. Unit 4B - Free Response Question (FRQ) 3 - ItemInventory
    36. Unit 4B - Free Response - Climbing Club A
    37. Unit 4B - Free Response - Climbing Club B
    38. Unit 4B - Free Response - Climbing Club C
    39. Unit 4B - Free Response - CookieOrder A
    40. Unit 4B - Free Response - CookieOrder B
    41. Unit 4B - Free Response - StringFormatter A
    42. Unit 4B - Free Response - StringFormatter B
    43. Unit 4B - Free Response - Delimiters A
    44. Unit 4B - Free Response - Delimiters B
    45. Unit 4D - Search/Sort Multiple-Choice Exercises
    46. Unit 4C - 2D Arrays Summary
    47. Unit 4C - Toggle Code Practice 4c 2D Arrays (4.11-4.13)
    48. Unit 4C - Code Practice with 2D Arrays
    49. Unit 4C - More Code Practice with 2D Arrays
    50. Unit 4C - 2D Arrays Multiple-Choice Exercises
    51. Unit 4C - Free Response Question (FRQ) 4 - Two-dimensional Arrays
    52. Unit 4C - Free Response - Gray Image A
    53. Unit 4C - Free Response - Gray Image B
    54. Unit 4C - Free Response - Route Cipher A and B
    55. Unit 4D - Recursion Summary
    56. Unit 4D - Recursion Mixed Up Code Practice
    57. Unit 4D - Recursion More Mixed Up Code Practice
    58. Unit 4D - Code Practice for Recursion
    59. Unit 4D - Recursion Exercises
    60. Optional: HashMap (Dictionary) Data Structure
    61. College Board Labs
    62. Picture Lab for 2D Arrays
    63. Picture Lab A1 - A3
    64. Picture Lab A4: 2D Arrays in Java
    65. Picture Lab A5: Picture Classes and Inheritance
    66. Picture Lab A5: Modifying a Picture
    67. Picture Lab A6: Mirroring Pictures
    68. Picture Lab A7: Mirroring Part of a Picture
    69. Picture Lab A8: Creating a Collage
    70. Picture Lab A9: Simple Edge Detection
    71. Unit 4A Projects
    72. Unit 4B Projects
    73. Unit 4C Projects
    74. Unit 4A - Arrays Mixed Up Code Practice
    75. Unit 4B - ArrayList Mixed Up Code Practice
    76. Unit 4C - 2D Arrays Mixed Up Code Practice
  6. 5Inheritance (optional)15 pages
    1. 5.1Inheritance, Superclass, Subclass
    2. 5.2Inheritance and Constructors
    3. 5.3Overriding Methods
    4. 5.4super Keyword
    5. 5.5Inheritance Hierarchies
    6. 5.6Polymorphism
    7. 5.7Object Superclass
    8. Inheritance Summary
    9. Free Response Questions
    10. Mixed Up Code Practice
    11. Code Practice with Object Oriented Concepts
    12. Inheritance Multiple-Choice Exercises
    13. College Board Celebrity Lab
    14. Practice Exam - Inheritance (not timed)
    15. Practice Exam - Inheritance (Timed)
  7. 6Untimed Practice Exams5 pages
    1. Exam 1 for the AP CSA Exam (not timed)
    2. Exam 2 for the AP CSA Exam (not timed)
    3. Exam 3 for the AP CSA Exam (not timed)
    4. Exam 4 for the AP CSA Exam (not timed)
    5. Exam 5 for the AP CSA Exam (not timed)
  8. 7Timed Practice Exams4 pages
    1. Practice Exam 1 for the AP CSA Exam
    2. Practice Exam 2 for the AP CSA Exam
    3. Practice Exam 3 for the AP CSA Exam
    4. Practice Exam 4 for the AP CSA Exam
  9. 8Free Response Practice16 pages
    1. FRQ 1A - Methods and Control - Part 1
    2. FRQ 1A - Methods and Control - Part 2
    3. FRQ 1A - Methods and Control - Part 3
    4. FRQ 1B - Strings - Part 1
    5. FRQ 1B - Strings - Part 2
    6. FRQ 1B - Strings - Part 3
    7. FRQ 2 - Class Design - Part 1
    8. FRQ 2 - Class Design - Part 2
    9. FRQ 2 - Class Design - Part 3
    10. FRQ3 - ArrayLists - Part 1
    11. FRQ3 - ArrayLists - Part 2
    12. FRQ3 - ArrayLists - Part 3
    13. FRQ4 - 2D Arrays - Part 1
    14. FRQ4 - 2D Arrays - Part 2
    15. FRQ4 - 2D Arrays - Part 3
    16. 2018 AP Exam Free Response Questions
  10. 9Mixed Up Code - Free Response Practice4 pages
    1. RandomStringChooser - Part A Parsons
    2. RandomStringChooser - Part A
    3. RandomStringChooser - Part B Parsons
    4. RandomStringChooser - Part B
  11. 10Stories15 pages
    1. Challenges In Computing
    2. Anaya Taylor
    3. Bryan Hickerson
    4. Briceida Mariscal
    5. Carla De Lira
    6. Camille Mbayo
    7. Destini Deinde-Smith
    8. Eric Espinoza
    9. Dr. Gloria Opoku-Boateng
    10. Dr. Juan Gilbert
    11. Luisa Morales
    12. Lucas Vocos
    13. Lien Diaz
    14. Milly Rodriguez
    15. Dr. Nettrice Gaskins