中文题名: | 基于深度学习的编程题目难度预测及推荐研究 |
姓名: | |
保密级别: | 公开 |
论文语种: | chi |
学科代码: | 078401 |
学科专业: | |
学生类型: | 硕士 |
学位: | 教育学硕士 |
学位类型: | |
学位年度: | 2024 |
校区: | |
学院: | |
研究方向: | 教育信息工程 |
第一导师姓名: | |
第一导师单位: | |
提交日期: | 2024-06-03 |
答辩日期: | 2024-05-30 |
外文题名: | RESEARCH ON DIFFICULTY PREDICTION AND RECOMMENDATION OF PROGRAMMING PROBLEMS BASED ON DEEP LEARNING |
中文关键词: | |
外文关键词: | Programming problem recommendation ; Programming problem difficulty prediction ; Personalized recommender system ; Deep learning |
中文摘要: |
随着现代社会的高度信息化,社会对编程人才的需求日益增长,编程教学成为了中小学的重要教学内容。为了提升编程学习效果,学生需要进行编程练习以巩固编程知识、提升编程能力。许多在线编程系统为学生提供了大量题目以帮助学生进行全方位的练习,然而面对大量的选择,学生可能难以找到适合自己的题目。若选择过难的题目,可能会产生强烈的挫败感,甚至失去学习动力,而若是选择过简单的题目,又难以保证学习效果。个性化推荐技术是解决上述问题的重要手段,可以精准地帮助学生找到适合的题目,从而提升学生的学习效果。 为了更好地基于学生的知识结构和能力水平推荐合适的编程题目,本研究面向基于深度学习的编程题目难度预测及推荐系统开展研究。具体来说,研究内容可以分为四个部分。第一,为了解决部分编程题目缺乏难度标签的问题,本研究运用深度学习技术,构建了编程题目难度预测模型,对搜集得到的学生编程题目提交数据进行筛选、清洗,得到了近13万条数据,基于CodeBERT模型对于这些数据中的代码进行语义表征,再围绕通过率转化得到的题目难度做分类任务,从而完成基于代码的题目难度预测。第二,为了推荐符合学生知识和能力水平的编程题目,本研究结合基于知识的个性化推荐技术和项目反应理论,构建了编程题目推荐模型,根据学生的答题记录对学生的水平进行诊断以更新学生模型,然后围绕学生模型、知识模型和题目模型使用推荐规则,完成基于知识和难度的编程题目推荐。第三,本研究将编程题目难度预测模型和编程题目推荐模型整合到编程教学平台中,开发了编程题目难度预测及推荐系统,学生可以基于此系统获得适合自己水平的编程题目,进行个性化的学习,教师则是可以借助此系统帮助满足学生个性化的学习需求,还可以根据系统诊断的学生能力水平进行针对性的指导。本研究在试用后对学生和教师展开问卷调查,结果显示师生对于本系统的技术可接受度较高,系统具有一定的实用价值。第四,为了验证所开发编程题目推荐系统对学生编程成绩、认知负荷和自我效能感的影响,本研究面向初中一年级的学生展开教学实验,实验结果表明基于知识和难度的编程题目推荐系统能够帮助学生有效提升编程成绩,降低内部认知负荷以及提升编程自我效能感。 总之,本研究使用深度学习技术、基于知识的个性化推荐技术、项目反应理论设计并开发了编程题目难度预测及推荐系统,并且通过实验证明了此系统对于学生的编程成绩和自我效能感有良好的提升作用,并且能在一定程度上降低学生的内部认知负荷。本研究对于编程题目难度预测领域研究,以及个性化推荐技术在编程题目练习领域的研究和实践有一定的指导意义。 |
外文摘要: |
Along with the development of modern informationalized society, the demand for programming talent has been growing, making programming education an important part of the curriculum in primary and secondary schools. To enhance the effectiveness of programming learning, students need to engage in programming exercises to consolidate their programming knowledge and improve their programming skills. Many online programming systems provide a plethora of problems to help students to practice comprehensively. However, faced with a large number of choices, students might find it difficulty to get suitable problems. If they choose problems that are too difficult, they may experience a strong sense of frustration, potentially losing their motivation to learn. On the other hand, if they select problems that are too easy, it can be difficult to ensure effective learning outcomes. Personalized recommendation technology is an important means to address the aforementioned issues, as it can accurately help students find suitable problems and thus improve their learning effectiveness. To better recommend appropriate programming problems based on students' knowledge structures and ability levels, this study focuses on researching a deep learning-based system for difficulty predicting and recommending for programming problems. Specifically, the research can be divided into four projects. First, to address the issue of programming problems lacking difficulty labels, this study utilizes deep learning techniques to construct a difficulty prediction model for programming problems. Nearly 130,000 data entries are obtained after filtering and cleaning the collected data from student programming problem submissions. Then the CodeBERT model is employed to generate semantic representations of the code within this dataset. Subsequently, a classification task is performed based on the difficulty levels derived from pass rates, thereby completing the code-based problem difficulty prediction. Second, in order to recommend programming problems that match the students' knowledge and ability levels, this study combines knowledge-based personalized recommendation technology with Item Response Theory (IRT) to construct a programming problem recommendation model. This model diagnoses students' knowledge and ability levels based on their answer records to update the student model. Subsequently, recommendations are made based on the student model, the knowledge model, and the problem model using recommendation rules, thereby completing knowledge- and difficulty-based programming problem recommendations. Third, this study integrates the programming problem difficulty prediction model and programming problem recommendation model into a programming teaching platform, developing a system for difficulty predicting and recommending of programming problems. Students can use this system to access programming problems tailored to their ability levels, enabling personalized learning. Teachers, on the other hand, can leverage this system to help meet students' individualized learning needs and provide targeted guidance based on the students' ability levels diagnosed by the system. After a trial use, a questionnaire survey is conducted among students and teachers, and the results show that both teachers and students have a high level of technical acceptance of the system, indicating that the system has certain practical value. Fourth, to verify the impact of the developed programming problem recommendation system on students' programming performance, cognitive load, and self-efficacy, this study conducts a teaching experiment among first-year junior high school students. The experimental results indicate that the knowledge and difficulty-based programming problem recommendation system can effectively improve students' programming performance, reduce their internal cognitive load, and enhance their programming self-efficacy. In summary, this study utilizes deep learning technology, knowledge-based personalized recommendation technology, and item response theory to design and develop a system for difficulty predicting and recommending for programming problems. Through experimentation, the system demonstrates a positive impact on students' programming performance and self-efficacy, while also reducing internal cognitive load to some extent. This research provides valuable guidance for the research of programming problem difficulty prediction, and the research and practice of personalized recommendation technology in the field of programming exercises. |
参考文献总数: | 96 |
馆藏号: | 硕078401/24015 |
开放日期: | 2025-06-03 |