There is no agreed upon definition of the range of topics which form the area of human-computer interaction. Yet we need a characterization of the field if we are to derive and develop educational materials for it. Therefore we offer a working definition that at least permits us to get down to the practical work of deciding what is to be taught:
Human-computer interaction is a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them.
From a computer science perspective, the focus is on interaction and specifically on interaction between one or more humans and one or more computational machines. The classical situation that comes to mind is a person using an interactive graphics program on a workstation. But it is clear that varying what is meant by interaction, human, and machine leads to a rich space of possible topics, some of which, while we might not wish to exclude them as part of human-computer interaction, we would, nevertheless, wish to identify as peripheral to its focus. Other topics we would wish to identify as more central.
Take the notion of machine. Instead of workstations, computers may be in the form of embedded computational machines, such as parts of spacecraft cockpits or microwave ovens. Because the techniques for designing these interfaces bear so much relationship to the techniques for designing workstations interfaces, they can be profitably treated together. But if we weaken the computational and interaction aspects more and treat the design of machines that are mechanical and passive, such as the design of a hammer, we are clearly on the margins, and generally the relationships between humans and hammers would not considered part of human-computer interaction. Such relationships clearly would be part of general human factors, which studies the human aspects of all designed devices, but not the mechanisms of these devices. Human-computer interaction, by contrast, studies both the mechanism side and the human side, but of a narrower class of devices.
Or consider what is meant by the notion human. If we allow the human to be a group of humans or an organization, we may consider interfaces for distributed systems, computer-aided communications between humans, or the nature of the work being cooperatively performed by means of the system. These are all generally regarded as important topics central within the sphere of human-computer interaction studies. If we go further down this path to consider job design from the point of view of the nature of the work and the nature of human satisfaction, then computers will only occasionally occur (when they are useful for these ends or when they interfere with these ends) and human-computer interaction is only one supporting area among others.
There are other disciplinary points of view that would place the focus of HCI differently than does computer science, just as the focus for a definition of the databases area would be different from a computer science vs. a business perspective. HCI in the large is an interdisciplinary area. It is emerging as a specialty concern within several disciplines, each with different emphases: computer science (application design and engineering of human interfaces), psychology (the application of theories of cognitive processes and the empirical analysis of user behavior), sociology and anthropology (interactions between technology, work, and organization), and industrial design (interactive products). In this report, we have adopted, as an ACM committee, an appropriate computer science point of view, although we have tried at the same time to consider human-computer interaction broadly enough that other disciplines could use our analysis and shift the focus appropriately. From a computer science perspective, other disciplines serve as supporting disciplines, much as physics serves as a supporting discipline for civil engineering, or as mechanical engineering serves as a supporting discipline for robotics. A lesson learned repeatedly by engineering disciplines is that design problems have a context, and that the overly narrow optimization of one part of a design can be rendered invalid by the broader context of the problem. Even from a direct computer science perspective, therefore, it is advantageous to frame the problem of human-computer interaction broadly enough so as to help students (and practitioners) avoid the classic pitfall of design divorced from the context of the problem.
To give a further rough characterization of human-computer interaction as a field, we list some of its special concerns: Human-computer interaction is concerned with the joint performance of tasks by humans and machines; the structure of communication between human and machine; human capabilities to use machines (including the learnability of interfaces); algorithms and programming of the interface itself; engineering concerns that arise in designing and building interfaces; the process of specification, design, and implementation of interfaces; and design trade-offs. Human-computer interaction thus has science, engineering, and design aspects.
Regardless of the definition chosen, HCI is clearly to be included as a part of computer science and is as much a part of computer science as it is a part of any other discipline. If, for example, one adopts Newell, Perlis, and Simon's (1967) classic definition of computer science as "the study of computers and the major phenomena that surround them," then the interaction of people and computers and the uses of computers are certainly parts of those phenomena. If, on the other hand, we take the recent ACM (Denning, et al., 1988) report's definition as "the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application," then those algorithmic processes clearly include interaction with users just as they include interaction with other computers over networks. The algorithms of computer graphics, for example, are just those algorithms that give certain experiences to the perceptual apparatus of the human. The design of many modern computer applications inescapably requires the design of some component of the system that interacts with a user. Moreover, this component typically represents more than half a system's lines of code. It is intrinsically necessary to understand how to decide on the functionality a system will have, how to bring this out to the user, how to build the system, how to test the design.
Because human-computer interaction studies a human and a machine in communication, it draws from supporting knowledge on both the machine and the human side. On the machine side, techniques in computer graphics, operating systems, programming languages, and development environments are relevant. On the human side, communication theory, graphic and industrial design disciplines, linguistics, social sciences, cognitive psychology, and human performance are relevant. And, of course, engineering and design methods are relevant.