Human Computer Interaction
Section 1: M 5:30-8:30PM / NCC 140
Introduction to human computer interaction and user interface development. Topics include definitions of Human-Computer Interaction, importance of good interfaces, psychological foundations, user-interface design examples, interaction models and dialog types for interfaces, user interface life-cycle, user-centered design and task-analysis, prototyping and the iterative design cycle, prototyping tools and environments, user interface implementation, and interface quality and methods of evaluation.
This course stresses the importance of good interfaces and the relationship of user interface design to human-computer interaction. It is intended to provide an adequate basis in software design and implementation for user interfaces. There will be content on both the issues and engineering process for user interface development.
Prerequisites: Each student must have completed CSCI 230 (Data Structures and Algorithms) or an equivalent or higher course, or have permission of the instructor. Minimally, each student should have strong background in software development, data structures, and algorithms; also strong background in a high-level programming language such as Python, Java, or C/C++.
- Test 1: Monday, Oct. 8
- Test 2: TBA
- Final: 5:30-8:30pm, Monday, Dec. 10, 2012
Assignments / Projects
Homework1, Homework2, Homework3, Final Project.
- Debbie Stone, et al. (2005), "User Interface Design and Evaluation", Morgan Kaufmann.
- Donald A. Norman (2002), "The Design of Everyday Things", Basic Books.
- Saul Greenberg, et al. (2011), Sketching User Experiences: The Workbook", Morgan Kaufmann.
- Wingfield, N. (2012), "Fresh Windows, but Where’s the Start Button?", NY Times, Oct. 22, 2012.
- Lewis, C. and Rieman, J. (1994), Task-Centered User Interface Design - A Practical Introduction.
- Jacob Nielsen's usability pointers
- Usability 101 -- How to define usability? How, when, and where can you improve it? Why should you care? This overview answers these basic questions.
- Ten Usability Heuristics -- Ten general principles for user interface design.
- Progressive disclosure defers advanced or rarely used features to a secondary screen, making applications easier to learn and less error-prone, whereas staged disclosure provides a linear sequence of options, with a subset displayed at each step. Both are strategies to manage the profusion of features and options in modern user interfaces.
- Critchley, S., "Designing Musical Instruments for Flow", O'Reilly Digital Media, December 29, 2004. (If you ask musicians what they value most about making music, most of them will say — in some form or another — flow. Flow is that wonderful sense of being lost in your work, when "work" becomes joy. Time disappears, and so do distraction, anxiety, and just about everything else, yielding to a pure unity of creator and creation. So wouldn't it be strange if many of today's musical instruments were designed to prevent or destroy flow?)
- Color scheme designer for user interfaces.
- 6 tips for designing Web Interfaces.
- Paper prototypes
- Yahoo! Design Pattern Library
- Intro to Python
- B. Manaris, V. MacGyvers, and M. Lagoudakis, "A Listening Keyboard for Users with Motor Impairments—A Usability Study," International Journal of Speech Technology 5(4), pp. 371-388, Dec. 2002. (This usability study shows that speech interaction with an ideal listening keyboard is better for users with permanent or task-induced motor impairments than conventional modes for alphanumeric input (37% better task completion time; 74% better typing rate; 63% better error rate). Results are shown relevent to alphanumeric input on mobile devices, such as PDAs, cellular phones, and personal organizers.)
- Wikipedia, Fitt's Law, Hick's Law, and Power Law of Practice.