CS61B website: https://inst.eecs.berkeley.edu/~cs61b/archives.html
The CS 61 series is an introduction to computer science, with particular emphasis on software and machines from a programmer’s point of view.
Josh Hug Gitbook: https://joshhug.gitbooks.io/hug61b.
Paul Hilfinger’s (free) Java Reference or Head First Java, 2nd Edition by Sierra and Bates (O’Reilly, 2005).
The optional textbook for the weeks 8-14 of the course is Algorithms, 4th Edition by Wayne and Sedgewick.
All textbooks for this course are optional. Homework will not be assigned from them, and alternate readings will be provided when possible.