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:

Learning objectives:

  1. Discuss the reasons for human-centered software development.
  2. Summarize the basic science of psychological and social interaction.
  3. Differentiate between the role of hypotheses and experimental results vs. correlations.
  4. Develop a conceptual vocabulary for analyzing human interaction with software: affordance, conceptual model, feedback, and so forth.
  5. 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.
  6. In what ways might the design of a computer system or application succeed or fail in terms of respecting human diversity.
  7. 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:

Learning objectives:

  1. Identify several fundamental principles for effective GUI design.
  2. Use a GUI toolkit to create a simple application that supports a graphical user interface.
  3. Illustrate the effect of fundamental design principles on the structure of a graphical user interface.
  4. Conduct a simple usability test for each instance and compare the results.
HC3. Human-centered software evaluation [elective]

Topics:

Learning objectives:

  1. Discuss evaluation criteria: learning, task time and completion, acceptability.
  2. Conduct a walkthrough and a Keystroke Level Model (KLM) analysis.
  3. Summarize the major guidelines and standards.
  4. Conduct a usability test, an interview, and a survey.
  5. Compare a usability test to a controlled experiment.
  6. Evaluate an existing interactive system with human-centered criteria and a usability test.
HC4. Human-centered software development [elective]

Topics:

Learning objectives:

  1. Explain the basic types and features of human-centered development.
  2. Compare human-centered development to traditional software engineering methods.
  3. State three functional requirements and three usability requirements.
  4. Specify an interactive object with transition networks, OO design, or scenario descriptions.
  5. Discuss the pros and cons of development with paper and software prototypes.
HC5. Graphical user-interface design [elective]

Topics:

Learning objectives:

  1. Summarize common interaction styles.
  2. Explain good design principles of each of the following: common widgets; sequenced screen presentations; simple error-trap dialog; a user manual.
  3. Design, prototype, and evaluate a simple 2D GUI illustrating knowledge of the concepts taught in HC3 and HC4.
  4. Discuss the challenges that exist in moving from 2D to 3D interaction.
HC6. Graphical user-interface programming [elective]

Topics:

Learning objectives:

  1. Differentiate between the responsibilities of the UIMS and the application.
  2. Differentiate between kernel-based and client-server models for the UI.
  3. Compare the event-driven paradigm with more traditional procedural control for the UI.
  4. Describe aggregation of widgets and constraint-based geometry management.
  5. Explain callbacks and their role in GUI builders.
  6. Identify at least three differences common in cross-platform UI design.
  7. Identify as many commonalities as you can that are found in UIs across different platforms.
HC7. HCI aspects of multimedia systems [elective]

Topics:

Learning objectives:

  1. Discuss how information retrieval differs from transaction processing.
  2. Explain how the organization of information supports retrieval.
  3. Describe the major usability problems with database query languages.
  4. Explain the current state of speech recognition technology in particular and natural language processing in general.
  5. 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:

Learning objectives:

  1. Compare the HCI issues in individual interaction with group interaction.
  2. Discuss several issues of social concern raised by collaborative software.
  3. Discuss the HCI issues in software that embodies human intention.
  4. Describe the difference between synchronous and asynchronous communication.
  5. Design, prototype, and evaluate a simple groupware or group communication application illustrating knowledge of the concepts taught in HC4, HC5, and HC8.
  6. Participate in a team project for which some interaction is face-to-face and other interaction occurs via a mediating software environment.
  7. Describe the similarities and differences between face-to-face and software-mediated collaboration.

CC2001 Report
December 15, 2001