Knowledge Areas, Topics, and Learning Outcomes
Topics and Learning Outcomes for the Knowledge Areas explored in this course are based on the
ACM/IEEE Curriculum Guidelines for Undergraduate Degree Programs in Computer Science (2013).
That report associates one of three levels of mastery with each Learning Outcome. The mastery levels are defined as:
- Familiarity: The student understands what a concept is or what it means.
This level of mastery concerns a basic awareness of a concept as opposed to
expecting real facility with its application.
It provides an answer to the question “What do you know about this?”
- Usage: The student is able to use or apply a concept in a
Using a concept may include, for example,
appropriately using a specific concept in a program,
using a particular proof technique,
or performing a particular analysis.
It provides an answer to the question “What do you know how to do?”
- Assessment: The student is able to consider a concept from
multiple viewpoints and/or justify the selection of a
particular approach to solve a problem.
This level of mastery implies more than using a concept;
it involves the ability to select an appropriate
approach from understood alternatives.
It provides an answer to the question “Why would you do that?”
This course explores the following (alphabetically-listed) knowledge areas, topics, and learning outcomes (click on one of the links below to jump to details):
For end-users, the interface is the system. So design in this domain must be interaction-focused and human-centered. Students need a different repertoire of techniques to address this than is provided elsewhere in the curriculum.
- Contexts for HCI (anything with a user interface, e.g., webpage, business applications, mobile applications, and games)
- Processes for user-centered development, e.g., early focus on users, empirical testing, iterative design
- Different measures for evaluation, e.g., utility, efficiency, learnability, user satisfaction
- Usability heuristics and the principles of usability testing
- Physical capabilities that inform interaction design, e.g., color perception, ergonomics
- Cognitive models that inform interaction design, e.g., attention, perception and recognition, movement, and memory; gulfs of expectation and execution
- Social models that inform interaction design, e.g., culture, communication, networks and organizations
- Principles of good design and good designers; engineering tradeoffs
- Accessibility, e.g., interfaces for differently-abled populations (e.g., blind, motion-impaired)
- Interfaces for differently-aged population groups (e.g., children, 80+)
- Discuss why human-centered software development is important. [Familiarity]
- Summarize the basic precepts of psychological and social interaction. [Familiarity]
- Develop and use a conceptual vocabulary for analyzing human interaction with software: affordance, conceptual model, feedback, and so forth. [Usage]
- Define a user-centered design process that explicitly takes account of the fact that the user is not like the developer or their acquaintances. [Usage]
- Create and conduct a simple usability test for an existing software application. [Assessment]
CS students need a minimal set of well-established methods and tools to bring to interface construction.
- Principles of graphical user interfaces (GUIs)
- Elements of visual design (layout, colour, fonts, labelling)
- Task analysis, including qualitative aspects of generating task analytic models
- Low-fidelity (paper) prototyping
- Quantitative evaluation techniques, e.g., keystroke-level evaluation
- Help and documentation
- Handling human/system failure
- User interface standards
- For an identified user group, undertake and document an analysis of their needs. [Assessment]
- Create a simple application, together with help and documentation, that supports a graphical user interface. [Usage]
- Conduct a quantitative evaluation and discuss/report the results. [Usage]
- Discuss at least one national or international user interface design standard. [Familiarity]
To take a user-experience-centered view of software development and then cover approaches and technologies to make that happen.
An exploration of techniques to ensure that end-users are fully considered at all stages of the design process, from inception to implementation.
As technologies evolve, new interaction styles are made possible. This knowledge unit should be considered extensible, to track emergent technology.
Computer interfaces not only support users in achieving their individual goals but also in their interaction with others, whether that is task-focused (work or gaming) or task-unfocused (social networking).
Much HCI work depends on the proper use, understanding and application of statistics. This knowledge is often held by students who join the field from psychology, but less common in students with a CS background.
Some curricula will want to emphasize an understanding of the norms and values of HCI work itself as emerging from, and deployed within specific historical, disciplinary and cultural contexts.
- Intellectual styles and perspectives to technology and its interfaces
- Consideration of HCI as a design discipline
- Participatory design
- Critically reflective HCI
- Critical technical practice
- Technologies for political activism
- Philosophy of user experience
- Ethnography and ethnomethodology
- Indicative domains of application
- Arts-informed computing
- Explain what is meant by “HCI is a design-oriented discipline”. [Familiarity]
- Detail the processes of design appropriate to specific design orientations. [Familiarity]
- Apply a variety of design methods to a given problem. [Usage]