CMU logo
Expand Menu
Close Menu

Programming Usable Interfaces (PUI)

Course Information

Course Number

HCI Undergraduate: 05-430
HCI Graduate: 05-630

Program Requirement

This is a required course for
Additional Major in Interdisciplinary HCI

Course Description

This course is combines lecture, an intensive programming lab and design studio.

PUI is for those who want to express their interactive ideas in working prototypes. It will cover the importance of human-computer interaction/interface design, iterative design, input/output techniques, how to design and evaluate interfaces, and research topics that will impact user interfaces in the future.

In lab, you will learn how to design and program effective graphical user interfaces, and how to perform user tests. We will cover a number of prototyping tools and require prototypes to be constructed in each, ranging from animated mock-ups to fully functional programs. Assignments will require implementing UIs, testing that interface with users, and then modifying the interface based on findings. Some class sessions will feature design reviews of student work.

RECITATION SELECTION: Students taking this course can sign up for either Prototyping Lab recitation.

When registering for the required HCI programming course, you must also sign up for a recitation time. The labs differ on their computer science prerequisites. Section E should be taken by students majoring in computer science or with advanced technical skills. Section A through D require only an introductory course in computer science as a prerequisite, and can be taken either by computer science majors or non-computer science majors.

PREREQUISITES: Proficiency in a programming language, program structure, algorithm analysis, and data abstraction. Normally met through an introductory programming course using C, C++, Pascal or Java, such as 15-100, 15-112, 15-127 or equivalent. Students entering this course should be able to independently write a 300-line program in 48 hours.

WAITLIST LOGISTICS: Note that ALL undergrad students who register for this class will initially be placed on a waitlist. Your position on the waitlist is not an indication of whether you will be accepted into the class. Contacting the instructor will not move you off the waitlist. Priority for getting off the waitlist are MHCI students and senior BHCI students first, and then others.

Semester Offered and Units

Semester: Spring
Undergraduate: 15 units
Graduate: 15 units

Enrollment Requirements

This course is for HCII Masters students and HCI additional majors with a minimal programming background. Students will often not be professional programmers, but will need to interact with programmers. This course is NOT open to students outside of the BHCI program.



Jason Hong