About this course
This book is an introduction to programming in Java in an object-first style. It emphasizes testing, interfaces, and data-driven design of methods.
It owes a great debt to How to Design Programs (http://htdp.org/), How to Design Classes (https://felleisen.org/matthias/HtDC/htdc.pdf), and Ben Lerner's notes from Northeastern University (https://course.ccs.neu.edu/cs2510/).
In many ways, this book is a Java-only and (sadly or not-so-sadly, depending on your parenophobia) Racket-free, from-scratch introduction using some of the style of How to Design Programs, and a Racket-reference-free set of examples in the style of HtDC. A reader could happily move on to continue their study using the curriculum from CS2510 at Northeastern University, for example.