MHCI Curriculum

Carnegie Mellon | Portugal




A flexible curriculum supporting interdisciplinary learning and studio design courses

By taking four core courses, working on a major design and development team project, and completing five electives, you will leave the program with a background in HCI implementation, design, and analysis and evaluation sufficient to allow you to be an effective member of a multi-disciplinary development team. Advanced courses will provide depth in an area of your choice. To earn the Master of Human-Computer Interaction degree, the following components are required:



Students entering the MHCI program are expected to have basic background knowledge of Programming, Statistics, and Design. Typically this background is obtained through undergraduate level courses, and we have listed the equivalent courses offered at Carnegie Mellon and Madeira. However, self-education or work experience can be offered for consideration to fulfill these pre-requisites. All prerequisites must be reviewed and approved by the Program Directors before the student will be credited with having fulfilled these prerequisites.

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. The equivalent course at CMU is 15-100 Introductory/Intermediate Programming. 

Knowledge of Statistics: Familiarity with basic concepts, logic, and issues involved in statistical reasoning, such as probability theory, methods of 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 is necessary and can be gained through an introductory typography class. The 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 five electives.



Core courses

All students are required to take the following four 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 Structures 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 User-Centered Research and Evaluation: This course provides an overview of 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 use HCI techniques in an independent, self-defined project.

05-650 Interface and Interaction DesignWhat 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 person 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, as well as 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 Structures for User Interfaces: This course is intended for those with advanced programming skills who want to specialize in 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.




05-671 HCI Project I (12-unit second semester course)

05-672 HCI Project II (48-unit third semester course)

Experiential learning is a 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 second (spring) semester and continues full-time in the third (fall) semester after returning from a summer internship; it must be taken in consecutive spring and fall semesters. The course number for spring is 05-671 and for fall 05-672.

Please see the project pages for a list of previous projects and more information. Additionally, please see our brochure (PDF) describing the sponsorship process.




You may use the five elective courses to tailor the program to your individual interests and background. You may choose to broaden your experience by sampling courses from a variety of application or technology areas, or you may choose to concentrate on 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 (nine or twelve unit) course; two half-semester courses (six units each) count as one elective. These 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 Director of the Program, on a case-by-case basis for each student. Typically graduate courses and 300- and 400-level courses in many departments are eligible for consideration. Because the MHCI program provides an opportunity for students to expand their education into areas they may not have previously explored, it is possible that a few 200-level courses may be considered for students really broadening their horizons (e.g. a design major may want to take the sophomore-level Fundamentals of Computer Science, an intense 200-level course for CS majors; this 200-level course could be considered for approval given this student’s educational background). 100 level courses are typically considered to be non-appropriate.

For electives at CMU, search the schedule of courses at CMU. The electives at UMa are linked from the Schedule page. Availability of courses may change and selection of electives should be discussed with the program director.

Contact Us: / +351 291 721 006