Report on a User Test and Extension of a Type Debugger for Novice Programmers
This work addresses usability issues in type debugging tools for novice programmers, but it is incremental as it builds on an existing debugger.
The paper tackled the problem of novice programmers struggling to fix type errors with an existing type debugger by analyzing user tests and extending the tool with expression-specific error messages and language levels, resulting in identification of difficult-to-explain type errors based on tests with 40 novice students.
A type debugger interactively detects the expressions that cause type errors. It asks users whether they intend the types of identifiers to be those that the compiler inferred. However, it seems that novice programmers often get in trouble when they think about how to fix type errors by reading the messages given by the type debugger. In this paper, we analyze the user tests of a type debugger and report problems of the current type debugger. We then extend the type debugger to address these problems. Specifically, we introduce expression-specific error messages and language levels. Finally, we show type errors that we think are difficult to explain to novice programmers. The subjects of the user tests were 40 novice students belonging to the department of information science at Ochanomizu University.