CMU logo
Expand Menu

F17 Human-Centered Courses for CS Students



Designing Human-Centered Software 05-391

Instructor: Chris Harrison

If you take only one course in HCI, this is the one you want. This class explores the frustrations people experience from systems and products designed without people in mind. This is an introduction to designing, prototyping and evaluating user interfaces.

Software Structures for User Interfaces 05-431

Instructor: Jennifer Mankoff

The course presents implementation patterns around sensing, input, output and related infrastructure. After considering these fundamental concepts in the first portion of the class, the later part will consider advanced topics related to emerging technical research topics relating to sensing, interactive systems, fabrication and more.

Gadgets Sensors and Activity Recognition in HCI 05-833

Instructor: Scott Hudson

This class considers the skills and concepts needed to prototype small interactive electronic devices and HCI concepts behind them.  The course is designed to be accessible to students with a wide range of backgrounds and no prior knowledge of electronics.


Document Design 05-899

Instructor: Karen Berntsen

This class teaches students how to make visual and editorial decisions around the presentation of complex content in single and multiple page documents. Students will become visual thinkers by mastering the fundamental design principles of typography, grid systems, and the power of images.

Learning Media Design 05-291

Instructor: Marti Louw

Learning is a complex human phenomenon with cognitive, social and personal dimensions that need to be accounted for. This project-based studio course focuses on the design aspects of creating effective learning experiences using digital media and emerging technologies with actual stakeholders and end users to tackle a real-world challenge in education.

Twitch Plays Game Design: Crowd and Cloud for Distributed Play 05-499/05-899

Instructor: Jess Hammer

In this course, students will explore the design space of crowd- and cloud-enabled games. They will identify existing game design techniques for playing at scale, study games currently designed for spectatorship, and discover problems faced by different stakeholders (spectators, players, streamers, curators, designers).

Service Design 05-452/05-652

Instructors: Jodi Forlizzi and John Zimmerman

In this course, we will collectively define and study services and product service systems, and learn the basics of designing them. We will do this through lectures, studio projects, and verbal and written exposition. Classwork will be done individually and in teams.


Special Topics: Accessibility - A Guide to Building Future User Interfaces 05-499/05-899

Instructor: Jeffrey Bigham

In this course, you’ll learn to solve hard computer science problems to create accessible interfaces for people with disabilities. Course projects will require you to use computer vision, operating systems, natural language processing, machine learning, sensing, and speech recognition.

Special Topics: Crowd Computing 05-499/05-899

Instructor: Jeffrey Bigham

In this course, students will learn to program the crowd to write programs that work with existing sources of crowds, apply usability principles for designing crowd tasks, use statistical methods and build systems that interface with crowd labor in real time.

Special Topics: Computing for Good 05-499/05-899

Instructor: Afsaneh Doryab

C4G presents Computer Science as a technological platform for improving the quality of life and humans' condition. In this course, students work on projects in partnership with communities, non-profits, and government and learn how to design, develop, and deploy technical solutions for real world problems.

Special Topics: Persuasive Design in HCI 05-499/05-899

Instructor: Geoff Kaufman

This multidisciplinary project-based course explores the design and evaluation of HCI technologies and environments that aim to change users’ attitudes, emotions, or behaviors. Students will iteratively prototype, implement, and evaluate a system or a change to a ubiquitous computing environment that intends to stimulate and sustain belief or behavior change.

The website encountered an unexpected error. Please try again later.