Course Description:
The focus of the course is on teaching design processes that help prospective engineers and researchers to improve the usability of
human-computer interfaces. This goal is accomplished by engaging students in the review of good and bad designs, teaching them how
to apply a systematic design process needed to improve human computer interaction, and providing opportunities for them to participate
in design teams that apply human factors principles. Course material will survey the field of HCI including interaction techniques
and styles, design methodologies, evaluation techniques, software development, and input/output devices. You will learn how to approach
problems from the user's point of view, how to study usability issues, and how to appropriately consider the strengths and limitations
of people into the design of interactive systems.
The primary learning activity of the course is a human-computer interface design project that will take you through an entire
interactive design process, from problem statement and requirements definition through system design, development and evaluation.
NOTE: Although the course, strictly speaking, is not a programming course, students will be requested to develop a prototype
system demonstration using HTML, or other software development tool. Students with coding skills may choose to apply Java script
and/or C++ components to their prototype demonstration.
Examples of past student lab projects: past projects
Goal: Develop a student's competencies in the design, development, and evaluation of human-computer interfaces.
Learning objectives:
- Recognize and describe human performance factors issues relevant to designing effective and usable human-computer interfaces.
- Describe how poor human interface design leads to operator error and tell how to improve design to reduce the chances of human error.
- Design a human-computer interface with an iterative, design/prototype/evaluate development process and apply specific design guidelines as part of this process.
- Evaluate and select appropriate interaction devices and information display formats to meet specific user and operational system requirements.
- Select appropriate human-computer action features and dialogue style for specific users and system requirements.
- Create a system demonstration prototype using HTML, Dreamweaver, or any other HTML editor and/or programming language (Java, C++). In class we will teach the elements of HTML programming to help you develop your group prototype user interface.
- Design an experimental setup to evaluate given user interface. Conduct a usability test with specific quantitative measures and qualitative subjective comments.
Topics (AY11, AY12 and AY13 schedule: 3 lectures + 2 lab classes / week):
- Overview of HCI - What it is and why we study it
- History of HCI
- Defining the Requirements
- Design Process and Methods
- UI Software Architecture
- Human Sensory System and Perceptual Modalities
- Displays: Visual, Auditory, Tactile, Force-feedback, Olfactory
- User Interface Input Devices (Interactive Devices)
- Human Interaction, Interactive Styles and Techniques
- GUIs and Design for the Web
- Evaluation and Usability
- Prototyping: Paper Prototyping and Computer Prototyping
- User Testing, Research Ethics and IRB
- Experimental Design
- Future UIs
Topics (AY14 schedule: 2 lectures + 1 lab class / week):
- Overview and History of HCI
- Defining the Requirements
- Design Process and Methods
- UI Software Architecture
- Prototyping
- Human Sensory System, Input and Output Devices
- Human Interaction, Interactive Styles and Techniques
- GUIs and Design for the Web
- Evaluation, Usability and User Testing
Course Format and Requirements:
All course materials will be available online on SAKAI. A heavy emphasis will be placed on your hands-on design work, which will
be accomplished by working with other students in small teams (up to 3 students) to design, develop and test a prototype
(proof-of concept) human-computer interface.
Students are expected to attend all classes and to participate fully as a team member in their individual design groups. The
instructor will provide lecture materials and encourage a high level of interaction with students regarding the subject material,
previous design work, and student experiences with human computer interfaces (the good, bad and ugly design examples). The
instructor will provide guidance (written instructions and consultations) on all individual assignments and for all team design
activities as needed. Students should never be reluctant to ask for guidance, assistance and clarification regarding course
materials, assignments, and student performance expectations and grading criteria.
Students must demonstrate an understanding of usability engineering, evaluation and design methods and a general knowledge of
human computer interaction design and software development principles over the duration of this course and project series. Assessment
of student performance will be completed through a combination of quizzes, round table discussion sessions, paper discussion sessions,
and relative contribution to the team prototype design and evaluation process.
Attendance: Attendance for this class is mandatory due to the highly interactive nature of the content. You cannot participate
in discussions if you are not here. Routinely missing class can and will cause your grade to slip. Inform the instructor when
you have to be absent.
Class Participation (20%): interaction during class lectures, paper discussion sessions and round table class discussions.
We expect this to be a highly interactive class. We will not learn much if this becomes purely a lecture course. As you will soon
learn, there are very few absolutes in user-interface design. It is imperative that we keep an open mind about what "good" design
really is, how we can identify and achieve it, making sure the design and user requirements have been met. We expect lively
dialogue in class. Speaking in class at least once per week is expected as average participation.
- Interactions during class lectures: The instructor will initiate discussions on given topics during the lecture time.
Each student is strongly encouraged to actively engage in class discussion - this is the best time to ask questions that you
have and to seek answers to all topics and issues that are not clear to you.
- Paper discussion session: Three (3) paper discussion sessions will provide the opportunity to learn how to understand
and critique research papers. Ultimately, this should also equip you with the skills that would help you write your own research
papers and ultimately your thesis.
** A template of usual questions and issues one should consider when evaluating a research paper is provided in a separate document.
- Round table class discussions: Two (2) discussion classes have been designed around selected topics. All students will
coordinate their work in pre-selected groups - each group will research, select, present and discuss their input with other
colleagues in the class (slot for each group will be 10 min long). We aim to accomplish two objectives: firstly this class is the
opportunity for everyone to make a critical connection between the material elaborated in the class lectures and material you
find in resources provided to you and one the web, and secondly it offers you a chance to add the supplementary material that
you find while researching the topics yourself. The instructor will coordinate everyone's input and the debate.
** Recommendations on how to provide best contribution for class discussion are provided in a separate document.
Group Project (40%): You will form project groups of up to three (3) students each. You will stay in these groups for the
entire project set. The project set takes us through a full iteration of the design-prototype-analyze cycle. There is one individual
and three group projects that will be graded.
Selected Subject Matter Quizzes (40%): All students will complete 3 quizzes; each quiz will cover one segment of the lecture material presented in our classes.