“Introduction to Programming in Java: A textbook for a first course in computer science for the next generation of scientists and engineers” is free to read online.
This 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. 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.
Table of Contents
- Elements of Programming
- Object-Oriented Programming
- Algorithms and Data Structures
Link: Read online.