# Knowledge Graph and Personalized Answer Sequences for Programming Knowledge Tracing
## 2 Related Work  
In recent years, significant advancements have been made in knowledge tracing through the application of deep learning techniques. Deep Knowledge Tracing (DKT) [1], a model based on Recurrent Neural Networks (RNNs), marked a pivotal shift by eliminating the need for manual feature extraction and achieving higher accuracy in predicting student performance. Following DKT, various deep learning models have been proposed to further refine KT. Notable among these are RNN-based models, such as EERNN [10], DKT-DSC [11], and KQN [12], as well as memory network-based models like Deep-IRT [13] and DKVMN [14]. The integration of attention mechanisms has also been explored, leading to models like AKT [6], ATKT [15], and RKT [16], which offer improved performance by focusing on relevant parts of the input data. In addition, convolutional neural networks have been employed in KT models, such as CKT [17] and CRKT [18], to capture spatial dependencies within the data. Further enhancements in KT have been achieved by incorporating exercise text models (EXT) [19] and memory curves [20,21] to better reflect student learning behavior. Moreover, graph-based approaches have gained traction, with [PERSON] [7] introducing the Graph-based Knowledge Tracing (GKT) model, which represents relationships between KCs as a graph and frames the KT task as a time-series node classification problem within a Graph Neural Network (GNN). [PERSON] [22] expanded on this concept with the Graph-based Interactive Knowledge Tracing (GIKT) model, which leverages the relationships between exercises and KCs for embedding learning. Additionally, the SFBKT model [23] was introduced, incorporating a synthetically forgetting behavior method that utilizes both individual and group forgetting factors to enhance predictions of student performance.  
In programming KT, a BKT-based method for evaluating code quality and tracing knowledge states was introduced by [PERSON] [24], relying on manual rules and statistical analysis of code syntax. A programming KT model integrating code features with LSTM networks was developed by [PERSON] [25], using student-submitted code as input. [PERSON]'s [26] recurrent neural network model was also employed, where ASTs are decomposed into subtrees, and a non-parametric model is used for matrix representation of each subtree's root node. Building on this, a token-based method was employed by [PERSON] [27], in which code tokens form a vocabulary, with vector elements representing the TF-IDF values of tokens. The code2 vec model was used by [PERSON] [28] with DKT to trace student progress, representing code as abstract syntax trees divided into code paths, guided by learned weights. KT models using logistic regression and RNN based on the AST edit distance were proposed by [PERSON] [29], quantifying the distance between a student's intermediate solution and the optimal one. Lastly, student code was transformed into vector representations by [PERSON] [30], and error classification was used as a concept indicator, adding a cognitive layer to DKT for inferring students' conceptual skill levels.  
Our proposed method is built upon by these works, specifically addressing the limitations of existing programming KT models. Unlike prior models that often focus on single code features or specific exercises, a knowledge graph is integrated into our method to capture the relationships between diverse exercises and KCs. Additionally, the VAE is employed to model personalized learning trajectories, allowing for a better reflection of students' individualized learning progress and abilities. This approach combines a knowledge graph with personalized learning trajectory modeling. It not only improves the predictive accuracy of existing methods but also offers a more holistic understanding of students' knowledge states across different exercises and KCs.