Collaborators: Ben Lafreniere, George Fitzmaurice, Tovi Grossman
A wide variety of tools for creating physical computing systems have been developed, but getting started in this domain remains challenging for novices. We introduce test-driven physical computing tutorials, a novel application of interactive tutorial systems to better support users in building and programming physical computing systems. These tutorials inject interactive tests into the tutorial process to help users verify and understand individual steps before proceeding. We begin by presenting a taxonomy of the types of tests that can be incorporated into physical computing tutorials. We then present ElectroTutor, a tutorial system that implements a range of tests for both the software and physical aspects of a physical computing system. A user study suggests that ElectroTutor can improve users’ success and confidence when completing a tutorial, and save them time by reducing the need to backtrack and troubleshoot errors made on previous steps.
- # content for an early step
title: Firing up the Arduino
description: | # markdown is rendered into rich HTML views.

First, connect the Arduino board to the USB port.
To make sure it is connected ok, try uploading the starter code to it.
The lights on the top of the board flash as it receives new code.
tests: # tests can specified for each step
-
title: Board Power Test
description: Did the Arduino board light up after plugging it in?
onerror: Make sure that the board is powered with the USB plug!
form: manual
-
title: Simple Upload Test
description: Press the button below to upload code to the board.
onerror: Make sure that the board is plugged with the correctly labeled cable!
form: upload