Saturday, December 30, 2006

Berkshire Encyclopedia of Human-Computer Interaction

The Berkshire Encyclopedia of Human-Computer Interaction is the first reference resource designed to meet the needs of researchers and scientists as well as students, business and marketing professionals, and interested non-experts. The encyclopedia is an essential resource for computer science, information science, psychology, sociology, and environmental design. It allows the reader to explore what's going on inside leading research labs and technology corporations, enabling us to understand the products and processes shaping the world we live in. Expert-written articles are accompanied by lively sidebars and a popular culture database of more than 300 novels, television shows, and movies.

Human-Computer Interaction - known as HCI - is a fast-growing field that draws upon several branches of social, behavioral, and information science, as well as medicine, computer science, and electrical engineering. It is the study of how we communicate with - and through - computers, robots, information systems, and the Internet.

The two-volume Berkshire Encyclopedia of Human-Computer Interaction, edited by William Bainbridge, deputy director of the National Science Foundation’s Division of Information and Intelligent Systems, contains 190 articles (totaling 550,000 words) written by 175 contributors, including Jose-Marie Griffiths, Judith S. Olson, Gary M. Olson, John M. Carroll, Dagobert Soergel, Carol Tenopir, Barry Wellman, and other eminent figures in the field of HCI.

What the Experts Say about The Berkshire Encyclopedia of Human-Computer Interaction


"An invaluable resource for students and professionals, a reference book about the world in which we all live and work--and we will live and work better for having it at our elbow."
-Paul Duguid, co-author with John Seely Brown of The Social Life of Information

"From collaboration editors to cyborgs, I never knew there was so much to know about human-computer interfaces...and I've written about this stuff! The accessible layout should also make it easy to interface with this breadth of information."
-Mark Fischetti co-author of Weaving the Web and contributing editor, Scientific American

"Building a high-tech startup requires information, particularly for the business planning and intellectual property development. This encyclopedia set saved me hours of research and 'Googling'."
-Jason Barkeloo, President, TouchSmart Publishing, LLC

Reviews of The Berkshire Encyclopedia of Human-Computer Interaction

"The Berkshire Encyclopedia of Human-Computer Interaction is the first encyclopedia solely dedicated to the topic.... The entries provide highly readable general overviews and useful bibliographies.... Authoritative overviews of wide-ranging topics, gathered in one convenient resource, will appeal to general readers. Recommended for public libraries and undergraduate collections."
-Library Journal

"Works like the [groundbreaking] Berkshire Encyclopedia of Human-Computer Interaction play a valuable role in lending definition to emerging, interdisciplinary fields of study. The articles are scholarly and informed, while at the same time, accessible.... With interest in this field predicted to grow, both public and academic libraries will want to give this encyclopedia serious consideration."
-Against the Grain

"This encyclopedia, edited by the deputy director of the National Science Foundation's Division of Information and Intelligent Systems, compiles 186 articles on the maturing field of human-computer interaction (HCI).... Figures, tables, and photos are clear and aid understanding.... This resource provides unique content not found in conventional encyclopedias on computers.... It should be useful in academic and larger public libraries."
-Booklist

"This rich two-volume reference presents the history and current state of research for a broad range of topics. Written by experts in the field, the articles are lengthy; but the content is directed toward educated general readers and will be useful to undergraduate students. The broad themes of methods, challenges, interfaces, components, breakthroughs, and approaches are addressed in articles on such topics as avatars, browsers, data mining [and more]. Each article concludes with a list of references. Appendices comprise a bibliography, a glossary, and a list of books, movies, and other popular media representations of HCI."
-SciTech Book News

Teaching Human Computer Interaction to Programmers

Many computer science graduates will likely find themselves developing interfaces in a work culture that has only naive notions of usability engineering. This article describes a course I developed that prepares students for this eventuality by providing them with practical and applicable HCI skills. All course material is available on the world wide web, and pointers are provided.

The Challenge

A recent phenomena in the computer industry is the expectation that everyday programmers, such as those working in small firms producing in-house software, will design good interfaces as well as good code. Unfortunately most programmers are sadly unprepared for this job. Their traditional computer science training rarely included HCI, either because courses were unavailable in their educational program, or because such a course was considered esoteric and for specialists.

