About the book
This book is based on notes, demo code, and coding exercises I have written and used over the past 10 years of teaching AP Computer Science A at Marlborough School in Los Angeles. Various versions of this content have been published previously on my class webpages with open source licensing.
In the Computer Science Program at Marlborough School, we benefit from using many free and open source software (FOSS) projects and open educational resources. We use the Processing language and software for our introductory computer programming course. Processing is a simplified version of Java that provides a framework for computer graphics. It is a great language for learning to code, but you can also use more advanced Java concepts (e.g. classes) and you have access to OpenGL graphics programming functionality (e.g. 3D graphics, coordinate transformations, texture mapping). In AP Computer Science, in addition to completing the coding exercises in this book, students work on a sofware project throughout the school year, using the Processing libraries from Java. The project gives the student an opportunity to put into practice all of the concepts we discuss in the book.
The text for the book is written in Markdown, and the book is built with Pandoc, a universal document conversion tool, which uses LaTeX, a mathematical typesetting language, for typesetting. The build process is orchestrated by make, which is one of the oldest Unix tools that is still in wide use. During the build process, all the code examples are compiled and run, and the output is saved and included in the book. The cover image and the time complexity plot were written in Processing, the source code is included in the appendix.