基于机器学习的教学决策在软件工程教学中的应用
2023-01-16陈丹琪孙旭光
陈丹琪 段 丽 孙旭光
(防灾科技学院,河北 廊坊 065201)
0 引言
软件工程是一门联系基础理论与工程实践的桥梁课程,对计算机相关专业学生具有重要指导作用,但其内容抽象繁杂,学习难度大,历来都是教学难点。本文论述了在雨课堂教学环境下,将机器学习算法融入软件工程教学中,帮助教师实时掌握学生学习效果,应用动态教学方法决策,提升教学效果的实践过程。
1 依托雨课堂的智慧教学过程
随着新一代信息技术发展而出现的智慧教学,实现了人工智能技术与教育核心业务的深度融合。雨课堂就是一套智慧教学解决方案,在防灾科技学院已得到广泛应用。它不仅提供了多样化的教学手段,也产生了能够实时反映学生课堂表现的丰富数据。以雨课堂选择题的作答数据为例,包括本题完成人数、完成率、正确率、各选项选择的人数占比等。应用雨课堂能轻松获得多元数据,帮助教师更客观地评价学生对知识的掌握程度,但授课中要求教师一边讲课、一边整理分析零散数据显然很难完成。于是,教师通过重构软件工程教学内容各知识点,设计出能体现学生认知过程的不同题型,按照认知过程维度进行标注。这样就可以运用机器学习算法,挖掘数据特征建立模型,实现教学数据生成与分析的联动,以达到实时提供教学方法决策的目的。
这种智慧教学过程,能使教师更有针对性地以适合本班学生认知过程的教学方法讲授知识,从主观的经验驱动转变为精准的数据驱动,从而更好地帮助学生掌握课程内容。
2 软件工程课程中基于机器学习的教学决策
智慧教育是融合现代教育理论与大数据分析、人工智能等信息技术的新教育信息化范式[1],机器学习则是智慧教育的核心算法。Kizilcec等人采用Fisher精确检验对MOOC学习轨迹数据进行了分析[2],Coetzee等人使用同样方法分析了edX平台中“软件工程”课程的行为数据[3]。这都是通过对教育过程大数据进行挖掘、分析、融合,建立高度智能化学习生态系统的研究。作为智慧教学平台,雨课堂能实时生成教学数据,但由于各知识点对应的教学目的要求不同,各题所体现的认知过程维度也不同,还需进一步应用机器学习技术挖掘数据资源中的学习特征[4],据此分析出有效的教学决策。
为体现学生的学习效果,针对不同知识点可设立三大类教学目的:复现知识(了解、复述)、基本思维操作(解释、说明)和能产型思维(解答复杂问题)。教师先以学生必须掌握知识体系的形式提出针对不同知识点的教学目的,再根据教育目标2001版分类体系,按照认知过程维度习题分为六种:记忆、理解、应用、分析、评价和创造题。从下例可看出,这些习题会从不同侧面反应教学目的的达成度。
表1为学生对某知识点习题的作答数据。教学中教师直接根据学生作答情况评价教学效果,但这个70分的成绩足够客观吗?
只有结合教学目的进行教学效果评判才是合理的。教师采用线性变换方法对学生学习行为进行评价,公式为,其中为学生对此知识点学习水平的评价值,向量(记忆,理解,应用,分析,评价,创造)为综合评价因素,为各题型得分占比。知识点的教学目的不同,对应中各因素的权值也不同。若教学要求为复现知识,则“记忆”和“理解”的权值较大;若教学要求为能产型思维,则“评价”和“创造”的权值较大。三类教学目的对应三种权值:
x1=(0.6,0.2,0.1,0.1,0.0,0.0)x2=(0.3,0.2,0.2,0.1,0.1,0.1)x3=(0.2,0.2,0.1,0.1,0.2,0.2)
以表1为例对学生的学习行为进行评价。若本练习对应知识点教学目的要求为能产型思维,那么X=(0.2,0.2,0.1,0.1,0.2,0.2),线性变换如下:
表1 习题作答成绩表
可见,变换后学习水平评价为64分,与变换前的70分是有差异的。用这种结合教学目的的评价结果选择适合的教学方法,才能高效实现教学目标。教学中要从学生学习水平出发,根据学生对知识掌握程度的好坏,确定教学方法。决策树正是可以从给定训练集中学得一个模型,用以对新示例进行判断,并完成样本分类,区分为正例和反例的算法。这一决策过程的结论刚好对应判定结果,即当学习水平为反例时,就要运用对应的教学方法针对学生未掌握知识进行着重讲解。
具体实现过程如下。依照认知过程维度对学生认知水平进行计分,并按所得分值划为三段:高(80~100)、中(60~80)、低(60以下)。再把学习水平评价分为两类:正例“好”(T)和反例“坏”(F)。表2记录了执行教学方法1的教学过程数据。教师要从这30组训练例中确定适合使用教学方法1的学生。
表2 采用教学方法1的实例数据
训练模型描述为<D,U,A>,其中D是训练集,U是训练集的属性集,A是训练集的分类,定义如下:
(1)D为学生训练集,选择一个特征值A表示学习水平。
(2)D中包含属性集U,共有六个属性:U1、U2、U3、U4、U5、U6,依次代表记忆、理解、应用、分析、评价和创造六种能力。U1~U6均有高、中、低三种取值。
(3)D依照特征A被划分为两类:T与F,分别代表正例和反例,即为A的2个取值。
训练过程中,为了避免对小概率训练实例的进一步分支和处理,决策树要进行预剪枝,规则是:如果训练实例属于同一个类(T或F)的概率大于80%,则视这些训练实例属于同一个类。决策树学习算法为:
决策树初始状态只含有一个树根(X,U),其中X是全体训练实例集合,U是全体测试属性集合,U={记忆能力,理解能力,应用能力,分析能力,评价能力,创造能力};
若X'中的训练实例属于同一个类的概率大于80%,则视这些训练实例属于同一类;
若决策树所有子节点(X',U')具备下列条件中任何一个,则停止执行学习算法,学习结果为此决策树:
(1)U'为空;
(2)X'中的训练实例属于同一个类;
否则,选择一个不具备步骤3所述状态的子节点(X',U');
对于U',选取Gain(X',b)最大的测试属性b;
设X'被测试属性b的不同分值分为m个不相交的子集X'i,1≤i≤m,从(X',U')伸出m个分支,每个分支代表b的一个不同取值,从而形成m个新的子节点(X',U'-{b})。转到步骤2。
以表2数据推演算法实现过程。依据信息论原理,表2数据表示在训练构建模型初始时刻属于T类和F类的实例个数均为15,所以初始时刻信息熵为:
如果选取U1作为测试属性,则条件熵为:
信息增益为:
类似的,可以计算出其他属性的信息增益:
显然,属性U1“记忆”的信息增益最大,即关于U1的信息对于分类帮助最大,于是它被选为测试属性。而U1有三种取值(高、中、低),可使训练例生成三个子节点,各子节点具有属性集U1={U2,U3,U4,U5,U6}。再依次对这三个子节点按照上述过程执行操作。
对于U1取值为“高”的子节点,因训练例中正例占比为7/8,超过80%,则所有训练例都属于正例,停止执行算法。
对于U1取值为“中”的子节点,由于在U'中的信息增益最大的属性是U6,因此选择U6作为测试属性,下一级子节点具有属性集U'={U2,U3,U4,U5}。继续按照上述过程求解。
对于U1取值为“低”的子节点,因训练例中反例占比为9/10,超过80%,则所有训练例均为反例,算法停止执行。
应用上述算法生成了图1决策树。由这棵决策树得到5个学习规则:
图1 表2训练生成的决策树
规则1:IF记忆能力=高THEN使用教学方法1
规则2:IF(记忆能力=中AND创造能力=中)THEN使用教学方法1
规则3:IF(记忆能力=中AND创造能力=高AND应用能力=中)THEN使用教学方法1
规则4:IF(记忆能力=中AND创造能力=低AND理解能力=高)THEN使用教学方法1
规则5:IF记忆能力=低OR(记忆能力=中AND创造能力=高AND应用能力=低)OR(记忆能力=中AND创造能力=低AND(理解能力=中OR理解能力=低))THEN不使用教学方法1
以上是对教学方法1进行决策树学习的过程,运用同样的算法对所有教学方法实施决策树学习,就能得出适合不同学习水平的各种教学方法。
3 教学效果分析
我们教师在软件工程教学中,应用上述方法挖掘雨课堂学生学习特征行为数据作为训练集,建立了有效的教学决策模型。教师依照模型推荐的教学方法授课,能从全体学生教学效果最优角度进行剖析讲解,确保了学生对重点、难点知识的掌握;同时,利用训练集中的个性化数据,为每位学生发布不同的实践作业,既可加强学生对自身薄弱知识点的练习,又可减少同学间抄袭作业的现象。通过执行以上各个教学环节,学生从能听懂到愿意学,逐步进入主动思考的学习状态,很好提升了学生的理论学习兴趣及软件工程的实践能力。
追踪两个专业软件工程课程四轮教学学生的期末平均成绩,计算机科学与技术专业分别为:68.7分、67.9分、73.8分、75.2分,物联网工程专业分别为:67.3分、65.1分、69.7分、72.6分。其中前两轮是教师以经验驱动主观选择教学方法进行的教学,后两轮教学中应用了机器学习建模后智能推荐的教学方法。可见,使用决策树算法给出的教学决策取得了更好的教学效果,使学生期末成绩有较大提高。
4 结语
本文介绍了运用机器学习决策树方法训练雨课堂教学数据,并建立模型获取适合不同学习水平教学方法的具体过程。实践证明该方法不仅能辅助教师实现教学策略的灵活运用,也能很好帮助学生提升工程实践能力。其他教师可根据所教课程特点,按照认知过程维度设置习题分类属性及与教学目的对应的权值,亦可构建相应课程的教学决策模型,具有广泛的应用价值。