Introduction to Programming and Computational Problem-Solving

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 (, How to Design Classes (, and Ben Lerner's notes from Northeastern University (

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.

Meet the Instructors

Course content

Price: Free

Share this course

Price: Free