# Mining on Students' Execution Logs and Repairing Compilation Errors Based on Deep Learning
## 3 Mining on Students' Execution Logs
Error types E1, E2, E3, and E4 contain relevant keyword information in the error description. The graph attention layer aids the model in connecting the key content in the compiler description with the corresponding occurrences in the code, even when they span multiple lines. The capsule network layer significantly improves the repair effectiveness for error types with complex error patterns and challenging repair mode determination based on the compiler description information. Error types E3, E4, E5, E6, and E7 contain diverse repair patterns. The capsule network layer is adept at extracting deep semantic information and generating higher-order features, enabling the model to make more informed decisions regarding deep-level repair patterns. ## 7 Discussions and Limitations

With the expansion of programming courses, many educational institutions have begun adopting blended learning models that combine both online and offline methods [29]. The introduction of online intelligent learning systems allows for targeted improvement of students' learning outcomes by providing immediate feedback and assessment [30]. During programming, students can utilize our tool to receive timely and relevant error feedback after submitting erroneous programs, including more precise error locations and suggested repair patches. Additionally, the error examples submitted by students can further contribute to the training of the repair model. Currently, the parallel processing efficiency of our tool needs further enhancement to cope with a large volume of requests. It is worth noting that the program sample mining method in this paper also relies on manual review to exclude invalid repair examples, aiming for higher-quality program sample pairs. Additionally, the multiline program repair in this study depends on the compiler for verification. However, the reduction of compiler feedback information during the iterative repair process sometimes cannot accurately represent the effectiveness of partial repairs. Further improvement in optimizing the compiler's feedback information could potentially enhance the success rate of program repair. Our approach has significant limitations in terms of its ability to repair certain types of errors. Firstly, our method is only applicable to single-file programs and does not examine included files. Regarding #include header file declarations, we consider them as a whole input to the model, hence we are unable to repair errors in header file declarations. Secondly, although the specific values of string and numeric constants typically do not impact program syntax, during the abstraction process, some erroneous program contents may be mistakenly identified as constants and anonymized. This, in turn, hampers the effectiveness of repairing such errors. \begin{table}
\begin{tabular}{c c c} \hline
**Error Type** & **Model** & **RepairAcc** \\ \hline \multirow{4}{*}{E5} & Base & 43.5\% \\  & Base + GA & 43.5\% \\  & Base + GA + CodeCaps & 47.8\% \\  & Base + GA + CodeCaps + MsgCaps & 52.2\% \\ \hline \multirow{4}{*}{E6} & Base & 65.6\% \\  & Base + GA & 67.4\% \\  & Base + GA + CodeCaps & 75.4\% \\  & Base + GA + CodeCaps + MsgCaps & 75.4\% \\ \hline \multirow{4}{*}{E7} & Base & 35.0\% \\  & Base + GA & 35.0\% \\ \cline{1-1}  & Base + GA + CodeCaps & 42.2\% \\ \cline{1-1}  & Base + GA + CodeCaps + MsgCaps & 55.6\% \\ \hline \end{tabular}
\end{table} 
Table 8: _Cont._Due to the increased computational complexity caused by the dynamic routing algorithm and iterative computing process in capsule networks, the training time is prolonged [31]. In order to address specific or novel error types, we need to augment the training data with samples containing these new error types and retrain the model. As a result, our repair model requires larger computational resources when facing larger-scale datasets. Recently, there has been significant research interest in leveraging large-scale models for code generation tasks [32; 33; 34].