Human-Computer Interaction (HC)
HC1. Foundations of human-computer interaction [core]
HC2. Building a simple graphical user interface [core]
HC3. Human-centered software evaluation [elective]
HC4. Human-centered software development [elective]
HC5. Graphical user-interface design [elective]
HC6. Graphical user-interface programming [elective]
HC7. HCI aspects of multimedia systems [elective]
HC8. HCI aspects of collaboration and communication [elective]
This list of topics is intended as an introduction to human-computer interaction for computer science majors. Emphasis will be placed on understanding human behavior with interactive objects, knowing how to develop and evaluate interactive software using a human-centered approach, and general knowledge of HCI design issues with multiple types of interactive software. Units HC1 (Foundations of Human-Computer Interaction) and HC2 (Building a simple graphical user interface) will be required for all majors, possibly as modules in the introductory courses. The remaining units will most likely be integrated into one or two elective courses at the junior or senior level.
HC1. Foundations of human-computer interaction [core]
Minimum core coverage time: 6 hours
Topics:
- Motivation: Why care about people?
- Contexts for HCI (tools, web hypermedia, communication)
- Human-centered development and evaluation
- Human performance models: perception, movement, and cognition
- Human performance models: culture, communication, and organizations
- Accommodating human diversity
- Principles of good design and good designers; engineering tradeoffs
- Introduction to usability testing
Learning objectives:
- Discuss the reasons for human-centered software development.
- Summarize the basic science of psychological and social interaction.
- Differentiate between the role of hypotheses and experimental results vs. correlations.
- Develop a conceptual vocabulary for analyzing human interaction with software: affordance, conceptual model, feedback, and so forth.
- Distinguish between the different interpretations that a given icon, symbol, word, or color can have in (a) two different human cultures and (b) in a culture and one of its subcultures.
- In what ways might the design of a computer system or application succeed or fail in terms of respecting human diversity.
- Create and conduct a simple usability test for an existing software application.
HC2. Building a simple graphical user interface [core]
Minimum core coverage time: 2 hours
Topics:
- Principles of graphical user interfaces (GUIs)
- GUI toolkits
Learning objectives:
- Identify several fundamental principles for effective GUI design.
- Use a GUI toolkit to create a simple application that supports a graphical user interface.
- Illustrate the effect of fundamental design principles on the structure of a graphical user interface.
- Conduct a simple usability test for each instance and compare the results.
HC3. Human-centered software evaluation [elective]
Topics:
- Setting goals for evaluation
- Evaluation without users: walkthroughs, KLM, guidelines, and standards
- Evaluation with users: usability testing, interview, survey, experiment
Learning objectives:
- Discuss evaluation criteria: learning, task time and completion, acceptability.
- Conduct a walkthrough and a Keystroke Level Model (KLM) analysis.
- Summarize the major guidelines and standards.
- Conduct a usability test, an interview, and a survey.
- Compare a usability test to a controlled experiment.
- Evaluate an existing interactive system with human-centered criteria and a usability test.
HC4. Human-centered software development [elective]
Topics:
- Approaches, characteristics, and overview of process
- Functionality and usability: task analysis, interviews, surveys
- Specifying interaction and presentation
- Prototyping techniques and tools
- Paper storyboards
- Inheritance and dynamic dispatch
- Prototyping languages and GUI builders
Learning objectives:
- Explain the basic types and features of human-centered development.
- Compare human-centered development to traditional software engineering methods.
- State three functional requirements and three usability requirements.
- Specify an interactive object with transition networks, OO design, or scenario descriptions.
- Discuss the pros and cons of development with paper and software prototypes.
HC5. Graphical user-interface design [elective]
Topics:
- Choosing interaction styles and interaction techniques
- HCI aspects of common widgets
- HCI aspects of screen design: layout, color, fonts, labeling
- Handling human failure
- Beyond simple screen design: visualization, representation, metaphor
- Multi-modal interaction: graphics, sound, and haptics
- 3D interaction and virtual reality
Learning objectives:
- Summarize common interaction styles.
- Explain good design principles of each of the following: common widgets; sequenced screen presentations; simple error-trap dialog; a user manual.
- Design, prototype, and evaluate a simple 2D GUI illustrating knowledge of the concepts taught in HC3 and HC4.
- Discuss the challenges that exist in moving from 2D to 3D interaction.
HC6. Graphical user-interface programming [elective]
Topics:
- UIMS, dialogue independence and levels of analysis, Seeheim model
- Widget classes
- Event management and user interaction
- Geometry management
- GUI builders and UI programming environments
- Cross-platform design
Learning objectives:
- Differentiate between the responsibilities of the UIMS and the application.
- Differentiate between kernel-based and client-server models for the UI.
- Compare the event-driven paradigm with more traditional procedural control for the UI.
- Describe aggregation of widgets and constraint-based geometry management.
- Explain callbacks and their role in GUI builders.
- Identify at least three differences common in cross-platform UI design.
- Identify as many commonalities as you can that are found in UIs across different platforms.
HC7. HCI aspects of multimedia systems [elective]
Topics:
- Categorization and architectures of information: hierarchies, hypermedia
- Information retrieval and human performance
- Web search
- Usability of database query languages
- Graphics
- Sound
- HCI design of multimedia information systems
- Speech recognition and natural language processing
- Information appliances and mobile computing
Learning objectives:
- Discuss how information retrieval differs from transaction processing.
- Explain how the organization of information supports retrieval.
- Describe the major usability problems with database query languages.
- Explain the current state of speech recognition technology in particular and natural language processing in general.
- Design, prototype, and evaluate a simple Multimedia Information System illustrating knowledge of the concepts taught in HC4, HC5, and HC7.
HC8. HCI aspects of collaboration and communication [elective]
Topics:
- Groupware to support specialized tasks: document preparation, multi-player games
- Asynchronous group communication: e-mail, bulletin boards
- Synchronous group communication: chat rooms, conferencing
- Online communities: MUDs/MOOs
- Software characters and intelligent agents
Learning objectives:
- Compare the HCI issues in individual interaction with group interaction.
- Discuss several issues of social concern raised by collaborative software.
- Discuss the HCI issues in software that embodies human intention.
- Describe the difference between synchronous and asynchronous communication.
- Design, prototype, and evaluate a simple groupware or group communication application illustrating knowledge of the concepts taught in HC4, HC5, and HC8.
- Participate in a team project for which some interaction is face-to-face and other interaction occurs via a mediating software environment.
- Describe the similarities and differences between face-to-face and software-mediated collaboration.