A Mixed-Methods Study of Novice Programmer Interaction with Python Error Messages
The ability to interpret error messages in order to find and fix bugs is an essential skill for novice programmers. Unfortunately, the technical language of most error messages can hinder the progress of CS1 students and can lead to feelings of confusion and frustration. A potential intervention for CS educators is the use of enhanced error messages that utilise natural-language geared towards novice learners, but the current discourse in CS Education regarding benefits of such messages is inconclusive. In this paper, we describe a planned, semi-controlled experiment running parallel to a CS1 course at the University of Toronto Scarborough. The study aims to build upon existing work in quantifying the effects of enhanced error messages by incorporating additional quantitative metrics, usability surveys, student feedback, and semi-structured interviews. The additional methods serve to measure not only the effects on error recovery, but student satisfaction, sense of frustration and overall attitude towards error messages and debugging.
An Effective Approach to Enhancing Compiler Error Messages
One of the many challenges novice programmers face from the time they write their first program is inadequate compiler error messages. These messages report details on errors the programmer has made and are the only feedback the programmer gets from the compiler. For students they play a particularly essential role as students often have little experience to draw upon, leaving compiler error messages as their primary guidance on error correction. However these messages are frequently inadequate, presenting a barrier to progress and are often a source of discouragement. We have designed and implemented an editor that provides enhanced compiler error messages and conducted a controlled empirical study with CS1 students learning Java. We find a reduced frequency of overall errors and errors per student. We also identify eight frequent compiler error messages for which enhancement has a statistically significant effect. Finally we find a reduced number of repeated errors. These findings indicate fewer students struggling with compiler error messages.
Transformation from availability expression to failure frequency expression
The problem of computing the system's Failure Frequency is reduced to the problem of computing its Availability. This is performed by a transformation operator. However, the existing transformation operator is not practical because its transformation time increases exponentially with system size. To overcome this difficulty, this paper proposes a new method of transforming the Availability expression of a system into the corresponding Failure Frequency expression of the system. This method is based on a matrix approach using a 2 /spl times/ 2 matrix consisting of 0, Availability, and Failure Frequency in an appropriate manner. This transformation also enables algorithms for computing the Availability of a system to be transformed into algorithms for computing its Failure Frequency by replacing parameters and operations with matrix parameters and operations. The computation time after transformation is linear with respect to the original Availability algorithm. This implies that the problems of computing other well-known reliability measures including, Availability, Unavailability, MTBF, MTTR, MCT, Failure Rate, Failure Rate, and Failure Frequency, are reduced to only the Availability computation problem.