Title: Think Java: How to Think Like a Computer Scientist (Version 6)
Author: Allen B. Downey and Chris Mayfield
License: CC 3.0
This book is for beginners who want to learn Java. It has no prerequisites. “Think Java” is an introduction to computer science and programming intended for people with little or no experience.
The book starts with the most basic concepts and are careful to define all terms when they are first used. The book presents each new idea in a logical progression. Larger topics, like recursion and object-oriented programming, are divided into smaller examples and introduced over the course of several chapters. The readers are requested to practice the topics by modifying the codes.