There is no required reading in this course, but these resources may be helpful for assignments, or to further explore specific topics.

Suggested starting points are marked with a

Development Tools


We will be using Git, a distributed version control system, for assignment submissions.

You are expected to setup your account on the UW Git installation, and “push” your assignments to a private repository on that server to submit them. As per assignment policies, you are not allowed to publically post your assignments online in any other location. Details are included in the assignments and course notes.

Here's a list of Git resources that might be useful.


Gradle is a replacement for GNU Make that handles large projects. In particular, it is the default build system for Android projects. You can type 'gradle build' on the command line, but typically build within an IDE.

Programming Languages


You will need to install the Java JDK SE (which includes the compiler, JRE and so on). Although owned by Oracle, Java is an Open Source project. We suggest installing the appropriate version from one of these sites:

Books & Documentation

Java Swing

Java FX

Other Java



The main resource for Android developers is the Android Developer Site, which includes links to download Android Studio, design guides, documentation and sample code.

C++, X Windows and Xlib

Reference information for writing C++ X Windows applications. Although we don't write code in-class using XLib, some of the examples make use of this.

HCI Topics

History of Interaction Research