Modeling Negative Affect Detector of Novice Programming Students through Keyboard Dynamics and Mouse Behavior

Document Type


Publication Date



Learning to program is vital to novice programming students. During their learning process, particularly when they are making a program, affect plays a significant role. Affect may either motivate them to logically think and effectively respond to the programming activities or, it may make them to disengage or even withdraw from the programming task. Negative affect detection in the context of novice education can cue an intervention. When negative affect is detected, it opens an opportunity for either the teacher or an automated system to change the novice’s disposition. Hence, this study aims to develop affective models for detecting negative affective states, particularly boredom, confusion, and frustration, of novice programming students through keyboard dynamics and mouse behavior. It attempts to discover patterns that reflect the relationship of student affect with keystrokes and/or mouse features. The features were extracted from a customized mouse-key logs gathered from 55 novice C++ students and were labeled with the affective state observed from the corresponding video logs, which were gathered simultaneously with the mouse-key logs. Features that are highly correlated to affect detection were selected through a data mining tool and these were used to train well known classifiers. The results were analyzed in terms of some measures such as accuracy rate and kappa statistic to determine the acceptable models and to identify notable patterns that reflect the recognition of negative affect in terms of the selected features. Lastly, the models were tested using a pre-labeled test set.