Human Computer Interaction

From Computer Science Wiki
Human Computer Interaction[1]

Human–computer interaction (HCI) researches the design and use of computer technology, focused on the interfaces between people (users) and computers. Researchers in the field of HCI both observe the ways in which humans interact with computers and design technologies that let humans interact with computers in novel ways. [2]

For now (August 2018), this page is a collection of my notes from my graduate class, which I will build upon and share with my students. The structure of this information is "note-taking, not ready for structured learning by students". Just to be 100% clear, these ideas ARE NOT MINE, but the notes are. 

The big ideas in HCI[edit]

Design principles[edit]

  1. Discoverability
    1. When the user doesn't know what to do, they should be easily able to figure out what to do without reading a manual.
  2. Feedback
    1. Norman writes: feedback must be immediate. Feedback must be informative. Poor feedback is worse than no feedback at all.
  3. Constraints
    1. Constraints prevent something from happening. Physical (3 pronged plug), cultural (traditions), semantic, logical are Norman's constraints.
  4. Mapping
    1. Follow real-world conventions making information appear in a natural and logical order.
  5. Consistency
    1. Consistency is virtuous. If a new way of doing things is only slightly better than the old, it is better to be consistent.
  6. Affordance
    1. The design of a thing hints at (or affords) how it is supposed to be used. An object with an affordance tells the user how it supposed to be used.
  7. Structure
    1. we should organize UI to match the actual task.
    2. The overall architecture. Design should organize the user interface purposefully, in meaningful and useful ways.
  8. Simplicity
    1. Use of the design is easy to understand, regardless of different experiences, levels of knowledge, different languages.
  9. Tolerance
    1. Reduce the cost of mistakes. Users should not be able to get themselves into trouble. Classic examples are UNDO and REDO.
  10. Equity
    1. All users should have the same experience
  11. Flexibility
    1. Design should accommodate a wide range of individual preferences and abilities
  12. Perception (perceptibility)
    1. The system should always keep the users informed.
  13. Ease and Comfort
    1. Design can be used efficiently and comfortably and with a minimum of fatigue. Comfort size and space is provided for approach, reach, manipulation and use
  14. Documentation
    1. One goal of usable design is to avoid documentation all together.

General ideas about Design[edit]

  • focus on users and tasks (not on tools and interfaces)
  • roles of the interface (mediates)
  • different views of users role
  • user experience at several different levels

We need to understand the users goals and the task they are trying to accomplish. Understanding the task is really important, more so than thinking about the interface. By focusing on task rather than interface we can come up with revolutionary interface.

There are important considerations when identifying a task:

  • Watch real users
  • Talk to users through a task (goals motives)
  • Talk small - talk about the individual interaction
  • Abstract up to an understanding of why they are doing something Continually ask "why" a user is doing something.
  • Always remember you are not your user - you aren't designing for you. Leave behind your experience

Goal of HCI[edit]

The goal of human computer interaction is to design something useful and usable

Different Roles humans can play in a HCI[edit]

Process[edit]

Take input in and spit output out - main concern fits into known human (is the interface physically usable) limits. From the psychology point of view this is a behaviorist view of humans. What designs create the right behaviors (testing observable behaviors)?

Predictor[edit]

We want to be able to predict what will happen in the world as a result of an action they take. The interface must fit with what humans know. It must fit with what they already know, and leverage what they already know (use qualitative data to understand). From the psychology point of view, this is like a cognitivism (perception, attention memory, etc). We care about what the human is thinking. Predicting is a mental process, the user is doing the predicting.

Partcipant[edit]

In some environments, we are interested in the context of what else is going around the user. What is competing for their cognitive attention? We evaluate participant role using "in situ" studies. From the psychology point of view, this is like functionalism (emphasize within context). Participant role looks at the interaction within the context or environment within the context of a larger more complex system. A quote "we can't disentangle behavior from environment". [3]

Mental Models[edit]

  • A mental model is a person's understanding of the way something in the real world works.
  • When something doesn't work the way we think it should work, it frustrates us.
  • When you are designing an interface, think like an educator; your goal is to teach the user how the system works through the design of your interface.
  • You have to teach you users AS they are using the interface.
  • We want to match out uI to mental models.
  • Here are 5 tips:
  1. Predictability
  2. Synthesizability
  3. Familiarity
  4. Generalizability
  5. Consistency (similar tasks should be consistent)

