All students are required to take the following 4 core courses: 05-600 HCI Pro Seminar, 05-610 Intro to HCI Methods, 05-650 Interface and Interaction Design, and either 05-630 Programming Usable Interfaces or 05-631 Software Architectures for User Interfaces
05-600 HCI Pro Seminar
Students will attend the HCII Seminar Series of talks by leaders in the field of Human-Computer Interaction, then meet to discuss these topics.
05-610 Intro to HCI Methods
This course provides an overview and introduction to the field of human-computer interaction. It introduces students to tools, techniques, and sources of information about HCI and provides a systematic approach to design. The course increases awareness of good and bad design through observation of existing technology, and teaches the basic skills of task analysis, and analytic and empirical evaluation methods. Graduate students will also participate in a laboratory where they will practice HCI techniques in an independent, self-defined project.
05-650 Interface and Interaction Design
What is visual interface design? An interface is the link between a product and its user. An interface needs to communicate how a product is to be used, and to create an experience for the people who will use it.
In this course, we will explore issues that pertain to interface design, focusing on basic 2-dimensional design principles, information hierarchy and navigation, user-product interactions, and how these elements become part of a larger design process.
Students will become proficient in basic design fundamentals as applied to the visual interface, including use of grid, typography, color and contrast, scale, ordering and hierarchy. In addition, students will develop a process for creating interface designs that can be reapplied in future contexts.
Communication Design Fundamentals or the placement equivalent is a pre-requisite for this course.
05-630 Programming Usable Interfaces
This course is a combination programming course and design studio. Students will learn how to use Visual Basic & Director, how to design and implement effective GUI interfaces, and how to perform rapid, effective iterative user tests. This course is intended for HCII masters students who come to CMU with only a minimal programming background. It is also appropriate for CMU HCI undergraduate "second majors" in HCII who have only had an introductory programming course. Students who were (or are) CS majors, CS minors, or who have any kind of substantial Computer Science background must take 05-631 instead of this course to fulfill the core requirement; however, they may take this course as one of their six electives. Because this course has a design studio component, class attendance is mandatory.
05-631 Software Architectures for User Interfaces
This course is intended for those with advanced programming skills who want to do serious development of graphical user interfaces. This course includes: an introduction to task analysis and functional design of the user interface; basic principles of computer graphics used in UI implementation; event handling and event dispatching models; screen update algorithms and multi-view architectures; input syntax formalisms and their transformation into programs; interactive geometry; architectures for advanced features such as cut/copy/paste, macros and groupware.
The student and the Program Director will jointly determine the choice of 05-630 or 05-631, based upon the student's previous programming experience.