Pile of book lot Photo by NeONBRAND on Unsplash.


There is only one required textbook for this course. However, other readings will be taken from other books as necessary and available freely online or through AU online resources. The listed books and online resources on this page are subject to frequent change and updates throughout the semester.

Book Description
ZyBooks Programming in Java Required
Title: ZyBooks Programming in Java
Author: ZyBooks
Purchase: Check course Canvas for current semester link
Clean Code Title: Clean Code: A Handbook of Agile Software Craftmanship
Author: Robert C. Martin
Available through American University O’Reilly Safari Account
This is a more advanced book to help you to think about going beyond writing programs that just work to programs that work cleanly and effectively.

What Java do I get?

This is a good question. Java is an active and evolving language - new versions are released frequently. This course uses the most recent open-source version of the Java Development Kit (OpenJDK). Commercial builds of the JDK can alternatively be obtained from Oracle, under a non-open-source license, but we will not use them. You will want to download the version specific to your operating system from https://jdk.java.net/16/. Why are there both open-source AND non-open source versions of Java? It’s complicated.

Other Resources

Additional links to supplementary articles and videos used throughout this course will be posted throughout the semester.

  • Useful for creating your own hobby projects or following along with in-class demonstrations: Create your first Java application in IntelliJ IDEA
  • Useful for obtaining the assignments: Clone a project from Github
  • Necessary for later in the semester: Create a new JavaFX project
  • Self-guided tutorials to help you with specific features of the Java language. Really useful supplemental for the textbook and in-class lectures when you need another point of view focused on the language specifics: The Java™ Tutorials. Caveat from the tutorials page: “The Java Tutorials have been written for JDK 8. Examples and practices described in this page don’t take advantage of improvements introduced in later releases and might use technology no longer available.”