Existing programming knowledge tracing methods have not deeply explored the relationships between knowledge concepts and programming questions or students’ codes, which leads to insufficient representation of programming questions and students’ codes and insufficient tracing of students’ knowledge states. To address these problems, this study proposes a programming knowledge tracing method based on a heterogeneous graph representation. We constructed a heterogeneous graph, where nodes represent the knowledge concept, programming question, and student code, and edges represent the relationships among knowledge concepts, programming questions, and student code. Subsequently, we leverage a graph structure learning algorithm to exploit the potential connections among them, aiming to enhance the graph structure information. Based on the graph, we further fully integrated the knowledge concept information into the representations of programming questions and student codes through the graph convolutional representation learning algorithm. Moreover, an attention mechanism is utilized to compute the effect of programming questions and student codes on the knowledge state and update the student's knowledge state in conjunction with the corresponding answer results. Furthermore, the proposed method provides an assessment of the mastery level for each knowledge concept rather than only assessing each question using traditional methods. Experiments on two datasets, CodeWorkout and CodeNet, show that the proposed method achieves an average improvement of 4.28% in ACC and 6.48% in AUC compared with the baseline models, validating the effectiveness of the proposed method.
Read full abstract