Education & Computing 8 (1993) 295-301 Elsevier
295
Human-computer interaction in the Informatics curriculum Jenny Preece Computmg Department, Open Universtty, Milton Keynes, MK7 6A,4, UK
Abstract
Preece, J., Human-computer interaction in the Informatics curriculum, Education & Computing 8 (1993) 295-301. This paper argues that good human-computer interaction is an essential part of the design of modern computer systems. Consequently, umversity computingcourses must teach students the skills and knowledgenecessary to recognise and design systems which are safe, easy and enjoyable to learn and to use, as well as fulfilling the necessary functional requirements. A number of career profiles has already been identified (Mantei et al., 1991 and Preece, 1991) and these will be used as a basis for discussing the content and needs of the HCI curriculum.
1. Introduction Twenty years ago, computer system designers only had to cater for one of two types of users. One of these groups comprised a small number of highly educated, technical people who needed computers for scientific work and who were generally willing and able to learn almost as much about the systems that they used as the programmers who developed them. System developers did not need to worry about the difficulties of hum a n - c o m p u t e r interfaces. The pay-off of the computational power of the machine was sufficient motivation to ensure that they mastered the most nonintuitive types of interaction. Calculations that would take people days could be done in minutes. The other group of users were low-skilled data input personnel who worked in data processing departments. The tasks that these users had to perform were highly repetitive and, provided that each task was not too long or the sequence of key-presses too complex, users learnt the idiosyncrasies of the systems through the repetition of using it. Correspondence to: J. Preece, Computing Department, Open
University, Milton Keynes, MK7 6AA, UK.
The situation is now quite different. It is rare to find people in developed countries who do not come into contact with computers in some way or another. Consequently, whereas the design of the h u m a n - c o m p u t e r interface was unimportant in early days of computer usage, it is now one of the key features which determines the success of many systems. Good interfaces are particularly important in systems, such as office systems, which are used by a wide range of users who differ in experience and ability. In the discussion that follows there are two premises. The first premiss is that h u m a n - c o m puter interaction is now so important in computer system design and use that computer science courses must incorporate it in the curriculum. The second premiss is that the aim of university computer science courses is to provide a broad education which covers the main topics in computer science and which will provide a basis for people to work in the wide variety of jobs in which computers are an essential part and in the computer industry itself. As Winograd says: "'The vast majority of people we train in computer science (even those at the elite schools) will not go onto academic research, but will play a variety of roles in the invention, production, implemen-
0167-9287/93/$06.00 © 1993 - Elsevier Science Pubhshers B.V. All rights reserved
296
J. Preece / Human-computer interaction in the Informatlcs curriculum
tation and use of new computing devices. In this they need competence in design [ . . . ] " [1]. Most of this discussion, therefore, excludes doctoral research degrees, as only a few students follow this route. The remaining part of this paper defines the scope of h u m a n - c o m p u t e r interaction and then discusses the needs of six career profiles which require knowledge of computer science. Finally the paper discusses a number of factors which are important in implementing HCI courses in computer science degree programmes. Space does not permit a detailed discussion of the contents of different kinds of courses or how to teach particular topics.
2. W h a t is h u m a n - c o m p u t e r
interaction?
" H u m a n - c o m p u t e r interaction (HCI) is concerned with the design of computer systems which are safe, efficient, easy and enjoyable to use as well as being functional. Other names which are virtually synonymous with h u m a n - c o m p u t e r interaction include ' m a n - m a c h i n e interaction' (MMI) and 'user-system interaction' (USI)" [2]. Baecker and Buxton [3] define HCI as: "a set of processes, dialogues and actions through which a human user employs and interacts with a computer". The Curriculum Development group of the ACM [4] say that: " H u m a n - c o m p u t e r interaction is concerned with the design of interactive computing systems for human use and the study of major phenomena surrounding them". All of these definitions focus on the interaction between people and machines. However, whilst these definitions are concise and meaningful in their own right, they tend to simplify the complex multi-disciplinary nature of the subject. The multi-disciplinary nature of HCI, with its foundations in psychology and ergonomics and to a lesser extent, sociology and anthropology, as well as in computer science, means that there are different perspectives about what exactly constitutes HCI as a field of study. Not surprisingly, HCI taught within a psychology degree programme will tend to focus more heavily on psychological aspects and less on hardware and software aspects, whereas HCI in a computer science programme will have the opposite focus. Simi-
larly, there is an ergonomics perspective on HCI, a human sciences perspective and even a social science perspective. In this paper HCI will be seen from a computer science perspective.
3. T h e s c o p e o f H C I
Developing usable systems is the ultimate contribution of HCI to computer system design and it requires knowledge about: - who will use the system, - what it will be used for, - the work context and environment in which it will be used, - what is technically and logistically feasible, - how to design and develop systems which incorporate this information. A number of universities and polytechnics in Europe and North America now teach HCI as part of undergraduate a n d / o r postgraduate computer science degree programmes and some syllabuses have been published, [5,6]. However, a collective view of the scope of the subject would be useful and this is the concern of a number of newly formed working groups (e.g. a new working party of the British Computer Society [5] and the recently constituted international IFIP working group TC13.1 and the ACM SIGCHI working party). The most comprehensive view to date is that of ACM SIGCHI, which will be published shortly and has already formed the basis of a tutorial at the CHI '91 Conference [4]. The following five content areas were identified in this tutorial and they provide an overview of the general contents of most courses in HCI. (1) The nature of HCI: putting HCI within different viewpoints and theoretical frameworks. Example topics: what is HCI?, different perspectives of HCI and its multi-disciplinary nature, the historical development of HCI, why HCI is important. (2) Use and context of computers: fitting computers, uses and context of use together. Example topics: organisational aspects of computers in work and leisure environments, different types of applications, user support. (3) Human characteristics: understanding the human side of HCI. Example topics: cognitive psychology, ergonomics and associated legislation for health and safety, theories of communication
J. Preece / Human-computer mteractton m the Informattcs currlcuhmz
and language which help to explain human-computer interaction. (4) Computer system and interface architecture: moving information between humans and machines. Example topics: input and output devices, hardware and software characteristics (and particularly the limitations), dialogue styles and interaction techniques, role of metaphors, agents, look and feel, dialogue architectures (e.g. window managers) and standards, graphics. (5) Development process: the methodology and practice of interface design. Example topics: user-centred design philosophy, task analysis and requirements, specification techniques, prototyping, implementation, evaluation, design tools and environments, principles and guidelines. An example of a fuller list of the topics, which forms the curriculum for a postgraduate distance learning module developed by the UK Open University [7] is contained in the appendix at the end of this paper. The way that these topics are taught will depend on available resources, the knowledge and experience of the students and the lecturing staff, the level of the course and the career needs of the students.
4. Career profiles, computer science and HCI A valuable outcome of a workshop on "HCI Curriculum" at the INTERACT '90 Conference held in Cambridge, was the development of four generic profiles of HCI training needs [8]. This perspective varies both from that typical of higher education and that of industry. In higher education the focus tends to be on the academic credibility and viability of courses, whereas industry tends to look for short term commercial applicability. Characterisation of each of the four profiles focuses upon the nature and degree of competence required by individuals to do a particular type of job. The four categories that the working party identified are the following, taken from [8].
The researcher The researcher role was an individual who works on basic theory in the field. Individuals who fill this role have doctoral degrees and work at universities and in research (not research and development) laboratories in industry. They are
297
actively engaged in extending the knowledge of the field, publishing papers and conducting experiments. They must have a good first degree and a research doctorate.
The professionally oriented researcher The professionally oriented researcher was defined as someone who contributes scientific methods and knowledge to the field. This individual develops metrics and theories and understands and defines quality levels. Such a person may work as a university researcher or as a researcher at such institutions as British Telecom, Logica, Philips, Siemens, etc. A doctorate is usually essential to work in this area, but a Masters degree that is based on research is also possible. The professionally oriented researcher differs from the researcher in that the problems they work on have direct relevance to solving practical problems facing industry. He or she is like the electrical engineer conducting scientific investigations as opposed to the theoretical physicist building new theories of electricity and magnetism.
The research-oriented professional The research-oriented professional understands the theory and methods developed by the professionally oriented researcher and applies these methods to specific problems. Such an individual is trained to be able to understand and apply new methods as they are developed but does not develop the methodologies. Individuals in this category have a Masters degree in HCI. Such graduates would move into positions of directing usability laboratories or serving as the chief interface designer on a software project. They find employment is such places as software development laboratories for major computer vendors such as Apple, IBM and Hewlett Packard or user oriented information system groups.
The professional The professional in HCI applies the knowledge about science and the solutions from science but does not interpret the science or adapt new methods and theories from science. Such an individual works with existing standards for interface design and applies them to the development of a new product. Professionals work in software houses and on user development teams. The re-
298
J. Preece / Human-computer interaction m the Informatics curriculum
search-oriented professional is likely to select the appropriate guidelines to apply to a given interface design. In contrast, the professional is given the guidelines and works at applying them. Professionals may have Masters degrees in other areas and have taken courses in HCI or they may have a Masters degree in HCI. (A full report of the I N T E R A C T HCI workshop has been published in 'Interacting with Computers' [8]). Two profiles that need to be added to this set are the 'software generalist' and the 'aware manager' [8].
The software generalist The software generalist is someone who works for a small company and has to be "jack of all software trades". He or she will need a variety of skills, including those from HCI, as there are no in-house specialist to whom the software generalist can turn. These people may have a degree in computer in which HCI would form a valuable contribution. Alternatively, they may have developed software skills on the job and would benefit from an applied course in which their level of skill is recognised. The aware manager The aware manager may not have any knowledge of computing, psychology or ergonomics. His or her background may be in the arts and have an interest in HCI at the awareness level only. Short courses which describe the importance of HCI and provide a business case for it will be all that this group requires for high-level influence of those more directly involved with software development and management. University computer science undergraduate and masters degree programmes do not cater for this group; their needs are generally met by short specialist awareness courses lasting just a few days. The first five groups are of concern to those developing university computer science programmes. Furthermore, although it is important to provide the first group (the " p u r e " researchers) with a good foundation upon which to develop research skills doctoral study, the majority of students do not go on to be researchers. Most students leaving university fall into the categories of: professionally oriented researcher, research-oriented professional, professionals and
software generalists. The question that university computer scientists need to ask is "how can we develop and teach HCI so that the needs of these students are met?"
5. What is needed?
Developing good teaching and training courses in HCI depends upon a number of factors, namely:
Further evolution and growth of HCI into a more mature discipline This will be achieved with time but the problem is exacerbated by the multi-disciplinary nature of HCI [5], which causes diversity of opinion about what should constitute the curriculum. This is manifest more in terms of how particular processes such as design are carried out rather than in decisions about which topics should not be taught. Similarly, the background of researchers, practioners and teachers can have a strong influence on the perspective that is taken and recognition of the relative importance of different issues. Another problem facing those who teach HCI is that, like several areas of science, many important topics are still only research issues and at present lack a body of established knowledge. Consequently, developing a curriculum without strong biases can be difficult. Professional support and acknowledgement Professional studies need the support of their own organisations. However, support alone is not sufficient, HCI courses need the credential of being formally recognised as contributing to membership requirements. Acceptance and recognition of the role and importance of HCI knowledge and skills in industry and commerce (that is, demand) Applications for courses in HCI, conference attendance and collaborative projects between industry and higher education all testify that demand for HCI knowledge and skills is increasing. Skilled teachers and trainers Most people currently involved in HCI teaching and training have no formal training in this area themselves but this is not so unusual in
J. Preece / Human-computer interaction in the Informatics curriculum
computing. However, as the number of courses increases so does the pool of purposely trained people. Resources and support to develop approciate training p r o g r a m m e s a n d short courses
The provision of a focus for HCI curriculum development could have a major role in promoting some of the aspects just mentioned as well as in the development of good HCI courses per se. Knowledge, skills, experience and resources need to be shared.
6. Discussion and conclusions
A number of factors have been identified in the previous section which would help to establish HCI as a integral part of computer science teaching. Unfortunately, however, the field of HCI is regarded with scepticism by some academics. The multi-disciplinary nature of HCI means that staff and students alike must accept the need to acquire knowledge and skills from other paradigms of study. This can be problematic when trying to integrate it with computer science, where there is a preference for succinct and unambiguously notations. Although, considerable research effort is being directed towards the development of similar notations for representing the human aspects of system design but currently available techniques do not scale-up to meet real world demands. It is also important to appreciate that there are aspects which cannot be well defined in theories and neatly packaged and mastered through a series of progressively more difficult exercises. Requests from industry to provide universal guidelines for the development of good interfaces is another problem. Although many important principles can be generalised from system to system, user to user and task to task, the details cannot. Problems also arise from undervaluing the nature of HCI knowledge and skills. Some software designers fall into the trap which is best summarised by the comment that: "I am human, so if it works for me it will work for everybody". Similarly, it is important to go beyond the obvious and to pursue a deeper understanding of what people really do [1]. The newness of HCI as a discipline is tending
299
to result .in it being offered as a new course rather than being integrated with already existing courses. Exceptions occur where there is already a firm link with existing courses, such as artificial intelligence, knowledge engineering, expert systems and so on. Given that h u m a n - c o m p u t e r interaction is a feature of most computer systems this isolation is not desirable. It would be better to integrate HCI with other courses where ever feasible. Particularly, now that many industrial development teams recognise the benefits of a multi-disciplinary approach in which people with skills in industrial and cognitive psychology, design and management are included as well as software engineers, programmers and systems analysts. University education would benefit from a more multi-disciplinary approach in which courses are taught by a team of specialists. This, however, would undoubtedly result in more work for the staff concerned, and is unlikely to be popular with academics who are rewarded primarily according to research performance and not teaching.
Acknowledgements
Many of the ideas contained in this paper have been widely discussed and developed by the 1990 HCI Curriculum Workshop held at the INTERACT Conference in Cambridge, the HCI Curriculum Development Group of the ACM, the Human Systems Technical Committee of the British Computer Society and Open University HCI Course Team. Acknowledgement and thanks is given to the members of all of these groups.
Appendix. The contents of the eight units that make up the Open University 100 hour postgraduate module on HCI [7].
Everyone taking this module is expected to have either a degree in Computing and/or industrial experience. Unit 1: Introduction 1. What is HCI? Technologicalchange: different design needs The goals of HCI 2. Why HCI? The interface The emergence of HCI: computer interfaces and principles of interface
300
J. Preece / Human-computer interaction in the Informatics curriculum
The role and scope of HCI The importance of HCI 3. Components of HCI The contributors to HCI The interaction between factors Different perspectives on HCI 4. When and where to apply HCI System design HCI tools and practices in the design cycle Who needs to be involved? Unit 2: Input, output and communication styles 1. Introduction: communicating with computers Some characteristics of tasks Some characteristics of users 2. Input Types of input device Two approaches to analysis and selection of input devices Which device? Some conclusions 3. Output Visual output Sound output Speech output 4. Communication styles: dialogue and interactions Command languages and menus Natural language dialogue Questions and query languages Form-fills and spreadsheets Direct manipulation 5. Looking ahead Unit 3: Applied cognitive psychology 1. Introduction 2. Key areas of cognitive psychology relevant to HCI Visual perception Attentional constraints Human information processing Memory constraints 3. Applying cognitive psychology to interface design Prescriptive approaches Predictive approaches Empirical approaches 4. A practical application: screen design and graphic techniques Drawing and input devices Colour Coding Icons Wire-frame and solid modelling for C A D / C A M 5. Learning about and understanding computing systems Learning as an "active" process Understanding by "active" thinking "'Active" methods of teaching Learning through goal and plan knowledge Learning through analogy Learning from errors Learning a skill Unit 4: Knowledge and action: mental models in HCI 1. Introduction 2. Mental models Mental models and knowledge representation Users' models, design models and the system image
3.
4.
5.
6.
The influence of design on the user's mental model The nature of users' mental models Structural models An example: a stack calculator Problems with structural models Functional models Functional models and planning Planning and task analysis Distributed models Multiple models Knowledge and meta-knowledge The relationship between information flow and action The four basic steps of action The corresponding steps of information pick-up Errors and the theory of action Direct manipulation interfaces
Unit 5: Fundamentals of design 1. Introduction What is design? Principles of user-centred design 2. The design process Approaches to acquiring software The relationship between software engineering and HCI methods The HCI developmental cycle 3. Requirements for design Requirement analysis: functionality Requirement analysis: users and tasks Task analysis: macro to micro Usability testing 4. Frameworks for user interface design A layered approach: command language grammar (CLG) A nonlayered approach Specification 5. A design exercise Background information Your task Some feedback and suggestions Unit 6: Design: analysis and representation 1. Introduction 2. Analysing the user interface as an object of design Surface aspects The conceptual aspects 3. A top-down analysis: from users' tasks to dialogues Analysing the task level Analysing the semantic level Analysing the syntactic level Analysing the interaction level 4. Representing the user interface Task-action grammar (TAG) Extended task-action grammar (ETAG) The Heidelberg interface description method (HIDM) Unit 7: Evaluation 1. Introduction Where in the development cycle is evaluation appropriate? Why undertake evaluahon? A definition 2. Analytic evaluation methods A single layer model: the keystroke-level model Multi-layer models
J. Preece / Human-computer mteractton m the Informatlcs cumculum
3. Expert, observational and survey evaluation methods Expert evaluation methods Observational evaluation methods Survey evaluation methods 4. Experimental evaluation methods and experiments Planning an experimental evaluation Designing experiments Interpreting results 5. Which method? Differences between evaluation methods Criteria for selection Practical matters in selection 6. More thoughts about usabiliW testing Setting usability goals Usability specifications Contextual methods Unit 8: Design support 1. Introduction 2. Ideas support - guidelines Principles and rules A framework for classifying guidelines Other guideline classifications Evaluating guidelines An example of applying conflicting guidelines 3. Prototyping and prototyping tools Types of prototyping Prototyping with production tools Prototyping tools 4. Software support: from design to implementation The need for software support A brief history of software tooling The user interface and software tooling 5. Two design environments The pie chart example A typical design environment A well-tooled environment The bases of good software support 6. Incomplete and varied: the real world of user interface management tools Variety in media tools Variety in session tools Variety in linkage tools All the units also contain A summary at the end of each section Unit review at the end of the unit Suggested further reading References Solutions to self-assessment questions
301
Case studies are provided on video. Students do practical projects in which they evaluate and propose a redesign for a small system or part of a system with which they are familiar m their normal work.
References [1] T. Winograd, What can we teach about human-computer interaction?, CHI '90 Proceedings (1990) 443-449. [2] J. Preece et al., A Guide to Usabihty (Open Umversity, Milton Keynes, UK, 1990). [3] R.M. Baecker and W.A.S. Buxton, Readings m HumanComputer Interaction (Morgan Kaufmann, Los Altos, CA, 1987), p. 40. [4] J.B. Gasen, Designing curricula in human-computer interaction, Tutorial presented at CHI '91, New Orleans, LA, April 29 1991, No. 23. [5] J.J. Preece and L.S. Keller, Teaching the practitioners: developing a distance learning postgraduate HCI course, Interacting with Computers 3 (1) (1991) 92-118. [6] G. Perlman, User interface development, in: J.B. Gasen, ed., Designing curricula in Human-computer interaction, Tutorial presented at CHI '91, New Orleans, LA, April 29 1991, No. 23. [7] Open University, Human-Computer Interaction, PMT607, Milton Keynes, UK, 1990. [8] M. Mantei, T. Hewitt, K. Eason and J. Preece, Report on the INTERACT '90 workshop on education in HCI: Transcending disciplinary and national boundaries, Interacting with Computers 3 (1991) 232-240. [9] J.J. Preece, Human-Computer interaction: What about teaching and training?, Bull. Bnttsh Comput. Soc. (1991), to appear.
Jenny Preece is a senior lecturer at the Open Umversity. She was the Chairwoman of the postgraduate course on Human-Computer Interaction, which was produced collaboratively by the Bmish and Dutch Open Universities. She has also written a number of papers and edited a book on Human-Computer Interaction.