本数据集由CCKS2021论文“MOOPer:A Large-scale Dataset of Practice-oriented Online Learning” 发布。本文档对数据集内数据字段含义进行详细介绍,其他信息可参考原文获取。
点击此处下载MOOPer数据集
什么是MOOPer?
随着在线教育迅速发展,大规模在线开放课程(Massive Open Online Course,MOOC)兴起,为教学创新探索了前进方向。然而,目前的在线教育缺乏实践练习机制,导致“学”与“练”产生脱节,因此大规模在线开放实践(Massive Open Online Practice,MOOP)应运而生。
当前越来越多在线学习平台提供实践环境,EduCoder是其中的典型代表。EduCoder是信息技术类专业大规模在线实践教学平台,支持信息技术类专业一站式全栈化教学、实验、实战和科研活动。
我们抽取EduCoder平台2018-2019年间用户参与实践练习的交互数据,并将课程、实践、关卡、知识点的属性信息及其之间的相互关系建模为知识图谱,以此构建了大规模实践导向型的在线学习数据集MOOPer。
MOOPer数据集主要分为两个部分:交互数据与知识图谱。
交互数据(MOOPer/interaction/)包含2,532,524条实践练习数据 (challenge_interaction.csv), 21,606,390条系统反馈数据(outputs.csv),15,054条用户论坛讨论数据(discussions.csv)。
知识图谱 (MOOPer/knowledgeGraph/) 包含 11类实体(entity),10类关系(relation)。
交互数据
-
实践练习数据(challenge_interaction.csv) 包含用户与关卡(challenge)交互记录。
-status:用户当前评测状态。0:用户未通过该关卡;1:用户提交结果正在评测;2:用户通过该关卡;3:用户未开启本关卡
-final_score:用户在该关卡的得分
-answer_open:用户是否查看参考答案。1:是;0:否
-retry_status:用户是否再次尝试本关卡。1:是;0:否
-star:用户对本关卡评分。等级为1~5,0为未评分
-evaluate_count:用户评测次数
-open_time:本交互开启时间
-end_time:本交互结束时间
-
系统反馈数据(outputs.csv) 包含每个测试集的评测输出记录。
-test_set_position:测试集的位置(一个关卡可能有多个测试集)
-actual_output:实际测试集输出
-result:是否通过关卡。1:是;0:否
-compile_success:是否编译成功。1:是;0:否
-query_index:用户第几次测评
-
用户论坛讨论数据(discussions.csv) 包含用户在论坛的交互讨论记录。
-discuss_id:该条记录的id
-dis_id:讨论组id
-parent_discuss_id:该条记录出现在哪条评论的回帖区
-root_discuss_id:该条记录回复的是哪条记录
-reply_discuss_id:该条讨论的回复
-praises_count:该条讨论点赞数
知识图谱
实体之间存在天然的层级关系:课程包含多个章节和实训,章节和实训间存在对应关系;一个实训包含多个关卡,每个关卡注重对一个或多个知识点的考察。
此外,不同关卡共同体现某一知识点(topics)或不同课程共用一个实训,都会丰富实体间的关系。下面介绍几个典型实体属性字段表示的含义。
- 课程(course.csv)
- name:课程名称
- description:课程介绍
- visits:课程访问人数
- created_at:课程创建时间
- publish_time:课程发布时间
- learning_notes:学习须知
- 实训(exercise.csv)
- name:实训名称
- visits:实训访问人数
- fork_from: fork母本id
- created_at:创建时间
- publish_time:发布时间
- 章节(chapter.csv)
- name:章节名称
- description:章节介绍
- created_at:章节创建时间
- 关卡(challenge.csv)
- name:关卡名称
- task_pass:题目描述
- answer:参考答案
- score:分值
- difficulty:难度
- praises_count:点赞数
- 教师(teacher.csv)
- gender:性别。0:男,1:女
- technical_title:职务级别
- 学生(student.csv)
- brief_introduction:个性签名
- gender:性别。0:男,1:女
- created_at:账户创建时间
MOOPer可以用来做什么
MOOPer提供丰富的交互数据和全面的辅助信息,不仅可以支持多种任务,还为后续对不同领域的任务和模型进行融合提供了数据支持。
支持任务
Dropout Prediction 辍学预测根据学生的早期在课程学习中的行为数据预测其放弃该门课程的可能性。
Knowledge Tracing 知识追踪根据学生过去的答题情况对学生的知识掌握情况进行建模,从而得到学生当前知识状态表示的一种技术。
Recommendation 学习材料推荐根据用户的交互记录对用户喜好进行个性化建模,为其推荐感兴趣的学习材料(如课程、章节、知识点、实训、关卡等)。
Intelligent Tutoring 智能导学评估建模学习者知识状态,模拟人类的1v1教学为用户提供学习指导。
除此之外,MOOPer还支持许多教育数据挖掘任务,有助于研究者深入探究学生学习过程,提升在线学习效果。
联合模型
MOOPer提供丰富的数据,支持不同任务的融合。可行的思路之一是将知识图谱表示学习与上述任务进行结合,例如可以将知识图谱嵌入(Knowledge Graph Embedding,KGE)、图神经网络(Graph Neural Network,GNN)、图卷积神经网络(Graph Convolution Graph)等算法与教育数据结合,使用辅助信息提升模型效果。