Slips and Mistakes[edit]

Any user error is a failure of the interface to guide the user.

  • Slips occur when the user has the right mental model, but does the wrong thing anyway.
    • Action-based slips are places where the user does the wrong thing
    • Memory Lapse slip forgets something they need to do (they knew what to do but forgot to do it)
  • Mistakes occur when the user has the wrong mental model and does the wrong thing as a result.
    • Rule-based mistake when user makes the wrong decision
    • Knowledge-based mistakes occurs when the user incorrectly assesses the state
    • Memory-lapse mistake forget to fully executing a plan

Feedback Cycles[edit]

Perhaps the MOST important idea in HCI. Feedback Cycles are how we learn anything:

  1. we do something
  2. we see the result
  3. we adjust what we do the next time accordingly

We could say a feedback cycle is analogous to intelligence (getting better over time).

When we think about feedback in terms of HCI, we are reminded users get a task done through an interface.

Gulf of execution[edit]

  • Can be defined as "how do I know what I can do?" or "How hard is it to do what I want to accomplish?"
  1. Identify Intentions
    1. users need to be able what they want to do
    2. users need to think of their goals in context of the existing system
  2. Identify Actions
    1. users must identify what actions to take to meet their goal
  3. Execute in Interface
    1. users must actually push buttons, choose menu elements, and make the task happen
    2. users must know how to use the system

5 tips for bridging the gulf of execution[edit]

  1. make functions discoverable (ideally the functions should be discoverable)
  2. let the user mess around
  3. be consistent with other tools
  4. know your user (novice users vs expert users)
  5. feedforward (tell the user what might happen)

Gulf of evaluation[edit]

The task must communicate through the interface to the user what it has done.

  1. interface output (message, buzz, vibrate, etc)
  2. interpretation (can the user understand what the interface is trying to say?
  3. evaluation (can the user say they have met their goals)

5 tips for gulf of evaluation[edit]

  1. give feedback constantly
  2. give feedback immediately
  3. match the feedback to the action
  4. vary your feedback
  5. leverage direct manipulation

Direct manipulation[edit]

Direct manipulation is a principal the user should feel they are directly interacting with their task.

  1. Direct manipulation was born from desktop metaphor (moving files and folders)
  2. Files and folders are meant to mimic files and folders in real life
    1. prior to GUI's we had the command line, which is horrible.

There are some principals of direct manipulation:

  1. Distance: the distance between the users goals and the system itself.
    1. semantic distance refers to the distance between a users goals and the expression in the ion the system (how do you know what to do)
    2. articulatory distance (how hard is it to do what you know how to do)

Invisible interfaces[edit]

The interface actually disappears, the user doesn't think about their task.


Research methods[edit]

The goal of designing a new interface is to meet the needs of the user better than the existing design. We almost always design to improve existing designs.

User-centered design[edit]

User centered design considers the needs of the user throughout the entire design process. Sadly, design is often done to serve functional specification of what the tool must accomplish. Remember: you are not your user. You don't know your user needs. You need to involve your users in every step of the process.

  1. You have to interact with users
  2. You have to understand their needs
  3. You have to involve them in the evaluation.

Principles of User Centered Design[edit]

  1. The design is based upon an explicit understanding of users, tasks, and environments
  2. Users are designed throughout design and development
  3. The design is driven and refined by user-centered evaluation
  4. The process is iterative
  5. The design addresses the whole user experience
  6. The design includes multidisciplinary skills and perspectives

Stakeholders[edit]

A user is a person who uses the interface we have created. The main user (who directly uses our interface) is called a primary stakeholder. Secondary stakeholders might interact with output in some way. Tertiary stakeholders are impacted by the existence of the tool.

In user-centered design, we need to consider all stakeholders.

The Design Life Cycle[edit]

  1. Needfinding
    1. In needfinding we get a comprehensive idea of the task the user needs to perform
    2. common techniques here:
      1. Interviews
      2. Surveys
      3. Naturalistic observation
  2. Design alternatives
    1. It's important to design multiple views to avoid getting stuck into one idea to soon
    2. common techniques here:
      1. Brainstorming
      2. Personas
      3. Storyboards
  3. Protyping
    1. common techniques here:
      1. Paper prototypes
      2. Wireframing
      3. Wizard of Oz
  4. Evaluation
    1. common techniques here:
      1. Qualitative
      2. Empirical
      3. Predictive



References[edit]