可视分析辅助的程序设计语言教学摘要:随着信息化时代的到来,程序设计语言课程已经进入到在线教育的时代。大量教育信息的电子化给教育工作者更多的参考依据,但是庞大的数据量给分析和总结工作带来了巨大的难度。本文针对程序设计课程的特点,将课程信息进行可视化,通过总结得到的规律进一步促进教学,提升了程序设计课程的教学质量。 关键词:可视分析;程序设计;教育分析;影响因子 中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)04-0064-03程序设计是计算机基础教育的核心课程。它覆盖面广、影响大,是大学生参加课程设计、毕业设计、创新实验、科技制作、学科竞赛等活动的重要基础。同时,它也是一门非常注重实践的课程,与一些传统的理论课程不同,学生日常编程练习的完成情况对最终的掌握程度影响很大。斯隆联盟连续十一年发布美国在线教育调查报告显示,高校在线教育保持稳定发展的态势[1]。中国在线教育发展如火如荼,各种新产品不断涌现[2]。中国石油大学(华东)从 2010年开始引入程序设计的在线测试平台,学生日常编程都提交到该平台上,因此积累了大量的数据。在线测试平台对程序设计语言教学的辅助作用非常巨大。目前平台的平均日访问量在2000 人次以上,最高访问量达到 8000 人次。某教师在一个学期的学生人数为 92 人,一学期接收学生提交的程序超过 1万。庞大的数据量使教学工作者很难对教学情况做出有效的分析。教育分析是对教育过程中所获得的各种信息进行定性定量分析,为教学内容、教育方式、教育手段的选择提供依据,为教育决策提供信息[3]。本文将教学与可视化技术[4]相融合,利用新的技术、新的理念和新的学习理论尝试构建新的教学模式。课程组将在线测试平台上学生的日常完成状况进行了可视分析,总结出了做题数量、一次性提交成功率、重复率等多个影响因子,将这些影响因子与学生的考试成绩做了综合分析,并利用分析得到的结论,辅助于程序设计语言的教学。一、做题数量与学生的学习成绩成正比将学生的做题数量和成绩进行了关联分析,如图 1 所示,每个点代表一个班级,横轴表示平均做题数量,纵轴表示该班学生的平均成绩。对该图做了一个线性回归后,得到的回归线为y=0.3136x+45.025,斜率 0.3136 表明做题数量和成绩成正比。将图 1 中代码重复率高于 40%的班级剔除掉,斜率进一步得到提升,正比关系更加明显。也就是说,在学生独立完成的情况下,做题数量是影响学生对程序设计语言掌握程度的一个重要因素。进一步分析,图 1 中的右上角圈选部分明显离群,该班平均做题 76 道,平均分 82 分。该班为我校的理科实验班,成绩明显高于其他班级,而较高的做题数量保障了该班取得良好的成绩。图 1 中的左侧圈选部分也离群较远,做题数量明显偏少,成绩整体偏低。从图 1 的左、中、右位置上各选取一个班级,深入分析三个班级的做题数量和学生成绩的关联状况。首先,无论成绩状况,每个班级的绝大部分学生的习题总量接近该班教师布置的数量;其次,三个班级平均做题数量依次上升,平均分也依次上升;最后,做题少的同学很难得高分。通过这三个发现,一方面再次证明了做题数量对学生成绩的影响较大,另一方面也说明了大多数学生都能尽量去完成布置的作业,教师应该根据学生的承受能力,尽量多布置习题的数量。二、平均提交次数、一次性提交成功率和抄袭的可能性学生编程时,都是在本地编译运行通过后,提交到在线测试平台上。因为一方面本地编译器与在线编译器略有区别,另一方面学生做题时考虑问题不够全面,较难一次性通过该问题对应的所有测试用例,所以学生的平均提交次数很难接近 1。将全校学生根据平均提交次数进行人数统计,其中平均提交次数对应人数最多的位置为 1.58,全校学生的平均提交次数为 2.02,平均提交次数非常接近于 1 的学生数量较少,把这些学生称为E 类学生。本文针对 E 类学生进行了深入的研究。将平均提交次数对应的学生成绩做了一个加权平均,得到图 2。从图 2 中可以看出,E 类学生的平均成绩比较低。平均提交次数接近 1的学生平均成绩仅为 30 分。随着平均提交次数的...