CSE 212 Software Engineering for User Interface and User Experience Design (3 credits)

Catalog description:

Principles of user interfaces (UI) and user experiences (UX) for software engineering. Psychological principles; Design methods such as task analysis and user-centered design. Projects demonstrating window, menu, and command design; voice and natural language I/O; response time and feedback; color, icons, sound.

Prerequisite:

CSE 271

Required topics (approximate weeks allocated):

  • Background on HCI including its underpinnings from psychology and cognitive psychology (2 weeks)
  • User interface evaluation techniques: heuristic evaluation, cognitive walk throughs (videotaped user testing) (1 week)
  • Task analysis and user-centered design (2 weeks)
  • Usability engineering processes; conducting experiments (1.5 weeks)
  • Conceptual models and metaphors (1 week)
  • Designing interfaces: using color, fonts, sound, animation (1 week)
  • Designing interfaces: screen layout, response time, feedback, error messages (1 week)
  • Designing interfaces for special devices. Use of voice I/O. (1 week)
  • Designing interfaces: internationalization, help systems, etc. User interface software architectures (2 weeks)
  • Expressing design rationale for user interface design (.5 week)
  • Collaborative and virtual environments (1 week)
  • Examinations, including review sessions (1 week)

Learning Outcomes

  1. Describe the core concepts of User Interfaces (UI) and User Experiences (UX) for software engineering
    • Define Human-Computer Interaction (HCI) and explain its importance
    • List and explain the key user interface design principles
      • Psychological principles for user interface design
      • Design principles from experience: visibility, affordance, and feedback
      • Other design principles: simplicity, structure, consistency, and tolerance
      • Design for disabilities, e.g., accessibility
    • Describe how a user interface could succeed or fail from a human diversity perspective
    • Understand the importance of a good user interface design
      • What is a good user interface design?
      • Problems of poor or bad user interfaces
    • Explain the different user interface interaction designs and styles and the tradeoffs involved in selecting one for a given software system
  2. Evaluate a user interface for usability and utility
    • Discuss evaluation criteria for a user interface
      • Why evaluate the usability of user interface designs?
      • Deciding on what you need to evaluate: the strategy
      • Planning who, what, when, and where
    • Evaluate a user interface based on the user interface design principles using heuristic evaluation, user observation, cognitive walkthroughs, and thinking aloud techniques
    • Design and conduct a usability test and analyze the results
  3. Apply the core concepts of HCI to building a User Interface
    • Define user-centered design and explain how it applies to user interface development
    • Perform a task analysis to develop requirements for a user interface prototype
    • Build a user interface prototype that is in accordance with HCI interface design principles
      • Design a UI prototype so that it supports internationalization
      • Demonstrate the consideration of the importance of response time and feedback in the prototype design and implementation user interface design principles
    • Explain and justify the design decisions made in the user interface prototype
      • Explain and justify the choice of design modalities implemented in the prototype
      • Describe which quality attributes were involved in decision-making and how they were implemented in the resulting system
      • Explain how visual design elements were chosen (color, icons, fonts, etc.)
    • Use Scenario-Claims- Analysis to capture task analysis results and the rationale for the designed system
  4. Describe the key HCI aspects of multi-media systems
    • Identify the key HCI issues involved in multi-media
    • Explain the advantages and disadvantages of using sound in a user interface
    • Identify areas where speech recognition would enhance the user experience
    • Compare different website implementations and describe how a website should be evaluated for usability
  5. Describe the HCI issues involved in collaboration and communication using a variety of collaborative tools and environments
    • Describe the advantages and disadvantages of synchronous and asynchronous group communication
    • Participate in a team project where some interaction occurs using a collaborative software environment
    • Participate in a class activity where the interaction occurs in a virtual environment