CMSC 20300: Introduction to Human Computer Interaction

News & Announcements

Class done!
Thank you all so much for an exciting class with so much modelling, 3D printing, model fitting, user studies, and interface design.
Published by Pedro Lopes on Dec 12 2019

3D Prints
Make sure to use the 3D printers at MADD, our lab or Polsky for the project 2
Published by Pedro Lopes on Nov 7 2019

Project 1 deadline extended
Project 1 now due on Tuesday Oct 29th!
Published by Shan-Yuan Teng on Oct 18 2019

Office hours on Oct 11 changed
The office hours on Oct 11 are changed to 11AM - 12:20PM (JCL292).
Published by Shan-Yuan Teng on Oct 6 2019

First class done, check spam folder for wiki emails!
First class done: (1) check spam folder for wiki email, (2) login in wiki to get assignment, (3) if you did not come to class, email us asap! (4) submit assignments on time! If you are trying to register to get a wiki username go here:
More info here.
Published by Pedro Lopes on Oct 1 2019

Office hours
Our office hours are on Friday at 1.30-3PM at our lab (JCL 292). Office hours start on Oct 11 (not Oct 4).
Published by Pedro Lopes on Oct 1 2019

Class evaluation
This class is evaluated as follows: 10% (in class participation, ocasional quiz), 40% (individual assignments after lectures, no late policy), 50% (all team projects combined).
Published by Pedro Lopes on Sep 26 2019

Classes on Tue+Thu 3.30pm to 4.50. This class is full.
Class is at Rosenwald Hall 011 (RO 11)
Published by Pedro Lopes on Aug 19 2019


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.

Expected workload

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.