This, of course, is changing. Because of job demands, many computer science students now consider HCI a core skill as marketable as (say) databases and networking, and HCI courses are becoming well attended. At the University of Calgary, for example, the department has offered an undergraduate HCI course since 1981, but it is only recently that it has grown from a `specialist' course with 30-40 students, to a heavily attended mainstream course with 100 students (i.e., about three-quarters of all computer science majors).

The question that I face as an educator is how to fashion computer scientists into HCI practitioners with appropriate background and skills. Because Alberta has a large oil and gas industry with fairly traditional data processing departments, I expect most students will work in groups where the term "HCI" is unknown, or at best that their managers would have fairly naive notions of what "good" interface design is all about (e.g., that interface design is knowing how to program Visual Basic). I would not only have to teach students fundamental HCI principles and foundations, but would have to give them skills that they could use in a work environment unfamiliar with the idea of usability engineering (Nielsen, 1993).

While the ACM SIGCHI Curriculum is an obvious source and inspiration to HCI educators (Hewett et al., 1992), I found that I could not use it directly. The document is at its best when considering how HCI can be integrated in a curriculum that would produce HCI specialists. In our department, HCI is a single course, and it is unlikely that a curriculum redesign would be well received by other faculty.

The Course

The course that I offer to students is neither perfect nor complete, and I do not expect all educators to agree with my approach. However, many of my students do seem to become reasonably adept at applying their learning to practical situations.
Students

Students are typically undergraduates pursuing a computer science major at the University of Calgary, and are usually in the third or last year of the degree program. They already have basic computer science skills (programming, data structures, software engineering), but only a few will have taken introductory psychology or statistics courses as an options. Most take the course because they see it as a marketable skill, and few would say they are pursuing a career as an interface designer.


Purpose

The course presents HCI as a usability engineering process that integrates the design, implementation and evaluation of interfaces (Figure 1). The bottom line is that students should have sufficient skills to design, implement, and evaluate reasonable interfaces in real life work environments, even when they may not have a good budget or time allowance or managerial support to do so.

On completion of the course, students will understand what is meant by good design, and will have experienced designing systems that are usable by people. Students will know contemporary techniques for implementing interfaces, and will have applied these to building applications through paper prototypes and graphical user interface toolkits. Students will also know and have practiced a variety of simple methods for evaluating the quality of an interface.
Structure

The course unfolds by examining design, implementation, and evaluation as a continual, integrated, and iterative process. Theoretical class lectures are augmented by case studies of interface successes and failures; students are expected to provide examples of problems they have had with computers and contribute to class discussion. Students will also apply the theoretical knowledge learnt to series of assignments that brings them through an entire design, implementation, and evaluation cycle. The major topics is as follows:

Introduction to Human-computer interaction

Abstract:

Human-computer interaction in the large is an interdisciplinary area which attracts researchers, educators, and practioners from many differenf fields. Human-computer interaction studies a human and a machine in communication, it draws from supporting knowledge on both the machine and the human side. This paper is related to the human side of human-computer interaction and focuses on animations. The growing use of animation in Web pages testifies to the increasing ease with which such multimedia features can be created. This trend shows a commitment to animation that is often unmatched by the skill of the implementers. The paper presents a set of guidelines and tips to help designers prepare better and more effective Web sites. These guidelines are drawn from an extensive literature survey.

1. Introduction

Human-computer interaction (HCI) is known as an interdiciplinary area which attracts researchers, educators, and practioners from many differenf fields.There is currently no agreed upon definition of the range of topics which form the area of human-computer interaction. However, it is a discipline concerened with the design, evaluation and implementation of interactive computing systems for human use and with study of major phenomena surrounding them1.

Human-computer interaction in the large is an interdisciplinary area. It is emerging as a specialty concern within several disciplines such as computer science, psychology, sociology and anthropology, and industrial design. So, 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.

This paper is related to the human side of human-computer interaction and focuses on animations. The paper presents a set of guidelines and tips to help designers prepare better and more effective web sites. These guidelines are drawn from an extensive literature survey coloured by personal experience.

2. Background

Animations have long been promoted as an even more compelling way to educate users by showing the dynamics of user interface actions. However, the research results have often surprised and frustrated the promoters of animations, since it is rare to find measurable benefits for users of animations2. User satisfaction with animations is usually high, but animations appear to distract users from concentrating on key issues3.

A recent review covered research on computer animation in education, human-computer interaction and psychology4. These authors concluded that computer animation is not a panacea, but it can improve users’ performance and attitude under certain circumstances. They summarized five factors that could influence the effectiveness of animation: the content to be animated, the level of interactivity, objective of animation, design of animated interface, and individual differences.

Haas and al. (2005) compared text, graphic and animation to provide meanings of statistical terms. There was little difference among formats in the effectiveness of presentations. User preferences varied but results suggest that the type of terms being explained made a difference, animations being more useful when there is an action or process.

Human Computer Interaction

Human Computer Interaction (HCI) lies at the heart of imagining the future of interactive systems and making sure they are useful and usable when developed. From its original focus on usability engineering methods, HCI has evolved into a vibrant multidisciplinary area of research and practice. Research in HCI has become a key driver in understanding how people, work practices, business value, and technologies interact. Some of our highlighted research includes:

BlueSpace: BlueSpace is a next-generation prototype workspace with the goal of increasing knowledge workers' productivity by deterring unwanted interruptions and improving team awareness and communications. It also provides users with greater control over their environment by allowing them to personalize their environmental settings. There are several cornerstone technologies and applications that BlueSpace utilizes to achieve these goals. One of these is the myTeam application which combines sensor data with user input to provide availability awareness to registered team members. Another is the Everywhere Displays projector that creates interactive displays on walls and tables, allowing users to quickly reconfigure their workspace to support working with colleagues.

Community Research: Our community research program explores how emerging technologies may provide new business opportunities for IBM products, in support of workplace communities for communities of practice and geographical communities. We have also performed detailed analyses of the business costs and opportunities of communities of practice.

Reinventing Email (ReMail): Electronic mail is the most widely used business productivity application. Though email usage has changed, our email clients largely have not. People are increasingly frustrated by their email, overwhelmed by the volume, losing important items, and feeling pressure to respond quickly. The ReMail project investigates how people use email and how we might design and build better email systems.

The MoMail project reinvents mobile email to support the way users really work with email. A key design approach in MoMail is to enable users to perform most email management functions directly within the inbox screen. This is accomplished through gestural menus, thread highlighting, and one-liner previews.

Loops is a web-based "persistent chat" system that allows members of a distributed workgroup to collaborate synchronously and asynchronously, with participants being able to see who is (or was) present and what has happened recently. Loops (and its predecessor, Babble) makes use of social proxies, minimalist graphical visualizations of the presence and activities of people participating in a Loop.

Research for Consulting and Services Businesses: Historically, IBM Research has focused its efforts on science and engineering relevant to the hardware and software businesses, such as physics related to magnetic storage and computational theory related to encryption algorithms. With the growth of IGS, we now have the opportunity to direct research toward IBM's consulting business.

ReachOut: ReachOut is a methodology and a chat-based tool for peer support and community building. It offers new methods for handling such problems as locating, selecting, and approaching the right set of potential advisors. ReachOut bridges the gap between newsgroups and real time synchronous chats. It takes the best of both options, and adds push technology to portray new, by-topic awareness and mid-level persistency.

Web Accessibility: Despite accessibility standards for the web, many pages remain difficult to use. This project investigates a method of making web pages accessible without requiring the use of assistive technologies. A standard browser, provides the ability for users to access web pages reformatted in the manner most usable by them.

IBM is a leading center for human-computer interaction (HCI). From the development of enabling technologies, such as speech recognition, to cutting-edge interaction design, IBM's HCI research spans more than a quarter of a century. Drawing on such disciplines as anthropology, computer science, psychology, and sociology, as well as visual and industrial design, HCI work is carried out in contexts ranging from laboratories to on-site collaborations with customers.

Human Computer Interaction Group

The Human-Computer Interaction Group was founded in 1984 to pursue research into the design and evaluation of interactive systems. The group has a unique interdisciplinary approach which integrates rigorous formal methods from the latest software engineering research, with theories of perception, learning and error, developed within cognitive and social psychology, sociology and linguistics. The group's concern is not just with the usability of computers for the single user in isolation but also usability in the context of users' tasks and communities, as well as for groups of collaborating users, and for users with special needs, such as disabled users and operators of safety-critical systems. Much of our recent research is concerned with the user experience particularly for users of domestic technologies such as mobile phones or internet shopping.

The people

The group (see the list of members, or the list of previous members) consists primarily of researchers from the Computer Science, Electronics and Psychology Departments. Several of our members are associated with the Centre for Usable Home Technology (CUHTec).

The group is involved in funded research from: the EU (through the TMR programme), the EPSRC, Joseph Rowntree Foundation and Microsoft Research labs. Active collaboration spans Europe and involves groups in Pisa, Toulouse, Cork, Paderborn, Riso, Liege, Glasgow, Lancaster, Edinburgh, Newcastle, and City University (London). The group also has strong connections with the British HCI Group.

From time to time there will be job opportunities within the group for researchers of all levels

The research

Interaction Analysis and Human Error Tolerance

How can we analyse systems in order to draw useful conclusions about user performance? If human error is unavoidable, how can we best minimise its consequences in safety-critical systems?

Multimodal Interfaces

We are exploring alternative interactive modalities such as sound and gesture. This is particularly in the context of interfaces for users with disabilities.

Communication

When does it help to see a video image of the face of the person one is talking to? What other images can we provide?

Home Technologies

We are researching usability, enjoyability and dependability issues in computing and communication products used in the home.

Top Research Laboratories in Human-Computer Interaction

Summary:

A core group of elite corporate research labs (and a few universities) defined the field of human-computer interaction and established much of whatever ease of use we now enjoy. With big labs disappearing, the future of HCI research is in jeopardy.

Web design and usability are subsets of the greater discipline of human-computer interaction (HCI). Dating back to Vannevar Bush's description of hypertext in 1945, Doug Engelbart's invention of the mouse in 1964, and many other early projects, HCI has a rich history of research that has defined the way we interact with technology today.

Even though good HCI research occurs at hundreds of worldwide locations, a few research labs have defined the field and nurtured the most important work. Here's my list of the best.

The Dawn of Time: 1945-1979

Gold: Stanford Research Institute (SRI)
Silver: Xerox PARC
Bronze: Bell Laboratories

The 1980s

Gold: Xerox PARC
Silver: IBM T.J. Watson Research Center, Yorktown Heights
Bronze: MIT Media Lab

The 1990s

Gold: Bell Communications Research (Bellcore)
Silver: Apple Computer Advanced Technology Group
Bronze: Xerox PARC

A First Look: 2000-2010

It's early yet to truly evaluate research labs' contribution to this decade, so check back in 2010 for the final score. Currently, my assessment of the best HCI research labs is:

Gold: Microsoft Research
Silver: Xerox PARC
Bronze: Carnegie Mellon University

Making the List: Criteria

These lists obviously reflect my preferences as to what constitutes important research topics. I tend to place more weight on fundamental advances in two areas: understanding how people use technology and understanding the best methods for designing for humans (both of which were emphasized by the Bell system and the old IBM research group). I place less weight on demonstrations of new interface gadgets (as emphasized by the Media Lab, Apple, and Microsoft).

Long-Term Trend: The Fall of the Good

What do these lists of best HCI labs through history tell us? First, that Xerox PARC has been really good. It is the only lab to make the list every decade.

Unfortunately, the second and more striking conclusion is that the list highlights the rise and fall of the mighty. Very few labs that dominated during the 20th Century have any kind of prominence in HCI today. Also, besides Xerox, only the Bell system made the list more than once.

I certainly don't think that companies go downhill because they fund good user interface research. However, there might be a tendency for companies to reach the top of the HCI field when they've already peaked. Unfortunately, HCI has rarely been the first priority of new research organizations, so by the time research managers recognize the need for it and build up a world-class HCI team, it's often too late.

The Future of Corporate Research

It's striking that only two of the 12 research medals went to universities. I think this is because university departments seem to view the best HCI research as both too mundane and too resource intensive. Many academics disdain research topics that are closely connected to real-world needs. For proof, look no further than the appalling lack of Web usability research. There are more papers on unworkable, esoteric 3-D browsers than on how hundreds of millions of people use the biggest real-time collaborative system ever built.

Although HCI research can be conducted on a small budget, most of the best projects do require the lavish resources that leading corporate labs have historically provided. Now, however, the future of the field is in dire straits because there are almost no big-budget labs left. Will it be worth making a best-of list for 2010-2020? One can only hope.

Friday, December 29, 2006

Human-Computer Interaction

Human-Computer Interaction (or Computer-Human Interaction, the two are terms are effectively interchangeable) is the academic discipline that studies how people interact with computers. It builds on and complements parts of two other academic disciplines:

Cognitive Psychology studies the mental processes behind human behavior. That includes such things as perception, learning, accessing information, memory, and problem soliving. Each of these mental processes is a factor in computer use.

Human Factors (or Ergonomics) studies how the design of products affects people. It builds on cognitive psychology and complements this body of knowledge with ergonomics -- the study of human capabilities and limitations vis-a-vis tool use -- and anthropometry -- the study of human body measurements.

Most of the academic work in UI Design is done under the label of HCI, and one of its professional organizations -- ACM SIGCHI -- is probably the most influential forum on user interface design. Many professionals in UI Design, however, have degrees in Cognitive Psychology and Human Factors.

A number of HCI specialists focus on interaction design. This perspective is of particular importance on this site. I like the explanation of what this means by Theodor Holm Nelson (Laurel, 1990, p. 243):

Leaning to program has no more to do with designing interactive software than learning to touch-type has to do with writing poetry. The design of interactivity is scarcely taught in programming school. What we need in software is what people are taught in film school, at least to whatever degree it can be taught. Designing for the little screen on the desktop has the most in common with designing for the Big Screen.

What's the difference between interaction design and user interface design? There's no firm consensus on boundaries in the industry, but consider this clarification from Cooper Software Design's description of their services:

Interaction design answers the question "how should this product work?" It tells us how the elements of the product work together in order to both make its functioning clear and enable the user to undertake her most important tasks easily.

Interface design answers the question "how should this product present itself?" It tells us how the product should look in order maximize readability for the user, and includes the aesthetics of the product.

Interaction design seems to me to have enormous applicability in information design, too.

Human-Computer Interaction and Your Site

Ever wondered what makes some Websites easier to use than others, or why some people seem to master new navigation systems quickly while others struggle to learn? Do you know why users get lost in electronic space or find it difficult to communicate with others through the medium of technology? These questions are just some of the driving forces behind research in the developing field of Human Computer Interaction.

Human Computer Interaction is a term that you may or may not have heard. So let's explore what it is, and what role it can play in your Website development.

A Definition

Human Computer Interaction, or HCI, is the study, planning, and design of what happens when you and a computer work together. As its name implies, HCI consists of three parts: the user, the computer itself, and the ways they work together.

The User

When we talk about HCI, we don't necessarily imagine a single user with a desktop computer. By "user", we may mean an individual user, a group of users working together, or maybe even a series of users in an organisation, each involved with some part of the job or development. The user is whoever is trying to get the job done using the technology. An appreciation of the way people's sensory systems (sight, hearing, touch) relay information is vital to designing a first-class product. For example, display layouts should accommodate the fact that people can be sidetracked by the smallest movement in the outer (peripheral) part of their visual fields, so only important areas should be specified by moving or blinking visuals. And of course, people like designs that grab their attention. Designers must decide how to make products attractive without distracting users from their tasks.

The Computer

When we talk about the computer, we're referring to any technology ranging from desktop computers, to large scale computer systems -- even a process control system or an embedded system could be classed as the computer. For example, if we were discussing the design of a Website, then the Website itself would be referred to as "the computer".

The Interaction

There are obvious differences between humans and machines. In spite of these, HCI attempts to ensure that they both get on with each other and interact successfully. In order to achieve a usable Website, you need to apply what you know about humans and computers, and consult with likely users throughout the design process. You need to find a reasonable balance between what can be done within the schedule and budget, and what would be ideal for your users.
The Goals of HCI

The goals of HCI are to produce usable and safe systems, as well as functional systems. In order to produce computer systems with good usability, developers must attempt to:

1. understand the factors that determine how people use technology

2. develop tools and techniques to enable building suitable systems

3. achieve efficient, effective, and safe interaction

Underlying the whole theme of HCI is the belief that people using a computer system should come first. Their needs, capabilities and preferences for conducting various tasks should direct developers in the way that they design systems. People should not have to change the way that they use a system in order to fit in with it. Instead, the system should be designed to match their requirements.

The same goals can be applied to Website development. Websites should be usable and safe, as well as functional, so that users can perform the task at hand without any obvious problems or usability errors.

Basic Principles of HCI

1. Requirements Analysis

  • Establish the goals for the Website from the standpoint of the user and the business.
  • Agree on the users' needs and aim for usability requirements.
  • Appraise existing versions of the Website (if any).
  • Carry out an analysis of the competition.
  • Complete discussions with potential users and questionnaires.

2. Conceptual Proposal

  • Outline site design and architecture at an abstract level.
  • Perform a task analysis to identify essential features.

3. Prototyping

  • Create visual representations (mock ups) or interactive representations (prototypes) of the Website.
  • Evaluate usability using a proven method.
  • Using the results, create more mock ups or improve the prototypes.
  • Repeat this process until the design and usability goals are met.

4. Development

  • Create the final product.
  • Evaluate functionality through testing, quality assurance, usability testing, and field testing.
  • Use the evaluation results to improve the product.
  • Repeat this process until the business goals are met.

5. Launch and Housekeeping

  • Launch the Website.
  • Maintain and tweak with user feedback (housekeeping).
  • Use the feedback to create new requirements, and begin major design improvements (system iteration).

The Importance of HCI in Website Development

The importance of HCI in the future of Website development is not to be taken lightly. It has been shown that a large percentage of the design and programming effort of projects go into the actual Website design. The interface is a fundamental part of making the site more successful, safe, useful, functional and, in the long run, more pleasurable for the user.

The tools and techniques that have been developed in this field have contributed immensely towards decreasing costs and increasing productivity. Savings have been created through decreased task time, fewer user errors, greatly reduced user disruption, reduced burden on support staff, the elimination of training, and avoidance of changes in maintenance and redesign costs. Studies have shown that, by estimating all the costs associated with usability engineering, the benefits can amount to 5000 times the project's cost. HCI is a Web imperative now, and it'll continue to be so in future.

Thursday, December 28, 2006

Aims and Objectives of Human-Computer Interaction

Aims

It is difficult to identify any areas of business endeavour that have not been materially impacted by computer innovation. In past decades, when computers were 'new,' there seemed to be a prevailing attitude that business information systems were constructed to exploit the characteristics of computer innovation, and that users would adapt themselves to the technology. Therefore, most efforts to improve user acceptance and increase individual and organisational productivity focused on promoting computer literacy. But, the lack of success of many systems is now forcing developers to recognise that no matter how technically proficient a new computer-based system might be, it will not be effective if users will not use it, or use it to its fullest capacity.

Human-Computer Interaction (H-CI) is an area of endeavour, developed in response to the need to promote user acceptance. H-CI attempts to improve user acceptance by examining how people perform work tasks in real-life settings, their attitudes and perceptions, and by incorporating material aspects into system design, especially physical interface design (ergonomics) and software (graphical) user interface design. To borrow a thought from Elaine Weiss (1993), that while there is no dispute over the necessity to make users more computer literate, it is also highly desirable to make computers more people literate. Specifically, in this subject, our aim is to do just that - work to make computers more people literate!

This subject provides students with a series of lectures, tutorial exercises and assignments designed to provide them with opportunities to explore basic Human-Computer Interaction (H-CI) concepts.

Objectives

  • Examine the foundations of H-CI; the human, the computer and the interaction between the two
  • Review the H-CI design process through an examination and application of models related to users, user tasks, information and systems
  • Investigate the tools and processes surrounding the development and implementation of H-CI focused systems, such as common computer platforms and management science tools, implementation and testing procedures and user documentation
At the end of the subject, successful students should have acquired an understanding of the basic concepts and their application to system analysis and design. Students should also have gained an appreciation of H-CI from the user's perspective

Human–computer interaction and their goals

Human–computer interaction (HCI), alternatively man-machine interaction (MMI) or computer–human interaction (CHI), is the study of interaction between people (users) and computers. It is an interdisciplinary subject, relating computer science with many other fields of study and research. Interaction between users and computers occurs at the user interface (or simply interface), which includes both software and hardware, for example, general purpose computer peripherals and large-scale mechanical systems such as aircraft and power plants.







Goals

A basic goal of HCI is to improve the interaction between users and computers by making computers more user-friendly and receptive to the user's needs. Specifically, HCI is concerned with

  • methodologies and processes for designing interfaces (i.e., given a task and a class of users, design the best possible interface within given constraints, optimizing for a desired property such as learnability or efficiency of use)
  • methods for implementing interfaces (e.g. software toolkits and libraries; efficient algorithms)
  • techniques for evaluating and comparing interfaces
  • developing new interfaces and interaction techniques
  • developing descriptive and predictive models and theories of interaction

A long term goal of HCI is to design systems that minimize the barrier between the human's cognitive model of what they want to accomplish and the computer's understanding of the user's task (see CSCW).

Professional practitioners in HCI are usually designers concerned with the practical application of design methodologies to real-world problems. Their work often revolves around designing graphical user interfaces and web interfaces.

Researchers in HCI are interested in developing new design methodologies, experimenting with new hardware devices, prototyping new software systems, exploring new paradigms for interaction, and developing models and theories of interaction.

Design methodologies

A number of diverse methodologies outlining techniques for human-computer interaction design have emerged since the rise of the field in the 1980s. Most design methodologies stem from a model for how users, designers, and technical systems interact. Early methodologies, for example, treated users' cognitive processes as predictable and quantifiable and encouraged design practitioners to look to cognitive science results in areas such as memory and attention when designing user interfaces. Modern models tend to focus on a constant feedback and conversation between users, designers, and engineers and push for technical systems to be wrapped around the types of experiences users want to have, rather than wrapping user experience around a completed system.

User-centered design: User-centered design (UCD) is a modern, widely practiced design philosophy rooted in the idea that users must take center-stage in the design of any computer system. Users, designers, and technical practitioners work together to articulate the wants, needs, and limitations of the user and create a system that addresses these elements. Often, user-centered design projects are informed by ethnographic studies of the environments in which users will be interacting with the system.

A brief primer on Human-Computer Interaction

I've been reading several books on Interaction Design and how to design usable computing interfaces. I've read Alan Cooper's About Face 2.0 and Klaus Kaasgaard's Software Design & Usability. The former is a sort of entry-level book to the world of HCI, and it takes the reader through all the various stages of design – from the initial inquiry to prototyping and usability testing. The latter is an interview book where the author discusses issues central to HCI and Interaction Design with leading people in the field. Here I'll try to sum up some of the insights of these two books that struck a chord with me - and maybe add some of my own.

A goal oriented approach

Alan Cooper's first central observation is that for most users, computing technology is only a means. Not a goal in itself. This observation is central to understand how computers are perceived and used. Many HCI models (and thusly most software documentation) focus on the various taks associated with computers: pointing, clicking printing, saving; Cooper argues that all good design should begin with making clear what the user would want to accomplish using the software.

As longtime HCI consultant Stephanie Rosenbaum tells Klaus Kaasgaard:
“For most people, the computers that they use as tools are not central to their goals, so they are not willing to spend much time to understand computers.”

Much software is technically capable of any task that the user might have to do, but still fails as its designers haven't considered which of these tasks are essential in achieving the users' goals:

Software that enables users to perform their tasks without addressing their goals rarely helps them be truly effective. If the task is to enter 5000 names and addresses into a database, a smoothly functioning data-entry application won't satisfy users as much as an automated system that extracts the names from the invoicing system.

Cooper states that the users' most important goal is “is not to feel stupid.” You do feel stupid if you have to enter 5000 names by hand. And you do feel stupid everytime you see a dialogue box telling you that the program “has encountered an error” or has “failed to notify the library” or couldn't “query the database” without telling why or what to do about it, and only offering a “OK” option.

What?! My program just crashed, it's not 'okay'!

Contextual inquiry

Cooper, and most other interaction designers with him, argue that in order to identify user goals and thereby streamline design to fit the user, it is necessary to study the users' daily routines. Observing and discussing the daily goals and tasks of the users in their own work environment can help the designer understand the needs and perceived needs of the user.

This sort of “contextual inquiry” is a very ethnographic encounter. A sort of “collaborative exploration” of the workplace over an entire day. The user tells of his routines and goals in a discussion subtly led by the designer to touch upon on the relevant aspects that he has identified. By encouraging story-telling and show-and-tell the designer can develop a better understanding of how work flows in the workplace.

Cooper warns that the designer shouldn't discuss product-related technology with user (such as “what kind of wireless networking would you prefer?”), and avoid making the user a “co-designer” (by asking questions like “how would you like it”) as the user rarely have a complete conceptual model of the work he performs (Cooper argues that this is what the designer should focus on constructing).

Instead, questions should focus on the actual daily use of technology, preferences, motivations and priorities of the users:

  • What are the most common things you do with the product?
  • What do you like about it? What drives you crazy?
  • What is most important to you in your work?
  • What do you enjoy most about your work?
  • What do you do when you encounter a problem?
Design paradigms

Once you have a clear idea of what the users' goals are (having interviewed more than a few users in the manner described above), you can begin designing – that is the openended, creative process of finding a solution to the users' problem – ie. the goals they want to accomplish.

A lot has been written about design in general but the essential element here is to base the design in the observations you've made, constantly testing your ideas against them. Many of the designers and consultants that Klaus Kaasgaard interviews state that it is very important not to begin coding a prototype of any of these early designs, because most programmers will grow very attached to any code that they have produced, even if it is just a 1000 line mockup.

Instead, it is best first to decide on a form before any coding is done at all: Use storyboards, dramatizations, mockups to present how you envision the use and feel of the program so that there is a final goal that the programmers can work towards.

According to Alan Cooper, there are three dominant paradigms in the conceptual and visual design of User Interfaces:

1) Implementation-centric

based on understanding how things work. The design mirrors the actual construction of the program. It often demands understanding of the program. Command line programs work in this way, and it is the way that is preferred by programmers themselves as they often find an inherent elegance and simplicity in the fact that the interface design reflects the system. I guess this makes it easier to fix interface bugs, as well.

2) Metaphoric

based on intuiting how things work. The design mirrors well known real life interfaces that the user is already familiar with, and therefore has some intuition from which to extrapolate how to use the interface. One of the most developed examples of such design is the desktop metaphor with its iconic trash bin, in and out boxes, files and folders. Other examples are music and video players that copy the interface from CD or DVD players.

3) Idiomatic

based on learning how things work. Idioms aren't intuitive or sensible but they stick once they're learned. We understand idioms like “kicking the bucket” or “beating around the bush” not by understanding or intuiting it (if you hadn't been told, how would you figure out what “cannot hold a candle to” means?) but by memorizing it. Most GUI conventions are idiomatic – such as resizable windows and endlessly nested folders. Most computer games use idiomatic design as well.

In an implementation-centric paradigm, users are most often simply expected to know what a given program is capable of (or be able to read the documentation to find out). But since most users would rather be successful than knowledgeable, it is required that the functions of programs under both the the metaphoric and idiomatic design paradigm are easily usable without much prior knowledge – that the affordances of the program is made evident.

Affordance is a term introduced by the nestor of UI design, Don Norman, and is defined as “the perceived and actual properties of the thing, primarily those fundamental properties that detemine just how a thing could possibly used.” That is: how obvious an item's use and mode of use is to the user. The way that things can communicate their use through their design.

For example af door bell usually has button the size of the tip of a finger, at just the right height to be easily pushed. According to Norman, it is basically begging us to push it. The same with power buttons on PC cabinets, they tend to be so big and tempting, anybody who has had their computer accidently turned off by a toddler will know the lure of the power button whispering “Push me!”.

With user interfaces on the computer, it is slightly more tricky. GUIs tend to be two-dimensional, grey and boring. But by using simple shading techniques, buttons can appear more pushable, windows can appear more draggable, by hinting that it can be manipulated in new ways, the user will often try, and thus learn new ways of using the computer.

I find that the best use of the idiomatic design paradigm takes place in computer games which often use tutorials to good effect, showing off the conventions and idioms of the game one by one. Often, the best part of the game play is where the learning curve matches perfectly the pace of play. Conveniently introducing new elements of play just as the player has memorized the old parts. Games like Prince of Persia: Sands of Time or Civilization get this learning curve just right. I think it should be perfectly possible to make tutorials for most programs in much the same way.

Also, see Seymour Papert's interesting discussion of the failure of "edutainment".

A brief discussion of semiotics

I've found that the semiotic theory of Charles Peirce is helpful here in order to understand the creation and navigation of the signs used in GUIs.

Semiotics is the study of signs, not merely visual signs such as road signs or symbols or paintings – but also words, sounds and even body language. Peirce says that anything can be a sign as long as someone interprets it as 'signifying' something - referring to or standing for something other than itself. Peirce found three main types of signs, categorized according to the relationship between the sign and the signified object. In a GUI that would be the relationship between a button and the associated function.

These three types of signs are

1) Icons

are signs that are perceived as resembling or imitating the signified objects (recognizably looking, sounding, feeling, tasting or smelling like it) - being similar in possessing some of its qualities. Icons are a central part of any GUI – for instance the use of the trash bin to signify deletion; an envelope to signify sending a message or a house to signify Home (whether it is a home directory or a start home page in a browser).

2) Symbols

are signs that do not resemble the signified object. Instead it is fundamentally arbitrary or purely conventional - so that the relationship must be learnt. Most GUIs use some symbols as well: The “refresh” button in the browser or the alert icon (the exclamation mark in a triangle).

3) Index

are signs which are not arbitrarily but directly connected (physically or causally) with the signified object. This link can be observed or inferred, such as footprints, echoes or a pointing 'index' finger.

Indexical signs in GUIs are often related to user actions. For example marking a selected object in a different colour or the cursor changing shape when associated with a certain action – such as copying or moving a file.

For a comparison of GUI icons in various modern operating systems, check out this wonderful chart.

The problem with these signs usually arise when the user interprets a certain sign in a markedly different manner from what the designer expects. Designers often call this confusion on themselves by using the same signs for several different functions. For example the magnifying glass which is both used as an icon for zooming in and out, but also as an index for searching – probably due to a cultural connection with Sherlock Holmes, cf. the Mac OS 9 search application named Sherlock.

For more on the use of semiotics in relation to GUI design, check interface designer Luke Wroblewski's homepage and blog and this interesting essay on the issue.

Actual implementation

When you have decided on the design paradigm you want to base your design on, and have developed the appropriate idioms or metaphors, affordances and signs to make the program easy to learn and use. And you have visualised how the user is going to use the program, you can begin the actual implementation of the code. Cooper has a fair few pet peeves and pointers on how to develop the GUI for any program:

Avoid unnecessary reporting: Don't use dialogs to report normalcy!

Ex. When you put something in the trash, you expect it to go in the trash. Don't ask me if I'm sure. Just make sure I can undo it later.

Ask forgiveness: Don't hold up procedures but finish them and tell us of any errors afterwards!

Ex. If I copy several hundred files all at once, and one of them have a permission problem, then don't stop the entire program to receive response on that file. Instead, copy all the other files with proper permissions and gather up the problematic ones in one error report afterwards. Extra points if there's an offer to solve the permissions problem with that report.

Modeless feedback: Offer relevant information immediately and dynamically.

Ex. Many people use the 'word count' function all the time. Why is it hidden away in a menu and a dialogue box when that information could be directly accessible from the normal document view.

In general: Minimize excise!

Excise is the extra work that doesn't contribute to reaching a goal but are necessary to accomplishing it all the same. Excise comes in many forms, but especially these are worth noting:

Flowstoppers: Remove flowstoppers such as dialog boxes, passwords, permissions, errors and unresponsiveness. And if flow stoppers are absolutely necessary in a given situation - make sure to make it as clear and as helpful as possible. For a comprehensive list of un-helpful flowstoppers, see the Interface Hall of Shame.

Navigation: Reduce the number of places to go. Simplicity in presentation is apparent: Don't force the user through submenus and dialog boxes to reach a certain function. Place functions according to use. Provide an overview of the functions. Avoid hierarchies (I, for one, continue to have great expectations to the use of tagging and integrated searching utilities. When can we expect an OS based on tagging rather than a hierarchical file structure?)

Getting help

Once you have your program prototyped, or even finished, you can worry about documentation. Alan Cooper argues that documentation is mostly read by what he calls the "perpetual intermediates".

He argues that since most beginners work relatively hard to acquire the basic computer skills and understand the basic conventions of the GUI, they quickly learn enough to succesfully accomplish the goals they want to achieve, thus becoming intermediate users. Most users are thus intermediates, only a few of which will have the drive and the interest to become proper computer experts.

These intermediate users tend to have an idea if something can be done through a given application, and are they will try to use the documentation to find out how. Cooper's advice is to optimize documentation for these intermediates. And again, it is important to think in goal-oriented solutions: When users consult the documentation it is usually with a “How do I...” question on their lips but usually they will lack the proper technical vocabulary to know where to look.

As the usability expert Jakob Nielsen says to Klaus Kaasgaard: “Anytime a user goes looking for help, it is a cry of desperation, almost.”

Most users usually try to figure stuff out themselves before consulting the documentation when this fails they're already frustrated, and as Nielsen states: “From the moment you ask for help, until you get it you start forgetting what you're doing.”

Therefore, documentation needs to be as gentle a ride as at all possible. It is essential to have an index with lots of cross-references and a brilliant search function. The sort of search function that can guess that when you enter "make picture brighter" will refer you to the entry on the brighten-contrast tool, or when you enter "show time on message" will refer you to the entry on the timestamp function.

Also, to help and encourage the user to use keyboard short-cuts, these should be both easily learnable and usable (preferably with just one hand - but no space cadet keyboards, please!). All of these short-cuts should also be available as a list from the help menu, so that it is easy to look up in case you forget one.

Conclusions

With so much thought and deliberation on the matter of Human-Computer Interaction Design, it seems relevant to ask how it can be that there continues to be companies that produce software without thoroughly considering the way it will be used.

The computer scientist Terry Winograd touches upon this in his discussion with Klaus Kaasgaard: There is a constant rush to bring new products to the market. Just as quickly as you have something usable, it gets marketed, packaged and sold. No matter whether it is ready or not.

The programmer-turned-novelist Ellen Ullman reflects on this mode of constant hurry and turmoil which defines the entire computing industry. She says:

"We build our computer (systems) the way we build our cities: over time, without a plan, on top of ruins"

She argues that the strain between backwards compatibility and the integration of new features leaves little room for concern for polish and usability. New ideas develop so quickly that we have come to expect "new" all the time. We absorb change so quickly that we tend to forget how short a time much of this technology has been with us.

One illustration of this can be found in Kaasgaard's 1999 interview with Winograd. Winograd had supervised Google founders Larry Page and Sergey Brin's doctoral work at Stanford as part of a project under the Digital Library Initiative, and could recommend the new start-up Google as an example of a promising new technology. Kaasgaard later notes that "it does seem rather efficient."

But Google's phenomenal rise to fortune and verbdom isn't simply because of its technological capabilities. Its popularity might well also be related to the fact that it makes the computer simpler and easier to use. Just type your query, and Google will find what you're most likely looking for. Automagically.

It is that kind of simplicity that appeals to user. The computer itself is only a means. It is the goals that it allows you to accomplish that are interesting. The less central the computer is to the user, the less patience they will have with it. This is not necessarily a bad thing. Sometimes you learn more from the doubting late-adopters than from the ones willing to change their routines to accomodate new technology.

Some Interaction Design thinkers, such as Anne Galloway and Jean Burgess argue that we need to slow down this accelerating technology race. That calmness and even boredom also are relevant aspects to consider about interaction design.

Slow or not, design of Human-Computer Interaction does require attention. Perhaps most basically, Interaction Design requires a change in attitude towards software production in general. Perhaps even a turn away from crufty compatibility concerns or fancy features to a focus on useful simplicity.

Definition of Human-computer interaction

There is currently 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.

DDN - Human Computer Interaction

Human-computer interaction (HCI) is the study of interaction between people (users) and computers. It is an interdisciplinary field, relating to computer science, psychology, cognitive science, human factors (ergonomics), design, sociology, library and information science, artificial intelligence, and other fields. Interaction between users and computers occurs at the user interface, which includes both hardware (i.e. input and output devices) and software (e.g. determining which, and how, information is presented to the user on a screen).

As a research and professional field, HCI has for many years explored access to ICT for disabled users but has only recently began to turn its attention to community informatics and the broader digital-divide as an area to which HCI can contribute. This community examines the user interface and broad questions of interaction design for community informatics and the digital divide.

Sketching and typing, the benefits of a notepad like input format

The primary way to store information on computers and digital media today is in text form and the reasons for this are traditional, it's easy to search and store text and it takes up little space. Stepping outside the traditional and limited sign systems of the digital era, allowing users to introduce their own signs, drawings and diagrams, seamlessly with typed text, will emulate the properties of traditional paper based media and add semantic richness to digital content.

Today we are seeing new technologies emerge, technologies that allow us to use computers more or less the way we have used other media, for example the traditional notepad. This blog entry is about the notepad, its advantages and easy of use, and its communicative power in allow us to both write and draw to convey concepts. For others to understand, as in the communal notepad used in education and meetings, or for ourselves such as when takes notes during a lecture.

The notepad has many nice properties that designers of new digital replacements have attempted to copy, most prominently its size, weight and accessibility. Today on the web we still rely on typing for getting our message through and use ugly ASCII drawings to illustrate relationshops between concepts and to create diagrams. With the advent of handhelds with touchscreen interfaces that allow you to use your stylus much like you use your pen, and laptop computers with similar interfaces, there are now no technical reasons why we can't sketch, draw and type on the screen a lot like we sketch, draw and write in our notepad.

The text-based approach that has dominated the digital world for so long does have benefits however. Text stored on a computer has meta properties. It isn't just a series of signs, it is abstract and allows advanced manipulation such as copying and transfer, a feature regular writing lacks. When you jot something down you use signs that have conventionalized value, people who understand your handwriting will at least be able to recognize the letters you used, and if they know the language they will probably understand what you have written. When you type on the computer your are restricted to a set of predefined symbols, characters and letters, which all have a predefined meaning. Since it's all standardized and the symbols are abstract, you can display the same text (same combination of symbols) in several formats, with different layout, font face or color. You can also process the content, classify and analyze it statistically, and store it for quick and easy retrieval.

The notepad allows you to be inventive, you can create your own signs, you aren't limited to what your keyboard and the computer's sign system afford. You can invent your own system of signs, you can write in code that consists of signs that no else knows.

Below is an example, this is an old very famous code, something I learnt as a kid being a member of the Swedish scout organization. Writing in code is one of the things scouts do, I would assume it is related to the originally military traditions of the movement, ideals that were later discarded for a more pacifist agenda (in Sweden anyway).

The code.

The symbols above were drawn in Fireworks using my Wacom tablet but I hope they're clear enough, and enough well-defined to make sense of. The key can be found at the end of this page.

Another example where drawing is handy is when you need to draw a map for someone else to follow:

A map.

If you were trying to convey the same message over email you'd have to make an ASCII drawing, like this:



|
|
| ^ my
old | [ ] house
windmill +----------
\ / |
__\/__ | 200 m
< stockhom /|\ |
/_|_\ |
-----------------------+----------------------
3 km |
|
|
|
|

Now wouldn't be great if we could use text and any arbitrary symbols we wanted, intermixed, and it wouldn't require any special hardware of software? Imagine if you could make a drawing, with your mouse or stylus, right on the screen in the textfield of your blog or on a forum and have the computer treat it as a drawing. Giving you the same freedom expression as that afforded by the notepad while at the same time allowing you to scale and edit it by storing it as vector graphics.

Taking it a step further, both typing and writing could be supported and drawings could have abstract meaning, semantic value, that would "make sense" to computers as well. We cannot use bitmaps for this purpose as they are semantically dead, and have non information regarding their meaning or their relationship with other content. A way this could work would be linking two typed words with a drawn line to establish a concept, doing it using either a toolbox of set signs and symbols, like in Microsoft Visio, or by letting the computer interpret your drawing as a formalized diagram. The possibility of using an intuitive and human input format and still maintain the benefits of the digital medium and its abstraction and meta information is there.

Can we do this today? I believe so. We have standards for storing and exchanging text (XML), we have standards for presenting it (XSL, XSLT and CSS) and a standard for semantically rich vector graphics (SVG), all it takes is combining it. We need a rich media control for all major operating systems that allow you not only to type and format your text in terms of font face, color and layout, in terms of its semantic type (headers and paragraphs) but also allows you to draw on the screen, introducing novel signs and figures, with a relationship to the text in order to illustrate or explain a concept. We need a unified format for storing this sort of information, on the web and elsewhere, making it seamless and effortless to store and retrieve without apparent separation between content types, separation introduced due to technical constraints rather than conceptual difference.

The key to the code above.

Wednesday, December 20, 2006

Multi-media, Virtual Reality and Human Computer Interaction

Research in this field is conducted by a number of groups within the department of Computer Science. In the data management group there is a growing interest in multi-media. The attention for multi-media and information retrieval as practiced in Twente is unique in the Netherlands. Research is also directed towards developing ambient data management solutions for ambient intelligence environments, through a peer-to-peer-based multi-media database infrastructure for the support of person-oriented, context-aware access in distributed or ad-hoc environments.

Human-computer interaction at the UT has always been aimed at multi-modal interaction that is directed by the (im)possibilities of the environment. The starting point in this for the computer is multi-modal representation. This research is linked to research in the field of social user-interfaces and an interest in the possibilities of speech and language that is also present in multi-media retrieval research.

Virtual Reality is the collective name for creating artificial products or complete artificial environments, for example in offering training environments, or testbeds for a product design. A great deal of research in EEMCS is directed towards agent-oriented design of such systems and towards systems interaction by means of intelligent and social agents.

Within the University of Twente VRINT functions as a clustering of Virtual Reality research in the faculty of Electrical Engineering, Mathematics, and Computer Science, and the faculty of Engineering Technology, as a collaboration of CTIT and BMTI. Applications in VRINT are concentrated in the field of the development of tools for rehabilitation, befitting Twente’s focus in this regard.

Human Computer Interaction

Human-Computer Interaction, often called HCI, is a sociotechnological discipline whose goal is to bring the power of computers and communications systems to people in ways and forms that are both accessible and useful in our working, learning, communicating, and recreational lives.

Toward this end, technologies such as the graphical user interface, virtual environments, speech recognition, gesture and handwriting recognition, multimedia presentation, and cognitive models of human learning and understanding are developed and applied as part of HCI research agendas.

HCI is sociotechnological because it concerns how people, both as individuals and as groups, use and are affected by computer and communication systems. As such, HCI draws on computer science, computer and communications engineering, graphic design, management, psychology, and sociology as it endeavors to make computer and communications systems ever more usable in carrying out tasks as diverse as learning a foreign language, analyzing the aerodynamics of a new airplane, planning surgery, playing a computer game, accessing information on the World Wide Web, or programming a VCR.

Excellence in HCI is important for several reasons:

Quality of life. Important applications of computers in medicine are possible only if they are both useful and easy to use by doctors, nurses, and aides; similarly, use of computers in education requires that they be both useful and easy to use by students and teachers. Computers can assist disabled individuals; at the same time, special techniques are needed to allow computers to be used by some who are disabled.

National competitiveness. Information technology is one of the drivers for increased productivity. As more and more workers use computers in their jobs, training time and ease-of-use issues become economically more and more important.

Growth of the computer and communications industries. Powerful, interesting, and usable applications are the fuel for continuing growth of these industries. The current growth cycle is the direct consequence of the graphical user interface developed by Xerox and commercialized by Apple and Microsoft, and of the lower computer costs made possible by the microprocessor. The resulting mass market supports commodity pricing for both hardware and software. Future growth cycles will in part be driven by current HCI research, which will lead to new applications that are increasingly easy to use.

National security. Computer-based command, control, communications, and intelligence systems are at the heart of our military infrastructure. Interfaces between operators and computers are found in cockpits, on the bridge, and in the field. To be effective, these systems must have high-quality human-computer interfaces.

The world is in revolution. The only point of disagreement is the name used to describe the revolution: the computer/communications revolution, the information technology revolution, or convergence. Whatever the name, the revolution is fueled by the low cost of mass-produced computer processor and memory chips and by the inexpensive, high-bandwidth digital communications capabilities of the emerging national information infrastructure (NII).

The computer/communications revolution in which we are all participating both enables and requires advances in human-computer interaction.

The revolution enables HCI because the low cost of processors and memory means that the graphical user interface is now affordable by millions of people. Without a mass market to sell to, software developers could not afford the substantial investment in the plethora of applications and CD-ROMs now available on the market. Intel expects to sell 100 million Pentium and Pentium Pro chips in 1996. Many or most will run Windows 3.1 or Windows 95 and will further broaden the market for usable software. The coming of age in the next few years of smart set top boxes, mobile digital communications devices, personal digital assistants, information appliances, and so forth, provides new and exciting opportunities, but with the necessary condition that their user interfaces suit their users.

On the other hand, the revolution requires advances in HCI in order that the sophistication and power of computers be made widely available for use by the millions of people who simply want to do their jobs or play computer games or explore the World Wide Web without having to be computer experts. The continuing growth of the computer and communications industries will be moderated without further developments in HCI to create more useful and usable applications.

 

Human Computer Interaction

Human-Computer interaction concerns itself with studying how people interface with computers and the associated problems that may arise. Fields of study include:

  • Improving the visual representation of software programs, especially in regards to the layout of screens

  • Improving the operation of software programs in regards to the use of the keyboard, mouse, or other input devices need to operate the program.

  • Improving a software program's workflow so that the sequence of steps required to interact with it are more logical and user friendly.

  • The psychological reaction of a person to either the appearance of a computer system or to the tasks involved with operating it.

  • The ergonomic design of various input devices such as mice, keyboard, touch screens, and even haptic interfaces like telepresence gloves, etc.
The toughest challenge for researchers in this field is that of making computers accessible to the physically handicapped. This field is poised for rapid growth as researchers begin to tackle the enormous challenges of exotic computer interfaces, such as direct control of computers from electrodes implanted in the human brain.

 

A World Without Computers

The sun is out, the world moves slowly; a cloud of fog surrounds all corners of the globe, and the clock ticks slower, much slower than it should. The hand of man has come to be a mechanism in itself: rough, sturdy, and quick to demand like a confounded machine dividing its labor per hour and per day without an end. The world of finance has become confusion; an accountant dwells deep in his work, he sees a mess of papers, a million to go, he sighs in disillusion. The kinks-and-kanks, and strong hums of an ancient polytechnic society sings louder and louder; what exists is a world of noise and a tolerance to it. Factories upon factories ravish the land, as demand for machinery does not yield to an exhausted hand. Machines throughout the world have become complex creatures, bearing mass upon mass of extraneous and ill-significant features. Buildings are crooked, tired, and broken; a mathematical world has turned impertinent to a world of idealisms and perfections of a primordial perception.

The health of man deteriorates, population rises due to the volatility of life. No MRI, no EEG’s, no medical advances, and treatments are dangerous and deathly. Chance alone bears the destiny of man; a stoic smile charmingly at the world he seems to have figured millenniums ago and the disenchanted scientist loses his senses, his memory stores too little, he becomes all too impertinent, all too soulless.

Intellectualism diminished as a foreseeable future in the progress of wisdom seems futile in comparison to the world of will and hunger, memory is the key to understanding life, if David Hume were around he would suggest, that the “relationship of ideas,” seems to have digressed.

Precision is a dream, man a machine, computers do not exist, and so the soul never sleeps. A mess of a polytechnic society, with man as machine, broken up degraded to the will of industry, nothing too harsh, certainly and irrefutably: no computer no precision, no health, no math, and no life.

 

School of Computing - Human computer interaction

This module aims to provide a theoretical and scientific framework within which the student will be able to understand the impact of computers on humans.

The student will develop skills and knowledge that will enable efficient and effective human-computer systems to be specified. They will develop an understanding of human factors and ergonomics that will enable high levels of system usability to be achieved.

The module will introduce students to the available user interface technologies and to techniques for evaluating the relative merits of different types of interfaces.

On successful completion of this module, the student will be able to

  • Evaluate the important role that computer and information technologies play with respect to augmenting, extending and enhancing human performance within different domains of endeavour.

  • Formulate a theoretical basis for the study of human behaviour within the context of people interacting with computer-based systems.

  • Design efficient and effective human-computer interfaces.

  • Construct an engineering methodology to facilitate the fabrication, testing and evaluation of human-computer interfaces.

  • Apply both analytical and critical thinking skills with respect to the effective and efficient use of computer-based technologies for the solution of contemporary problems within a variety of different domains such as education, health-care and industry.

 

Human Computer Interaction

 Human Computer Interaction (HCI) is about people interacting with technology. It looks at how technology is designed, and how it should be designed to make it easy and interesting for people to use.

Computers are all around us - so much that we are sometimes not even aware of them. You probably use a computer at work, perhaps to write documents, to find information in databases, and the Internet to send mail. At home you may decide to set the VCR to tape your favourite show next week, or you may set the oven to ensure your dinner is ready the moment you get home. We use computers everywhere, every day.

It's said that computers make life easier, but do you really know how to correctly set your VCR, or do the kids do it? Do you ever ask your colleagues for help when something on the computer doesn't work or make sense? Do you forget how to do things you know you should know, and do you ask a person at the railway station to issue you with a ticket rather than using the automatic ticketing machine?

When devices are confusing to use, or device functionality is hidden from view, it's likely that usability problems are getting in your way. Ideally, these problems should have been eliminated before the system was released, but we know that's often not the case. Many devices are difficult for people to learn and use because the Human-Computer Interaction issues were not addressed.

HCI is an inter-disciplinary discipline comprising experts from many fields, like engineering, computer science, psychology, graphic design, ergonomics and others. HCI is concerned with the design, evaluation and implementation of interactive technology. It aims to ensure that technology matches people's needs, capabilities and limitations, regardless of whether people work in groups or alone.

For more detail, the ACM SIGCHI Curriculum Development Group have a comprehensive document explaining

Tuesday, December 19, 2006

Human-Computer Interaction

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.

 

Human-Computer Interaction Specialization

D, E, F, and I-students can specialize into human-computer interaction. The D-specialization is described thoroughly here. The E-students choose their specialization later, and the specialization thus includes fewer credits. The HCI-specialization for E-students has about the same general idea. F-students choose a much broader specialization into Discrete mathematics and computer science. Within that specialization they can choose to go into HCI. I-students also have a fairly broad specialization but its emphasis is on HCI.

Subject Area

An increasing number of people use computers and perform increasingly complex tasks using computers. Computers are no longer handled only by computer specialists. The new user categories demand that programs are not only powerful tools but also easy to use. A new research field has evolved dealing with the design of computer supported tools aiming at making them not only agreeable to work with but also making use of and, if possible, enhancing the knowledge and capacity of the user. The area is interdisciplinary with strong links to e.g. psychology, linguistics, graphical design, industrial design, and work science.

Research in human-computer interaction began at Nada in the mid-eighties. About twenty researchers are presently engaged at IPLab (Interaction and Presentation Laboratory). Current research topics are: computer support for the writing process, computer support for document handling, design of environments for computer supported cooperative work, and object oriented tools for creating distributed multi-media systems.

In recent years it has been realized that computer systems that consider human performance and take advantage of human capacities not only lead to better comfort at work but also to cost effectiveness. In industry there is a demand for individuals with knowledge in human-computer interaction.

Core elements in the courses are:

  • knowledge of the human ability to perform communicative and cognitive processes,

  • theory and methods for considering human needs and taking advantage of human capacities when designing computer systems,

  • theory, techniques, and methods for designing user oriented applications.

Goal

The goal of the specialization is to supply a broad view on the use of information technology, including knowledge about how humans think and communicate when using computers, and deeper knowledge about theories, techniques, and methods for the design and construction of advanced interactive program systems where human needs and capacities are regarded.

Prerequisites

Mandatory courses for the program. Students from programs other than D must also have taken 2D1323 Computer Graphics and Interaction and a course on object oriented programming. Some courses have further prerequisites.

Number of students

A maximum of 30 KTH-students will be admitted to the course 2D1410 User Centered Program Development. If some students on the profile can not be admitted to that course, they can take either of 2D1413 Advanced Graphics and Interaction or 2D1416 Computer Support for Cooperative Work instead.

Courses

  • Mandatory core courses (18 credits) All three must be taken.

  • 2D1410 User Centered Program Development, 6 cr.

  • 2D1965 Human-Computer Interaction, 4 cr.

  • 2I1130 Cognitive Psychology, 4 cr. (preferrably during the third year)

  • 2D1953 Graphics and Interaction programming, 4 cr. for D students and

  • 2D1323 Graphics and Interaction programming, 4 cr. for other students

  • Broadening courses Courses are listed in numerical order. At least one must be taken.

  • 2I1150 Theory of Knowledge and Philosophy of Science, 4 cr.

  • 4J1075 Technical Work Psychology, 4 cr.

  • 4K1401 History of Technology, A General Survey, 4 cr. (preferrably during the third year)

  • Specialization courses Courses are listed in numerical order. At least one must be taken.

  • 2D1378 Text and Image Processing, 4 cr.

  • 2D1381 Industrial Applications of Artificial Intelligence, 4 cr.

  • 2D1413 Advanced Graphics and Interaction, 6 cr.

  • 2D1416 Computer Support for Cooperative Work, 6 cr.

  • 2D1418 Language Engineering, 4 cr.

  • D1420 Computer Vision, basic course, 5 cr.

  • 2F1111 Speech Technology, 4 cr.

  • 4K1516 Audio, Video, and Multimedia Technology, 6 cr.