Introduction to Computer Science

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

This booksite supplements the forthcoming textbook Introduction to Computer Science in Java by Robert Sedgewick and Kevin Wayne.


Our book 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. The book is organized around four areas of computer science: programming, machine architecture, theory, and systems. A key feature of the book is the manner in which we motivate each programming concept that we address by examining its impact on specific applications, taken from fields ranging from materials science to genomics to astrophysics to internet commerce. This approach highlights the essential idea that mathematics, science, engineering, and computing are intertwined in the modern world. It also both reinforces and takes advantage of students' preparation in high-school math and science as they learn programming.

For instructors.

If you wish to consider adoption, please fill out this form to examine prepublication chapters or ask for more information.

For students.

This booksite contains an extensive amount of supplementary information that is intended for your use while programming. It includes links to program code, test data, and solutions to selected exercises. It also contains text digests of each chapter.

For self-study.

You can begin learning to program using the textbook and this booksite. Section 1.1 contains detailed instructions for installing a Java programming environment on your system.