Introduction to Programming in Java

a textbook for a first course in computer science
for the next generation
of scientists and engineers


Our textbook Introduction to Programming in Java [Amazon · Addison-Wesley] is an interdisciplinary approach to the traditional CS1 curriculum. We teach all of the classic elements of programming, using an "objects-in-the-middle" approach that emphasizes data abstraction. A key feature of the book is the manner in which we motivate each programming concept by examining its impact on specific applications, taken from fields ranging from materials science to genomics to astrophysics to internet commerce. The book is organized around four stages of learning to program:


Reading a book and surfing the web are two different activities: This booksite is intended for your use while online (for example, while programming and while browsing the web); the textbook is for your use when initially learning new material and when reinforcing your understanding of that material (for example, when reviewing for an exam). The booksite consists of the following elements:

To get started.

Here are instructions for installing a Java programming environment [ Mac OS X · Windows · Linux ]. We also provide I/O libraries for reading and writing text and binary data, drawing graphics, and producing sound.

To adopt.

Here are some of the distinctive features of our textbook and a marketing flyer. To preview our material, you can download the preface and Chapter 1. If you wish to consider the book for adoption, please fill out this form to request a copy or ask for more information.


We also have a Python verison of our textbook.