摘要
面对程序设计OJ(Online Judge,在线判题)平台上的大量习题,学生选题时往往带有盲目性,不利于学生快速提高程序设计能力.现有的习题推荐方法往往忽视了认知心理学与学生答题行为的联系,没有充分关注导致学生信息认知过程具有差异性的因素对解题的影响.本文基于认知心理学提出一种记忆与认知融合的OJ习题推荐方法,该方法结合认知心理学中关于工作记忆、长时记忆、外部信息以及非连续性认知发展的工作,通过如下方式考虑这4种因素对学生答题行为的影响:首先,以OJ习题中4个会对学生的工作记忆造成挑战的要素作为习题特征的一部分来辅助推荐方法估计习题的难度,分别为习题描述词数、输入格式词数、输出格式词数和是否为英文题干;然后,使用4个要素(相同知识的学习时间间隔、相同知识的学习次数、学习时间间隔和总体学习次数)建模学生长时记忆的遗忘与学习行为,拟合学生因这两种行为导致的知识状态变化,帮助推荐方法更准确地估计学生的知识点和编程语言掌握程度;接着,将OJ习题加入本文所构造的程序设计领域知识图谱,并在习题与其所考查的知识点之间建立关联,利用知识图谱嵌入方法将习题编码为一个融入了外部知识点相关性信息的向量作为习题的知识点表征,令推荐方法能够处理知识点间复杂多样的关系;最后,提出了2种策略用以指导推荐方法处理非连续性认知发展(指学生的知识状态在某个时间点突然发生较大变化)的情况,提升推荐结果的准确性,第1种策略运用强化学习技术并以推荐方法生成的答题序列与未来真实答题序列的相似度作为奖励,支持推荐方法生成与未来真实答题序列更一致的答题序列,从而使推荐方法在给学生推荐下一道习题时可以考虑学生的知识状态在未来发生的突然变化,第2种策略修改了高效用项集挖掘算法,使其能够通过学生行为挖掘知识点之间的隐式后序关系,帮助推荐方法预测学生在未来突然掌握或关注的知识点.通过在业界知名OJ平台洛谷和CodeForces数据集上的实验,表明该方法相较于目前常见的习题推荐算法具有更高的性能.
- 单位