Using Deep Learning to Improve Automated Program Static Assessment

来源 :计算机教育 | 被引量 : 0次 | 上传用户:atishi123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Evaluation is an essential part of the teaching process, especially in the programming course. Both students and teachers can benefit significantly from automatic program evaluation. It shortens the time required for assessment so that students can get immediate feedback. At the same time, it can also significantly reduce the workload of teachers. Currently, the automated program assessment system mainly uses a combination of static and dynamic analysis methods. The system is faced with two crucial problems of the unfinished code evaluation and the template code construction. This paper proposes a method of combining deep learning with static analysis. The syntax tree repair is used to solve the problem that the code with compiling errors cannot generate the correct syntax tree. Moreover, the target code is converted to a subset of solution space through the syntax tree standardization, which reduces the number of template code needed. Based on deep learning, the embedded token vector keeps the code' s context all the time, which ensures that the lexical-semantic remains unchanged as much as possible after the syntax tree changes. Finally, the standardized tree is represented as a vector by the recursive neural network. Cosine similarity between target and template code vectors is used as an evaluation score. The experiment shows that the similarity scores obtained by this method are consistent with the expert scores. This method can provide support for future research, such as difficult feedback and has great significance.
其他文献
会议
The transition from traditional learning to practice-oriented programming learning will bring learners discomfort. The discomfort quickly breeds negative emotio
In online programming education, if teachers can determine any difficulties their students are experiencing and provide support, it would significantly improve