We have a special and unique Masters of Human-Computer Interaction program at Carnegie Mellon University. Our courses are designed to give you the tools necessary to create your own methods and become leaders in the field of HCI.
We are proud of our core and flagship courses such as User Centered Research and Evaluation, Interaction Design Fundamentals, and Programming Usable Interfaces which provide a solid foundation for a successful career.
Your choice of electives is largely unbound. We encourage students to take electives from various departments within the university such as Business Strategy, Tangible Interaction and Mobile Service Design. This freedom allows you to tailor the program to your particular area of interest.
To earn the Master of Human-Computer Interaction degree, the following components are required:
Six HCI Core Courses
All students are required to take the following 6 core courses (05-600, 05-610, 05-650, 05-630, 05-631 and 05-633):
- 05-600 HCI Pro Seminar
Students will attend the HCII Seminar Series with talks by leaders in the field of Human-Computer Interaction. The students then meet to discuss these topics. Writing skills, group dynamics and conflict management strategies are also explored.
- 05-610 User-Centered Research and Evaluation
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 and quantitative analysis as well as 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 Interaction Design Studio
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. Interaction Design Fundamentals or the placement equivalent is a prerequisite for this course.
- 05-630 Programming Usable Interfaces (PUI)*
This course is for those with moderate programming skills who want to learn how to express their interactive ideas in working prototypes. This course will enable you to better communicate with programmers, covering information about how to design and implement good user interfaces, how to evaluate user interfaces, how to user interface systems work and integrate with operating systems. This course is for HCII Masters students with a minimal programming background, and for HCI undergrads who have had an introductory programming course. Students taking this course will often not be professional programmers, but will probably need to interact with programmers. Prerequisites: proficiency in a programming language such as C or Java, programming methodology and style, problem analysis, program structure, algorithm analysis, data abstraction, and dynamic data, normally met through an introductory course in programming C, C++, or Java. Pragmatically, students entering this course should be able to independently and successfully write a 300-line program in a 48 hour period.
As a related lab course, you should consider taking 05433/05633A (Level 1 PUI Prototype Lab) or 05433/05633B (Level 2 PUI GUI Lab).
- 05-631 Software Architectures for User Interfaces (SSUI)*
This course considers the basic and detailed concepts that go into building software to implement user interfaces. It considers factors of input, output, application interface, and related infrastructure as as the typical patterns used to implement them. It will also consider how these components are organized and managed within a well-structured object oriented system. After considering these fundamental concepts in the first portion of the class, the later part will consider advanced topics related to emerging future concepts in user interface design. This course is intended for HCII Master, BHCI dual majors and others who wish to understand the structures needed for professional development of interactive systems.
- 05-633 User Interface Lab (taken concurrently with 05-630/05-631)
* The student and the Program Director will jointly determine the choice of 05-630 or 05-631, based upon the studen'ts previos programming experience.
- 05-633A (Prototype Lab)
This course is a lab complement to 05-630 that focuses on prototyping. In this lab, several prototyping tools and processes will be covered, from paper prototyping to visual mockups to fully functional prototypes. Prototypes will be built using each of these, with a particular focus on iterative design, implementation and evaluation. Assignments will require implementing UIs, testing that interface with users, and then modifying the interface based on your findings. This course is for HCII Masters students with a minimal programming background, and for HCI undergrads who have had an introductory programming course. Students taking this course will often not be professional programmers, but will probably need to interact with programers, and need to:
- Learn to express yourself in an executable form
- Learn the basics of what is hard and easy to rapidly prototype
- Learn the basic terminology and approaches used by programmers
- Experience the frustration and joy of programming a working prototype
- Design and conduct informal user tests
Prerequisites: Proficiency in a programming language such as C or Java, programming methodology and style, problem analysis, program structure, algorithm analysis, data abstraction, and dynamic data, normally met through an introductory course in programming C, C++, or Java. Pragmatically, students entering this course should be able to independently and successfully write a 300-line program in a 48 hour period.
- 05-633B (GUI Lab)
This course is a lab complement to 05-630 that focuses on practice in the skills needed for prototyping and development of simple graphical user interfaces. In this lab rapid development tools such as graphical user interface layout editors will be combined with simple code to create functioning interfaces for a range of practical applications. This course is for HCII Masters, BHCI dual majors, and others with basic programming skills, rather than necessarily a strong programming or Computer Science background.
- 05-633C (Mobile Lab)
This course is a lab complement to 05-631 that focuses on mobile phone user interface and application development. In this lab, mobile phone development environments and phone user interface builders will be covered (e.g., Android Development Kit). Prototypes will be built using these tools, and experience will be gained by performing iterative design, implementation and evaluation of mobile phone interfaces and applications. Assignments will require implementing UIs, testing that interface with users, and then modifying the interface based on your findings. The course is intended for computer science majors (and those taking 05431/05631).
- 05-633D (Web Lab)
This course is a lab complement to 05-631 that focuses on practice in the skills needed for development of user interfaces to be deployed on the World Wide Web. In this lab, tools for both the "front end" (browser-side interfaces) and the "back-end" (supporting server-side code) will be considered. However, the emphasis will be placed on user interface concepts and components. This course is intended for HCII Masters, BHCI dual majors, and others with strong programming skills (e.g., for Computer Science majors.)
- 05-671 HCI Project I (15-unit spring course)
- 05-672 HCI Project II (48-unit summer course)
Experiential learning is key component of the MHCI program. Through a substantial team project, students apply classroom knowledge in analysis and evaluation, implementation and design, and develop skills working in multidisciplinary teams. The project begins in the spring semester before graduation and continues full-time through the final summer semester; it must be taken in consecutive spring and summer semesters. The course number for spring is 05-671 and for summer 05-672.
You may use the five elective courses to tailor the program to your individual interests, background and goals. You may choose to broaden your experience by sampling courses from a variety of subject areas, or you may choose to concentrate in a particular specialized area. This will enable you to be the leader or sole practitioner representing that specialty in a multi-disciplinary development group.
Each elective course must be the equivalent of a full-semester (9 or 12 unit) course; two mini (half-semester) courses (6 units each) count as one elective. Elective courses must be different from any that you may have taken as part of the HCI core, and they cannot have counted toward a degree previously awarded by CMU.
Electives must be individually approved by the MHCI Director, on a case-by-case basis for each student to realize their program goals and future endeavors.
Heinz & Tepper Schools of Business
Art, Design & Architecture
Entertainment Technology Center (ETC)
Three Place-out Courses
Carnegie Mellon’s MHCI is a rigorous interdisciplinary program. Every student arrives here with his or her own set of talents and skills and we would like to reward you for your prior hard work by giving you the opportunity to “place-out” of several of the required courses.
We advise students to take advantage of this opportunity as it will give you more time to take electives, independent studies or various other courses that you may find of interest. If you choose not to take advantage of these place-out opportunities, then we cannot guarantee the completion of the program in 12 months.
- Knowledge of Programming
Proficiency in a programming language such as C, programming methodology and style, problem analysis, program structure, algorithm analysis, data abstraction, and dynamic data. Normally met through an introductory course in programming in C, C++, Pascal or JAVA, that requires the student to write programs of about 300-lines of code from scratch. Equivalent course at CMU is 15-100 Introductory/Intermediate Programming.
- Knowledge of Statistics
Basic concepts, logic, and issues involved in statistical reasoning, such as probability theory, methods for statistical inference, introductory research methods, exploratory data analysis, and the use of some statistical tests in the regression analysis and the contingency table families. Equivalent courses at CMU are 36-220 Engineering Statistics and Quality Control and 36-202 Statistical Methods.
- Knowledge of Design
Familiarity with the visual and verbal vocabulary of graphic designers, with the design process, and with the communicative value of word and image. Often met through an introductory typography class. Equivalent course at CMU is Communication Design Fundamentals. Students may be admitted to the program before satisfying one or more prerequisites. Prerequisites may be completed at Carnegie Mellon after matriculation, but doing so may extend the length of the program. Students who take the Design prerequisite course, Communication Design Fundamentals, at Carnegie Mellon, may count this course as one of their 5 electives.
Sample Plans of Study
Full Time Study
The MHCI degree is designed to be earned in one year, August through August, in 3 semesters of study. Here is a sample full-time schedule:
05-600 HCI Pro Seminar
05-671 HCI Project I
05-672 HCI Project II
* Interaction Design Fundamentals counts as both the Design requirement and an elective
Part Time Study
Domestic students have the option to complete the program on a part-time basis. By exercising this option, you will be able to tailor completion of the coursework to suit your needs. You will work with an adviser to set up an appropriate plan of study. Ideally students should be able to complete the degree within a period of two years by taking two courses per semester, including summers. During the summer HCI Project II course, students are expected to be enrolled as full-time students, and should make the appropriate arrangements with their employers for leave. Part-time students must also be aware that all HCI core courses are held during the day, so it is not possible to complete the degree as a night student.
The following is a sample part-time plan of study that keeps in mind required course sequences:
|First Fall||First Spring||First Summer|
|05-651 IDF (counting as Elective 1) or
05-631 Software Architecture for User Interfaces (SSUI) / 05-630 PUI
|05-650 Interaction Design Studio
|Second Fall||Second Spring||Second Summer|
|05-600 HCI Pro Seminar
05-610 User-Centered Research & Evaluation
|05-671 HCI Project I
|05-672 HCI Project II|