1. 引言
近年来信息技术的迅猛发展,根据中研普华研究院《2025-2030年国内外教育科技行业全景分析与发展战略规划报告》分析,预计2025年全球教育科技市场规模突破6500亿美元。政策层面,中国《教育强国建设规划纲要(2024-2035年)》明确提出2025年教育专网全覆盖、2030年AI教学助手100%教师配备的目标。在这一背景下,教育领域的服务模式正在经历显著的变革,智能教育系统的迅速发展,使得个性化学习和智能答疑成为教育教学不可或缺的部分。
当前全球范围内智能答疑系统的发展呈现出多元化的发展趋势。从技术架构来看,国外典型代表如卡内基梅隆大学的AutoTutor系统采用了基于规则的问题分类引擎与有限状态自动机相结合的技术方案,并创新性地整合了认知行为模型(ACT-R理论框架),配合LSTM神经网络实现问答对话管理,但该系统知识库更新周期长,且仅支持英语环境。而欧盟EduAI平台则集成了GPT-3.5和Codex双模型架构,基于Rasa构建问答对话管理,并运用Elasticsearch实现高效知识检索。该平台服务器负载能力表现突出,峰值可达1200QPS,并且支持12种语言的多语言环境,提供实时代码执行功能。但其计算资源消耗过大,且对动态规划等复杂概念的解释充分性不足。
国内智能学习系统展现出差异化发展特征。清华大学研发的“智学”系统基于BERT-wwm模型可以实现语义理解,采用Faiss进行向量检索优化。其优势在于中文语境理解准确率高达92.4%,并能便捷地通过微信小程序接入,但该系统在知识图谱覆盖率方面存在不足,且在复杂算法可视化呈现方面有待加强。阿里巴巴开发的“码上学”平台则采用PLUG大语言模型技术,基于Neo4j构建知识图谱,创新性地实现混合式检索(向量 + 关键词)方案。其突出特点是商业场景适配性强,支持5000 + TPS的大规模并发处理,但其在教学特性方面表现不足,缺乏系统化的学习路径规划。
总体来说智能学习系统发展呈现三大趋势:第一,技术融合趋势明显;第二,是垂直领域深化;第三,实时性方面要求更高。国内外学者对智能助学系统[1]、智能答疑系统[2]-[7]以及自适应推荐系统[8]-[11]等进行了很多研究。本文作者在研究已有智能学习系统基础上,结合其发展趋势及数据结构与算法的需求,设计了一个包含智能答疑及自适应练习的数据结构与算法智能学习系统。
2. 数据结构与算法智能学习系统的需求分析
系统采用双角色设计,分为管理员和普通用户两大角色。普通用户专注于学习,而管理员主要负责维护系统内容和数据安全。普通用户功能用例如图1所示。
Figure 1. Use case diagram for user
图1. 普通用户用例图
Figure 2. Use case diagram for Administrator
图2. 管理员用例图
普通用户首次创建账号后可以进行登录,通过注册登录模块完成账户认证流程。登录后可在智能问答模块发起新建对话,系统将基于大模型技术提供实时答疑服务。用户还可以随时查看历史对话记录,系统会永久保存所有问答会话以便复习查阅。练习模块提供自适应题目生成功能,根据用户知识掌握程度动态调整题目难度。系统自动记录错题并生成错题本,用户可针对性强化薄弱知识点。知识图谱功能支持节点知识查询,可视化展示知识点关联关系。个人中心模块详细记录用户答题统计数据,包括正确率、知识点掌握度等指标。
管理员功能用例如图2所示。
管理员可通过用户审计功能查看所有注册用户的详细操作记录,包括登录时间、活动频率等关键数据。管理员还可以为不同用户角色分配差异化权限,确保系统安全访问控制。管理员可手动录入新题目,能根据实际答题数据动态修正题目难度评级。知识关系管理允许管理员维护知识点间的关联关系,包括先后、同类、相关系类型。
3. 自适应练习算法研究
自适应练习需要根据学生个人学习情况来出题,这就涉及到题目难度的动态调整、用户能力评估和题目难度反馈。
(1) 题目难度动态调整算法
IRT (Item Response Theory)将题目难度和受测者能力可以在同一尺度上进行量化,并且将答题正确概率通过数学函数来描述[12]。IRT的核心模型是三参数逻辑斯蒂模型(3PL),其公式如下:
(1)
其中,θ表示受测者的能力值。b表示题目难度(Difficulty),a表示题目区分度,c表示猜测概率。
该模型表明,受测者正确作答的概率取决于其能力θ与题目难度b的差距,同时受题目区分度a和猜测概率c的影响。
① 初始题目难度设定
新题目的难度通常初始化为中等(b = 0),并随着用户答题数据积累逐步调整。区分度a初始值设为1.0 (中等区分度),猜测概率c根据题目类型设定(如选择题为0.25)。
② 动态调整机制
当用户完成答题后,系统会根据其表现调整题目难度,调整幅度通常采用增量更新法:
(2)
其中α是学习率,用于控制调整幅度。
③ 与用户能力模型联动
IRT的难度调整不仅影响题目本身,还可用于优化用户能力估计,统会持续更新用户的θ值,使其更接近真实水平。当题目难度b调整后,系统可重新计算用户的能力估计,提高个性化推荐的准确性。
(2) 用户能力评估模型概述
贝在自适应学习系统中,用户的知识点掌握度(Mastery Level)可以视为一个概率问题:
先验概率:用户当前的掌握度。
似然函数:用户答题结果(正确/错误)对掌握度的支持程度。
后验概率:结合先验和似然,得到更新后的掌握度。
使用贝叶斯公式表示为:
(3)
其中,分母P (Answer)是归一化常数,确保概率总和为1。
假设用户当前掌握度服从Beta分布。
(4)
其中,α表示成功次数,β表示失败次数。根据题目特性和用户答题结果,计算:
若用户答对:
(5)
若用户答错:
(6)
更新后的掌握度期望值为:
(7)
结合IRT模型调整似然函数,使高区分度题目对掌握度的更新影响更大:
(8)
(3) 题目难度反馈机制概述
在教育领域,Elo评级机制可类比为“题目–用户交互”。题目和用户均拥有初始Elo分数,每次答题视为一次“对战”:若用户答对,题目“输”给用户,题目Elo下降,难度降低;若用户答错,题目“赢”用户,题目Elo上升,难度提高。其调整幅度取决于预期结果与实际结果的差异,形成负反馈平衡。
其正确率通过计算题目难度Dq与用户能力Au的差值进行预测:
(9)
其中400为缩放常数,用于控制敏感度。然后根据答题结果更新题目难度:
(10)
S为实际结果,答对为1,答错为0。K为调整系数。
4. 数据结构与算法智能学习系统的设计实现
4.1. 智能答疑模块设计实现
问答模块基于大模型技术实现智能对话功能,包含会话管理、实时问答处理以及知识点关联等功能,确保对话内容与知识体系的深度融合。实时问答流程如图3所示。
用户输入问题并提交,系统通过AIProcessor.process_request调用大模型API,生成回答后通过调用Message.objects.create方法保存对话记录,并使用知识点对象KnowledgePoint.objects.get_or_create方法关联知识点。
Figure 3. Real-time question-answering processing flowchart
图3. 实时问答处理流程
4.2. 自适应练习模块的设计实现
用户进入练习界面时访问practice视图渲染的练习界面,系统通过get_next_question执行优先检查用户UserAnswer错题记录,当选择“自动模式”时计算最高错误率知识点,调用LLM生成新题或从题库选择未做题。自适应练习流程如图4所示。
Figure 4. Flowchart of adaptive practice
图4. 自适应练习流程
用户在进行作答时选择答案后,触发submit_answer,系统自动验证答案正确性并更新UserKnowledgePoint掌握度,同时记录答题数据到UserAnswer。系统根据最新答题数据,重新计算知识点掌握度,并通过题目难度动态调整算法、用户能力评估模型及题目难度反馈机制调整后续题目难度,做到初始阶段使用知识图谱关联度确定基准难度,每次答题后更新用户知识点掌握度(贝叶斯更新)、调整题目难度(Elo算法)等特征。在生成新题时结合用户历史表现,应用IRT理论动态生成匹配难度题目。
4.3. 知识图谱模块设计与实现
学者们对知识图谱应用于智能学习进行了方方面面的研究[13]-[15]。本文利用已有成果,设计了知识图谱模块辅助学生更好的理解学习内容。
用户通过/knowledge_graph/路径进入图谱可视化界面,系统调用graph_view渲染基础页面,前端通过AJAX请求/knowledge_graph/data,后端graph_data方法查询所有知识点节点和关系,生成包含节点权重、连接关系的JSON数据。
# 图谱数据结构生成
def graph_data(request):
nodes = [{
‘id’: kp.id,
‘name’: kp.name,
‘questionCount’: QuestionKnowledgePoint.objects.filter(knowledge_point=kp).count()
} for kp in KnowledgePoint.objects.all()]
links = [{
‘source’: rel.source.id,
‘target’: rel.target.id,
‘type’: rel.relation_type,
‘weight’: rel.weight
} for rel in KnowledgeRelation.objects.all()]
return JsonResponse({‘nodes’: nodes, ‘links’: links})
用户点击节点时,触发/knowledge_graph/node/<int:node_id>请求,后端node_detail方法执行查询前置知识点(PREREQUISITE关系)、获取后续知识点(反向PREREQUISITE关系)、查找相关知识点(RELATED关系)。
# 节点详情处理
def node_detail(request, node_id):
kp = get_object_or_404(KnowledgePoint, id=node_id)
# 获取前置知识点
prerequisites = KnowledgeRelation.objects.filter(……)
# 获取后续知识点
next_kps = KnowledgeRelation.objects.filter(source=kp, relation_type='PREREQUISITE')
# 获取相关知识点(双向查询)
related = KnowledgeRelation.objects.filter(……)
return JsonResponse({...})
用户答题后,系统通过UserKnowledgePoint模型记录掌握程度,动态调整节点颜色深度。
5. 数据结构与算法学习系统的测试
Figure 5. Interface of intelligent answering system
图5. 智能答疑界面
Figure 6. Knowledge graph display interface
图6. 知识图谱展示界面
用户登录后进入系统主界面,可以选择智能答疑,知识图谱及自适应练习等功能。在选择智能答疑后,用户可以输入问题,系统能够即时返回问题相关的答案,并支持多轮对话以保持上下文的连贯性。该功能模块通过调用大规模预训练模型进行语义分析和答案生成,该模型采用经典数据结构习题来训练,如此可以得到通用的、正确的回答。如图5所示。
Figure 7. Personalized practice interface
图7. 个性化练习界面
Figure 8. Interface of the wrong question notebook
图8. 错题本界面
对答疑中的知识点,如图5中绿色词条,可以通过知识图谱功能图形化展示出来。系统将各类知识点、概念和相关算法通过节点与边的方式组织在知识图谱中,提供清晰的知识结构视图。用户可以通过点击各个节点查看详细的知识内容,方便地进行知识的追溯与拓展。通过这种图谱化的知识展示,学生能够快速理解各个知识点之间的内在联系。知识图谱展示及界面如图6所示。点击知识点,会展示该知识点的介绍,以及前置知识和后继知识的链接。
系统还提供自适应练习的功能,根据学生的学习历史和错题记录,提供个性化的练习题目,帮助学生巩固数据结构与算法知识。通过选择相关知识点,学生可以自动生成与其学习进度匹配的题目,并实时进行练习。如图7所示。
对于练习中出错的题目,系统支持错题本功能,将其记录下来,并推荐类似题目进行针对性练习。错题本不仅记录错题内容,还附带详细的解析与正确答案,帮助学生理解错误原因,提升解题能力,从而提升学生的知识掌握水平。如图8所示。
6. 总结与展望
本文研究并实现了一个包含智能答疑部分及自适应练习的数据结构与算法的学习系统。与传统的学习系统对比,该系统具有发动态知识图谱的功能以及支持更精准的个性化学习,创建面向数据结构与算法教学的专用提示词工程框架,可进一步提升教学效果。后续将利用人工智能和大模型技术,探索动态知识图谱驱动的题目生成,提高个性化学习的灵活性和精准性,并继续研究数据结构与算法学习系统的其他组成部分。
基金项目
北京市高等教育学会项目(MS2024145);北京信息科技大学高教研究课题(2023GJYB05);促进高校分类发展–计算机学院教学改革项目。