Textbook and Readings

Our textbook for CSE 331 this quarter is:

Horstmann, Cay. Core Java, Volume I: Fundamentals, 8th edition. ISBN 9780132354769.

No problems will be assigned directly out of the textbook, but it is a very well-written guide to many aspects of the Java language. I consider it my go-to guide for understanding Java and particularly topics like inheritance and GUI programming. Also, exams in this course will be open-book (for this particular book only, not for other books), so it may be advantageous to own the book for use as a reference during exams.

The book may also be available on course reserve at the UW Engineering Library. If the book is not available on reserve, please contact the instructor.

The book can be purchased from the UW Bookstore or online from retailers such as Amazon.com.


The following books are also very useful guides related to the material in this course:

Bloch, Joshua. Effective Java, 2nd edition. ISBN 9780321356680.

Josh Bloch designed, implemented, and maintained many of the Java platform libraries. Here he shares 78 rules and code examples showing what works, what doesn't, and how to use the language and its libraries to best effect. Accessible by anyone who knows the language, but food for thought even for advanced programmers. We will refer to some of these rules throughout the course as appropriate.

The book can be purchased online from retailers such as Amazon.com.

Horstmann, Cay. Object-Oriented Design and Patterns, 2nd edition. ISBN 0-471-74487-5.

Drawing from his experience as a programmer and teacher, Horstmann shows many object-oriented design principles and gives a context for applying these principles and techniques in your own code and designs. Has lots of coverage of design patterns and real-world examples of how those patterns are used effectively in Java.

The book can be purchased online from retailers such as Amazon.com.