An introduction to the field of Human-Computer Interaction (HCI), with a particular emphasis in understanding and designing user-facing software and hardware systems. This class covers the core concepts of HCI: affordances and mental models, selection techniques (pointing, touch, menus, text entry, widgets, etc), and conducting user studies and interviews. It also includes a project in which students program a simple interactive system.
In this class you will: solving weekly assignments (mostly programming in python or javascript) and two team projects (programming, user studies and engineering).
No prerequisites.
This course was developed by Pedro Lopes. Parts of this course are derived (with permission) from a course taught by Patrick Baudisch (in which Pedro co-taught a few segments) at Hasso Plattner Institute. All teaching materials in this class, including course slides, homeworks, assignments, practice exams and quizzes, are copyrighted. Reproduction, redistribution and other rights solely belong to the instructor. In particular, it is not permissible to upload any or part of these materials to public or private websites without the instructor's explicit consent. Violating this copyright policy will be considered an academic integrity violation.
The University of Chicago has formal policies related to academic honesty and plagiarism. We abide by these standards in this course. Depending on the severity of the offense, you risk being dismissed altogether from the course. All cases will be referred to the Dean of Students office, which may impose further penalties, including suspension and expulsion. In addition, we expect that everyone handles their fellow students and staff members with respect, following the norms of proper behavior by members of the University of Chicago community.
![]() |