| Intelligent tutoring is a technology that provides personalized learning resources based on students’ learning situations,characteristics,and needs.Currently,intelligent tutoring research in the programming learning scenario faces challenges,such as the complexity of programming exercise representation and student ability assessment,difficulty in obtaining relevant data of cognitive psychology directly,designing tutoring strategies and evaluating model performance.To this end,this paper conducts research on intelligent tutoring algorithms for programming,with programming exercises,students,and tutoring strategies as the research objects.The research data of this paper is derived from the well-known Online Judge(OJ)systems,the effectiveness of the proposed models is verified through real data,demonstrating practical application value.The main innovations and contributions of this paper are summarized as follows:(1)In terms of programming exercises,in order to assist the tutoring model to explore the correlation among exercises through the submission programs of programming exercises,and to address the problem that the current Abstract Syntax Tree(AST)based program representation models do not consider dynamic information of programs,this paper proposes Dynamics-Aware Gated Graph Attention Neural Network.This model inputs the test cases of exercises into the program,obtains the frequency coefficient of each node in AST through code coverage statistics tools,introduces the frequency coefficient into the process of program representation,and achieves more accurate results in program classification task.(2)With regard to students,in order to address the problem of biased evaluation of students’ knowledge state caused by student code cloning behavior and judging methods in OJ systems,this paper proposes Code Originality and Correctness Aware Knowledge Tracing Model.The model calculates the text similarity and functional similarity between the programs submitted by students and other students’ submitted programs,optimal solution of exercises,respectively,to measure the probability of the existence of cloning behavior in the students’ submitted program and the actual correctness,so as to more accurately evaluate students’ knowledge level.(3)In terms of tutoring strategies,in order to address difficulty in obtaining relevant data of cognitive psychology directly,this paper proposes Memory and Cognition Merged Exercise Tutoring Model.Its features include: Taking elements in programming exercises that challenge students’ working memory as part of exercise features to assist the tutoring model to estimate difficulty of exercise.Using elements related to programming education to model forgetting and learning behaviors of students’ long term memory to help the tutoring model estimate students’ mastery level of knowledge points and programming language more accurately.Combining programming knowledge graph,in order that the model is able to handle complex and diverse relationships among knowledge points.Proposing strategies by reinforcement learning and efficient itemset mining algorithms to guide the model in dealing with situation of discontinuous cognitive development.The proposed model outperforms state-of-the-art exercise tutoring models in the next interaction exercise prediction task.(4)Further research is conducted on the tutoring strategy.In response to difficulty of providing exercises that maximize students’ programming ability and issue of evaluation metrics not being able to effectively measure whether the exercises provided by model can improve students’ knowledge level,Exercise Tutoring Model Based on Ability Maximization Orientation is proposed.It uses deep reinforcement learning technology,takes knowledge tracing model as student simulator and treats student simulator’s performance difference on all the exercises before and after answering exercises provided by tutoring model as immediate reward.This enables model to learn which exercises can maximize students’ ability and provide such exercises to students to achieve the most significant improvement in their programming ability.A new evaluation metric for the tutoring model is proposed,which can effectively measure the extent of improvement in students’ knowledge level after answering the exercise provided by the model.The research work in this paper can be applied to the field of intelligent tutoring for programming,which can help cultivate programming talents and has reference significance for tutoring in other disciplines. |