Training Wheels for the Command Line David Herrera and Nigel Ward Human-Computer Interaction International 2005, to appear Abstract Power users use the command line interface, novices use graphical user interfaces, and the threshold to progress from one to the other can be intimidating. Today even many otherwise technically-savvy users, including many computer-science students, have never passed that hurdle, and suffer from awkward and slow systems control and information access. We hypothesized that adding "training wheels" --- essentially wrapping a GUI around the command line --- would help people transition more easily into competent and confident command-line users. The idea of extending or improving the command line is of course not a new one. Past proposals include a GUI as a facade hiding the command line, an expert system to critique or correct command line input, and menu access to commonly used command line functionality. However there appears to have been no previous attempt to directly address the goal of easing the transition to the command line for GUI users. Constructing a command-line expression unaided can be a challenge, so our ``training wheels'' were designed to support the user doing so. The testbed system handled the Unix commands find, grep, and ls. First, we provided diverse help, examples, and reference information, broken down into small pieces, only presented when needed, and easily accessible as an integral part of the system. Second, we made almost everything click-able, so that a user could click on examples to copy them to the command line, click on radio buttons or checkboxes to add command options, click on sets of characters to build up regular expressions, and click on files and directories to add pathnames. Third, in every case, the user's actions were given feedback: for example, typing an option in the command-line pane caused the corresponding check-box to be selected and conversely. Fourth, the command line pane provided a grayed-out indication of the syntax of the command. Fifth, syntax errors and most execution errors were caught in the system and explained in terms of the command line expression, shielding the user from cryptic shell messages. Thus, by supporting the active participation of the user in the construction of commands, this interface was designed to help with hands-on learning of the Unix command line. To determine if these techniques helped novice users, we had 20 students, mostly lower division computer science students, use it to perform typical mid-level Unix tasks, such as searching for the number of lines containing a specified substring in a certain collection of files. For comparison, in the same session, we had each user also attempt a second set of tasks, of comparable difficulty, using the naked command line and a reference book. We intermittently observed them using the system, and their learning was evaluated with pre- and post-quizzes. Finally a questionnaire helped measure their own perceptions of their learning and the strengths and weaknesses of the system. Using our system, most subjects found the idea of the command line very interesting; many spent much more time on it than required. Comments indicated that it was perceived as more comfortable, faster, easier, providing more guidance, and requiring less effort than using just the book. Most of the students liked the system overall: about half considered it better than the reference book, and of the rest, a few considered it equal in value to the book, a few thought both the book and the system were needed, and a couple thought the book alone was sufficient. Good points of the system were that it was easier, faster, less error-prone, more "fun" and more "comfortable" than directly composing commands with reference only to the book. Weaknesses included bugs and limitations of the implementation and poorly worded help. Also, since the system was organized around Unix commands, not tasks, it didn't help users learn which command to use when. More seriously, it seemed that the system was less useful than the book for learning complex underlying concepts, such as regular expressions. The value of the system as a learning tool was positive, but not unambiguously so. Although it did not help users complete more tasks than the book, it did tend to help them do better on the quizzes. We were initially concerned that the ``training wheels'' would become a crutch, but most students tended to directly use the command line more over time. Overall the results suggest that such training wheels, wrapped around and tightly integrated with the command line, can help users attain proficiency with command languages.