Have you ever been frustrated at being unable to get a program to do what you want it to do? The interaction between a program and user (Human-Computer Interface), is an important consideration when writing programs. We want our students to be able to write good, ‘user friendly’, programs.
These concepts come up in Computational thinking for digital technologies Progress Outcomes 4, 5, 6 and 8, and permeate the design and evaluation of all digital systems that will be used by humans.
We touched on HCI (human-computer interface) in pīkau 9 (Getting programs right: the end-user, and fast algorithms). You probably already know how frustrating it can be when you can’t get a program to do what you want it to do.
When you’re teaching students how to use software, you might be aware that sometimes they have trouble seeing how to use the interface, or they have a misunderstanding of how it should be used. These are all usual situations, but good evaluation and design of interfaces can reduce the problems that they can cause.
Unfortunately the digital world has many examples of confusing interfaces. Students need to become sensitive to recognising when it is the fault of the programmer rather than the user, and write programs in a way that’s mindful of the user.
The following video discusses how we can approach evaluating interfaces for usability.
Evaluating interfaces applies to apps, web pages, programs, operating systems, gadgets - any situation where a human is interacting with a digital system. Even beginner programs will have some sort of interface, and therefore opportunities to think about how they look to the user. Students who don’t naturally empathise with users need to get used to thinking about them if their programs are to be successful; and those students who do value empathy can see that there’s an important role for them in designing digital systems.
Computers are getting more capable all the time, and this improved capability should be used to help humans, and not hinder them.
HCI appears explicitly in Computational Thinking for DT in the following progress outcomes:
The following video highlights some usability issues with a light-hearted analogy to ordering drinks in a restaurant. It can be shown to students to give a human face to these issues.
Computer Science Field Guide: Human Computer Interaction:
Knowing how to evaluate an interface is useful, not only when critiquing someone else’s interface, but also when writing your own program. In this video Tim and Joanne go over three approaches to support writing good interfaces.
The ‘Think aloud’ protocol, heuristics, and just generally understanding how humans function in everyday life, are important things to consider when writing programs. There are many other techniques available, but these ones are useful in a school setting.
For more information about the “Think-aloud protocol” mentioned here see the CS Field Guide: Human Computer Interaction. For Nielsen’s heuristics visit Nielsen’s website. The CS Field Guide has more information about the kind of errors that people make and need to be taken account of in interface design.
In this video Tim explains what exactly heuristics are and looks more closely at Jakob Nielsen’s list.
A more detailed explanation of Nielsen’s 10 heuristics can be found at CS Field Guide: Usability heuristics
The main website for the heuristics mentioned in this video is here.
Read more about how they are used in the context of “Expert testing”.
As you go about everyday life, keep an eye out for interfaces that slow you down or frustrate you. Do they have a problem that can be described by one or more of Nielsen’s Heuristics? Have you seen people blame themselves when it’s really the interface that it the issue?
Students are able to use evaluation methods that are used in industry (think aloud protocol, and heuristic evaluation). Refer to Outcome Development and Evaluation component of the tech practice strand on TKI for more information.
Students understand the unique nature of digital interfaces; that the speed, flexibility, and capacity of digital systems, means that we can roll out small and big changes easily to many users, and that we can put higher expectations on the programmer to reduce the effort for the end user. Refer to Technological Systems component of the technological knowledge strand on TKI for more information.
The effect of user interface issues can range from mild frustration to life-threatening problems. Students need to be sensitive to these problems. Refer to Characteristics of technological outcomes component of the nature of technology strand on TKI for more information.
To incorporate this into an existing teaching and learning programme teachers can take some programs written by a class and have students from another class evaluate those programs for usability. The students who wrote the programs could use a think aloud protocol with those from the other class; or they could try to find interface issues that are examples of Nielsen’s heuristics.
To be able to create good computer programs it is important to have a good understanding of human-computer interaction (HCI). It can take extra effort to write programs that are easy to use, but a combination of good programming skills and empathy for the end-users of the system makes for a more effective interface.
If you are working through this pīkau as a group feel free to download and use these facilitation notes: