CISC 3120


A fairly thorough, though not super-detailed, discussion of what the JVM "looks like" is here.

If you're interested in how garbage collection works, here is a fairly readable description from Sun/Oracle. It's about 10 years old, so it probably doesn't capture exactly how things work in the JVMs we're using, but it gives you a sense.

The question of what references "are" has different answers depending on the JVM. This StackOverflow discussion from 2009 sketches some possibilities— in general, references are mostly like addresses, but there is usually some extra secret sauce in there to (for example) make garbage collection more efficient.


Learning Java, 4th Edition, by Patrick Niemeyer and Daniel Leuck. A book I've previously used as textbook for this course. Covers many aspects of Java quickly.

Introduction to Programming Using Java, Seventh Edition, by David J. Eck. Java for beginning programmers; a fairly straightforward, gentle introduction.

Head First Design Patterns, by Freeman, Robson, Bates, and Sierra. Very similar in style to our textbook; more advanced object-oriented design concepts (updated for Java 8).

Patterns of Software by Richard Gabriel. Part I ("Patterns of Software") has some useful background for this course.

Local Resources (about this course)

About CodeLab

About GitHub

Using Eclipse

About Documentation

Excerpts, Websites, Etc

FREE educational package from GitHub.

A crowdsourced list of free programming books in a variety of languages.

static void games, a website a with a nice to-the-point series of Java tutorials for game developers.

Rosetta Code, a demonstration of how to carry out many different programming tasks in many different languages.

The example code from Learning Java.

The example code from Head First Java

The Java API documentation (here are links to download the documentation to use offline.).

Oracle's Java tutorials.

Excerpt on pair programming from The Art of Agile Development by James Shore and Shane Warden

Short essay on the history of extreme programming (XP) and agile programming, by Robert Martin

Design Principles and Design Patterns by Robert Martin

Wikipedia pages on software design patterns.'s collection of design patterns

FREE training on cloud computing from Amazon Web Services.