CMSC/MADD 23220: Inventing and Engineering Interactive Devices
(also nicknamed by previous students as "hci engineering")

News & Announcements

What to bring for the first class (Jan5)?
All you need = your laptop + usb-c cable
Published by Yudai Tanaka on Jan 3 2024

Class hours
Lectures happen on Fridays 1:30pm-4:20pm at CSIL 5; office hours happen on Wed 4:00pm-6:00pm at CSIL 5.
Published by Pedro Lopes on Jan 2 2024

Welcome 2024!
Welcome to the "HCI engineering" class (see your inbox for your welcome email with instructions for the first week). Questions?
Published by Pedro Lopes on Jan 1 2024

New quarter!
This class will happen in Winter 2024 (instead of spring). We received many requests from students asking if they could take this in winter and take PCB in spring (, which we think is a great idea. Thus, this year is a test of this format where all three HCI classes are in a row: Intro to HCI (fall), Engineering HCI (winter), and PCB/electronics (spring).
Published by Pedro Lopes on Nov 21 2023

Congrats on your 2023's final projects, we were proud to see the wearables you engineered in this class!

Published by Pedro Lopes on May 27 2022


In this class we build I/O devices, typically wearable or haptic devices. These are user-facing hardware devices engineered to enable new ways to interact with computers. In order for you to be sucessful in building your own I/O device we will: (1) study and program 8 bit microntrollers, (2) explore different analog and digital sensors and actuators, (3) write control loops and filters, (4) explore sretchable and fabric based electronics, (5) learn how to approach invention, and (6) apply I/O devices to novel contexts such as wearables and/or haptics. This class is a prerequisite for CMSC 23230 (, after doing this one, you can continue your learning of hardware!

Expected workload

You will: solve weekly assignments (programming, soldering, circuit design, hardware design, signal processing) and one (hard) final project, in which you build your own standalone I/O device (a wearable or haptics device).


This class requires you to have taken CMSC 15400. Moreover, this class is about the physical side of computing, involving a lot of hardware and some basics of electricity. Thus, while not mandatory, it helps if you have taken CMSC 20380 (Actuated User Interfaces and Technology) or any physics-level course that includes electricity/electromagnetism (PHYS 13100-13200-13300, PHYS 14100-14200-14300, PHYS 22500-22700).

Class time and place

This class meets 1 times a week, as follows: (1): Friday at 1:30pm to 4:20pm (a 170 mins lecture) at CSIL5;


This course was developed by Pedro Lopes. 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.


If you have a impariment of any kind please communicate it to the instructor and you will do the best to accomodate it, e.g., you will be provided with the suitable course materials.