This document was adapted from Section 2 of the ACM SIGCHI Curricula for HCI, ACM Press, 1992.
Human-computer interaction (HCI) is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use, and with the study of the major phenomena surrounding them. From a computer science perspective, the focus is on the interaction and specifically on interaction between one or more humans and one or more computational machines. This implies far more than a human sitting in front of a terminal.
Take the notion of machine. It is more than a workstation. Computers may be in the form of embedded computational machines, such as parts of spacecraft cockpits or microwave ovens; or specialized boxes, such as nintendo games; or systems that envelope the userís senses, such as virtual environments. And we should expect radical effects on interface styles from future machine developments, such as miniaturization, portability, high-bandwidth wireless communication, ubiquity, multimedia, flexible large screens, and projected displays.
And what about humans? As a computer scientist, you may thing that people who interact with computers are motivated, have reasonable computer knowledge, and are willing to overlook shortcomings in the interface (consider Unix!). But computer users are far broader than that. They range from children to the elderly; computer aficionados to computer despisers; frequent users to hesitant users; big hulking teenagers to people with special needs. And in spite of the incredible talents of people, we have many limitations that the interface designer must take into acccount. Our memory is terrible; our attention and motivation wanders; we are inaccurate in math; we are easily fooled by visual and audio perception tricks; we learn slowly; we get tired and impatient; we have restricted motor skills. Computer scientists often worry about machine failure; isnít it time we consider the human-computer system as a whole, and realize that the avoidance of human failure is important to overall system integrity? Consider another perspective on the human role in the interface. If we allow the human to be a group of humans or an organization, we may consider interfaces for geographically distributed human environments, computer-aided communications between humans, or the nature of the work being cooperatively performed by means of the system.
Now to the interface. So far, most of our best interfaces handle fairly easy problems, such as word processing and graphical illustration. When we start moving to complex systems, such as management of very large information spaces or air traffic control, we are still babes in the woods. The problem is made worse by having to look at these complex worlds through a small box on a desk, and to interact with those worlds through keyboards and mice. Talk about low bandwidth! Here is another point. We generally think that an interface is the window through which a human interacts with some application on the computer. Real life doesnít work like that. An office worker, for example, has a broad range of tasks that has to be handled, and only part of that is on the computer. There are both paper and electronic documents; telephone messages and electronic mail; daytimers and electronic calendars. These distinctions are all technical in nature; it is a real hindrance to typical users to have some of their work outside the computer, and other parts inside. Interface design must look at ways to assimilate the two. While a few novel technologies have started addressing this, we have a long way to go.
There are clearly many aspects to HCI. The rest of this document provides a taxonomy that maps the current ìstate of the artî of HCI research area that is worth knowing. There are four main topics, described in detail in the following sections and illustrated by the figure.
To know all these points means knowing many disciplines: computer science, psychology, sociology, graphics design, management information systems, linguistics, electrical engineering, industrial design, and so on. Out of necessity, courses must take a particular perspective on HCI.
This course takes the point of view of teaching students the
fundamentals of designing, evaluating, and implementing modern
interfaces. It complements your knowledge of building software
projects by stressing practical software development concepts,
and by teaching you how to build ìbetterî interfaces. Exercises
will require you to work on design, implementation, and practical
evaluation. The course will thus emphasize topics 3 and 4.
Because this is only a small slice of HCI, you should study this
taxonomy to situate yourself in the field and to know the other
The uses to which computers are put are spoken of as ëapplicationsí in the computer world. These uses and the extent to which the interface (and the application logic in the rest of the system) fits them can have a profound impact on every part of the interface and its success. Moreover, the general social, work and business context may be important. In addition to technical requirements, an interface may have to satisfy quality-of-work-life goals of a labor union or meet legal constraints on ìlook and feelî or position the image of a company in a certain market. The following topics are concerned with general problems of fitting computers, uses, and context of use together.
1a) Social organization and work. Humans are interacting social beings. We must be concerned with the nature of work, and with the notion that human systems and technical systems mutually adapt to each other and must be considered as a whole.
1b) Application areas. There are classes of application domains and particular application areas where characteristic interfaces have developed.
1c) Human-machine fit and adaptation. Part of the purpose of design is to arrange a fit between the designed object and its use. Adjustments to fit can be made (1) either at design time or at time of use (2) by either changing the system or the user and (3) changes can be made by either the users themselves or, sometimes, by the system.
Because people are a component of the human-computer system, it is important to understand how we process information, how we structure our actions, how we communicate between ourselves and our artifacts, and our physical and psychological requirements
2a) Human information processing. People can be scene as processors of information, where input comes in through various channels, is interpreted in our brain, and results in some output.
2b) Language, communication, and interaction. Language and communication is so natural to us that we rarely think about it. When we try to form a language between ourselves and computers, we realize the complexity and difficulty of this area.
2c) Ergonomics. Anthropomorphic and physiological characteristics of people can be related and applied to workspace and environmental parameters.
Machines have specialized components for interacting with humans. Some of these components are basically transducers for moving information physically between human and machine. Others have to do with the control structure and representation of aspects of the interaction.
3a) Input and Output Devices. Devices must be constructed for mediating between humans and machines.
3b) Dialogue techniques. The basic software architecture and techniques for human computer interaction.
3c) Dialogue Genre. The conceptual uses to which the technical means are put. Such concepts arise in any media discipline such as film and graphical design.
3d) Computer Graphics. Basic concepts from graphics that are especially useful to HCI.
3e) Dialogue architecture. Software architectures and standards for interfaces
The construction of interfaces is both a matter of design and engineering. There are a variety of methodologies and practices of interface design. The development process also includes the relationship of interface development to the engineering (both software and hardware) of the rest of the system.
4a) Design approaches. The process of design has evolved from ideas from many design disciplines
4b) Implementation techniques and tool. Tactics and tools for implementing interfaces.
4c) Evaluation techniques. Philosophy and specific methods of evaluation.