CS349 User Interfaces
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Reading List

These resources are not required, but may be useful.



Originally designed by JetBrains, Kotlin is a general purpose programming language explicitly designed as a drop-in Java replacement. It’s the “official” language for Android development, and includes many modern and useful features for application development.


JavaFX is a desktop UI toolkit: a set of libraries that provide graphics capabilities, windowing, event handling, widgets and so on. It was originally targeted at Java, but also works well with Kotlin.


The main resource for Android developers is the Android Developer Site, which includes links to download Android Studio, design guides, documentation and sample code. Kotlin and Java can both be used to build Android applications (though we’ll focus on Kotlin).


Git is standard version control software, commonly used in industry and open source projects.


Gradle is a replacement for GNU Make that handles large projects. In particular, it is the default build system for Android projects.

Human-Computer Interaction


  • Donald A. Norman. 1988, 2002. The Design of Everyday Things. Norman explores the design of everyday things – light switches, doors, telephones, cars, and some computers.
  • Jef Raskin. 2000. The Humane Interface: New Directions for Designing Interactive Systems. Jef was the chief designer of the Apple Macintosh and ushered in the current desktop metaphor.
  • Dan R. Olsen Jr. 2010. Building Interactive Systems. Course Technology.
  • Jeff Johnson. 2013. Designing with the Mind in Mind: Simple Guide to Understanding User Interface Design Guidelines. Morgan Kaufmann.


Ivan Sutherland’s Sketchpad

Douglas Englebart’s “Mother of all Demos”