CS6326.001 Human-Computer Interactions
(This was CS6301.001 User Interface Design and Development for Mobile Applications.  The course content will remain the same.)
Tuesday/Thursday from 8:30 to 9:45 AM
Instructor: John Cole
Office hours: Tuesday/Thursday 8:30 to 9:45 AM
Room: ECSN 2.126

Teaching Assistant: TBA

Last update: 11/25/2015
Syllabus is on Coursebook Schedule
Textbook: Human-Computer Interaction by Dix, Finlay, Abowd, and Beale
This graduate course is intended to provide an in-depth understanding of the intricacies of user interface design and the user experience, with a special orientation toward mobile devices. Topics include cognitive models, interaction models, screen design for various kinds of user input, design of on-screen controls, input from sources other than the keyboard such as speech and touch, and the use of mobile device sensors. On the output side, we will cover various forms of user feedback, including display of information, sound, and haptic feedback. You will be expected to be highly competent in the Java programming language.  A good understanding of multithreading is also useful.

This course is different from most of your other computer science courses.  I know that it is important to understand data structures, algorithm analysis, object-oriented design, program efficiency, database design, and so on.  Without those things you would not be a computer scientist.  But consider that the most efficient algorithms, the most elegant internal design, are not worth much if the program containing them is difficult to use.  You would not buy someone an expensive present, then wrap it in a trash bag, would you?

Caution: If you are considering this class only to learn Android or mobile apps, look elsewhere, such as one of the workshops.  This course covers topics in cognitive psychology and design principles and is not an exhaustive course in Android programming.  We will not cover such topics as SQLite and other "back-end" Android APIs.  We will discuss Android sensors, drawing, and the touchscreen.  Also, as one student remarked anonymously in all caps, "Do not treat this course as an elective."  And indeed, if you are in the Interactive Systems track, this course is very much core, and I teach it that way.  You will be expected to read the textbook, preferably before each class.

Get Google's Android Developer Studio here

Link to Android Developer tutorials.  Take a look at Best Practices for Interaction and Engagement and some of the others below this.

Android Design Tutorials

Exam Rules


In-Class Notes.  These are what I wrote using WordPad during class, if any.