Section 0.1 Preface
CSAwesome2 is the second edition of CSAwesome, a free AP CSA curriculum that is endorsed by the College Board as an official AP CSA curriculum and PD provider for the 2025-2026 AP CSA revision. It was revised by Dr. Beryl Hoffman, Professor of Computer Science at Elms College, MA. Special thanks to Leigh Anne Fitz of Virginia Beach Public Schools for debugging and creating the solutions for teachers and the students in CIT 215 at STCC in Spring 2025 for testing and debugging. Special thanks to Kate McDonnell from Cherry Creek Schools in CO who created a JUnit test code suite and many of the unit tests for autograding and for revising the lesson plans with help from Kimberly Polin from Williston Northampton School in MA. And many thanks to Peter Seibel from Berkeley High School for his 2023 edits and code to help with the conversion to PreTeXt.
CSAwesome was originally created in 2019 as a free AP CSA curriculum by adapting the AP CSA Java Review e-book written by Dr. Barbara Ericson, while she was a senior research scientist at Georgia Tech, currently Assistant Professor of Information at University of Michigan.
Dr. Beryl Hoffman, Professor of Computer Science at Elms College, MA, created and adapted the CSAwesome curriculum to follow the College Board CSA 2019 guidelines with the support of a 2019 Google CS-ER grant and the Mobile CSP project (https://www.mobile-csp.org) to help transition students and teachers from AP CSP to AP CSA. Special thanks to Barb Ericson, Beth Simon, Colleen Lewis (for her awesome Java memory model videos), John Figliulo, Pauline Lake, Jennifer Rosato, Kim Evelti, Becky Stacey, Art Lopez, Kyle Gillette, and Peter Bowers for feedback, edits, and ideas.
β1β
https://www.mobile-csp.org
In the summer of 2020, CSA teacher extraordinaire Kate McDonnell from Cherry Creek Schools in CO created a JUnit test code suite for our Java servers to provide feedback to students in every active code. Many volunteers including Pat Clark, Emma Brown, Emma Pinnell, Megha Sharma, Arjun Balaji, and Anvita Gollu helped to add many junit tests to each active code to make them auto-gradable.
In the summer of 2023, Peter Seibel, author, software developer, and Berkeley High School AP CSA teacher, made valuable improvements to the CSAwesome text and Runestone platform.
If you see errors or bugs, please report them with this form.
β2β
https://forms.gle/4gMBsv4W71vG5mNe8
Acknowledgements
We gratefully acknowledge the use of the Runestone platform and Jobe servers run by Brad Miller, and the past use of the Jobe server from the University of Canterbury, New Zealand.
Special thanks also to the following people that we have collaborated with:
-
Jeff (Jochen) Rick made great contributions to the Parsons problems (mixed up code problems).
-
Philip Guo who created the Java Visualizer, which we use in the e-book.
-
Paul Resnick at the University of Michigan for hosting us all at the summer 2016 hackathon for Runestone Interactive and for his input into the design of the instructor dashboard.
-
Brad Miller and David Ranum and the students at Luther College, who created the Runestone Interactive platform. Brad Miller has been keeping it going for years.
Thank you also to the National Science Foundation for supporting our ebook work through several grants: Grant No. 1432300, 1138378, and 1228352.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Google has supported this work through their Google RISE Awards: TFR14-03256, TFR14-00363, and TFR-16-01052. They have also supported our efforts to help more under-represented students succeed in their AP CSA courses and on the exam.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of Google.
Contributors
The following people have contributed to this ebook:
Several students at Georgia Tech have helped review the eBook:
-
Emily Cahil
-
BreβAna Deen
-
Kantwon Rogers
-
Hemanth Koralla
-
Ikenna Omekam
-
Gabriel Galarza
-
JaβQuan Taylor
-
Nimish Todi
-
Ashraf Younis
-
Sana Ajani
-
Yamini Nambiar
-
Andrew Teachout
-
Sydni Peterson
-
Bhavika Devnani
-
Stephanie Remy
Several students from the University of Michigan have contributed to the eBook
-
Emma Brown - unit tests
-
Emma Pinnell - unit tests
-
Kira Woodhouse - Added Peer Instruction questions
Several students at the University of California, San Diego have been involved in creating multiple choice questions for the EBook.
-
Matthew Crooks
-
Miranda Go
-
Valerie Hon
-
Sophia Krause-Levy
-
Shauna Sapper
Many others have been involved in the creation of content for the eBook (including high school students).
-
Atiba Nkosi Kee
-
Robert McKenzie - created videos explaining concepts (arrays, interfaces, searching)
-
Nicole Guobadia - created videos explaining concepts (recursion)
-
Daniel Boaitey - created free response videos from 2014 questions.
-
Christy Zachary - created free response videos and Java executable examples
-
Javier Rodriguez - added a new exam (non-timed #1)
-
Gabby Jackson - added new exams (non-timed #2, #3, and #4)
-
Sofia Moin - added a video on variables
-
Gerald Nash - added many free response questions for arrays, 2D arrays, and lists
-
Sabrina Seibel - added free response question 4 from 2016 - StringFormatter and added questions to the code practice problems at the end of the 2d array chapter and the OO chapter.
-
Julian Hamelberg - worked on free response questions - seating chart A and B
-
Christine Hsieh - added mixed up code problems at the end of the array chapter and code practice problems
-
Carlos Diaz - fixed problems and added code highlights
-
Avery Rosh - found an error in one of the 2D array questions
-
JP Fasano - found an error in one of the non-timed exams
-
Srikar Yendapally - added code problems to the 2D array chapter
-
Kiran Ruston - added new questions to the free response problems at the end of the ebook.
-
Arvindh Manian β formatted video interviews into the Stories unit of the ebook
-
Sanjana Duttagupta - added Peer Instruction questions from http://peerinstruction4cs.com/
β3β
http://peerinstruction4cs.com/
License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
β4β
http://creativecommons.org/licenses/by-nc-sa/4.0/
Barbara Ericson barbarer@umich.edu 2014-current All rights reserved.
β5β
mailto://barbarer@umich.edu
Beryl Hoffman hoffmanb@elms.edu 2019-current All rights reserved.
β6β
mailto://hoffmanb@elms.edu
Peter Seibel peterseibel@berkeley.net 2023-current All rights reserved.
β7β
mailto://peterseibel@berkeley.net
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS βAS ISβ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
We acknowledge icons used from https://www.flaticon.com/ and https://icons.getbootstrap.com/icons/ which are licensed by http://creativecommons.org/licenses/by/3.0/.
β8β
https://www.flaticon.com/
β9β
https://icons.getbootstrap.com/icons/
β10β
http://creativecommons.org/licenses/by/3.0/
You have attempted of activities on this page.