{'fraction_non_alphanumeric': 0.02798789712556732, 'fraction_numerical': 0.0037821482602118004, 'mean_word_length': 5.681818181818182, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
ProLog2vec: Detecting Novices’ Difficulty in Programming Using Deep Learning

Encountering difficulties that emerge in programming learning are ubiquitous for novices. Those difficulties may reduce novices’ motivation for learning, even lead them to drop out. Automatically detecting the difficulties has been proved as an effective way to solve this problem. A potential method for the detection is to identify programmers’ behavioural patterns based on the sequences of programming events (e.g., editing, deleting, or debugging) when they experience programming difficulties. However, due to the diversity of these events, the plentiful difficulties generated from novices, and the naturally complicated behavioural patterns, accurately detecting the difficulties remains challenging. In this study, we propose a deep representation based on the programming events as the pre-treatment of a recurrent neural network with an attention mechanism to detect programming difficulty. This representation can be conducive to encode the complicated behavioural features (e.g., co-occurrence, sequences, and time intervals of the events) of the difficulty patterns for deep learning models. The results show that the accuracy of our method reaches 94%, which increases by 16% compared with the traditional machine learning model.