CS3004 Human-Computer Interaction

This course studies the design and assessment of modern human-computer interfaces. Students will execute a complete design-prototype cycle that includes needs analysis, requirement analysis, task analysis, conceptual design, scenario development, and then prototyping a functional mock-up suitable for supporting a user study. Students will then conduct a study using their prototype with real users, collect data, and produce a report that presents their data with a final user experience (UX) specification suitable for implementation. Students will understand how UX fits within the overall product development context and within new emerging paradigms such as mobile computing, wearables, pure voice (AI) interfaces, and others.

Lecture Hours


Lab Hours


Course Learning Outcomes

  • Determine what an interface to a computing system needs to be able to do, and specify the requirement in unambiguous, clear language that a programmer can implement.
  • Select interaction techniques and components that fit the characteristics of the task and that consider the capabilities of the user, the nature of the operating environment, and the needs of the outcome.
  • Prototype the interface and interaction components quickly and efficiently but with enough detail to fine tune the specification via iterative analysis and redesign.
  • Analyze a prototype interface to measure its effectiveness, including developing meaningful performance metrics, designing the study, collecting the data, interpreting the data, and presenting the results.
  • Plan for the implementation of complex user interfaces, including software architectures, use of design tools, and preparing for maintenance and changes.
  • Become familiar with current dominant issues in interface design including mobile devices, web applications, designing secure interfaces, fault tolerance, and collaborative systems.