These resources may be helpful for assignments, or to further explore specific topics.

Suggested starting points are marked with a

Development Tools [ Git | Make | Gradle ]
Programming Languages [ Java | Android | C++ ]
Human-Computer-Interaction (HCI) [ History | Design ]

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.


Some of the samples include a makefile to build the code; type 'make' if a makefile is present to build it, and `make run' to build and run it.


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 appropriate version of the Java JDK (which includes the compiler, JRE and so on). Although owned by Oracle, Java is an Open Source project. We suggest installing the appropriate OpenJDK version. You should NOT install from the Oracle site, which is restricted to commercial use.

Books & Documentation

Java Swing

Java FX



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