本文是一篇软件工程硕士论文,本文是基于代码仓库的学习者行为特征的挖掘,研究目的是通过对代码仓库中学习者行为的教育数据,评价出学习者的学习状态,通过教育数据挖掘中的聚类算法建立描述模型。
第一章 绪论
1.1研究背景及意义
自从 21 世纪,互联网的崛起和飞速发展,数据在互联网中越来越多,便有了大数据的时代。在这个大数据时代,大数据应用于各行各业,其中对于人类教育的应用,让其进入一个全新的教育时代,即大数据教育时代[1]。
在教育领域中广泛应用了信息技术,导致了教育科研信息化的发展,其发展主要为以下三个阶段:一是对技术的研究阶段,二是利用技术开展的研究阶段,三是技术使能的阶段[2]。教育数据挖掘是一个新兴的,备受关注的研究领域。随着信息化在教育领域中的发展,导致了数据在教育领域中快速增加,便产生了一个问题,如何从繁多的教育数据中挖掘出对教育者和学习者都有用的信息,用来提高教学效果和学习效果,这一问题的产生促使了教育数据挖掘研究的出现。
教育部工程认证要求以过程管理对学生成绩进行考核,但是在目前的编程教育中缺乏有效的过程管理手段,存在着学生抄袭代码作业的现象,尤其在高校中。高校的计算机类课程作业抄袭现象层出不穷,计算机类课程中教师已无法准确评价学生的专业素质的成长。
在高校的计算机专业的实践教学中,教学者对于学习者提交的电子编程作业,往往只是进行简单地浏览,不能对学习者的作业进行客观地批改和评分,导致学习者并不能得到有效的反馈信息,从而大大降低了作业的学习效果。此外,在学习者提交的电子编程作业中有很多数据,都有隐藏着许多体现学习者学习状态的有价值的信息。因此,在此大数据教育时代下,如何利用好这些教育数据通过教育数据挖掘技术挖掘出教育数据后面的隐藏价值,是教育数据挖掘工作者面临的问题之一。
1.2国内外研究现状
教育数据挖掘的发展大致上可以分为以下两个阶段:
(1)第一个阶段是二十世纪八十年代到二十世纪末
此阶段的教育研究者们开始在教育领域使用数据挖掘的方法,但是研究方法比较简单,研究成果也比较少。由于当时的技术限制,这一阶段的数据主要来源于问卷调查和管理信息的相关软件,所采取的数据挖掘的方法是统计分析和关联规则的算法。
(2)第二个阶段是从二十一世纪初到现在
此阶段的教育数据挖掘的研究方法快速发展,研究成果也快速增加。进入本世纪以来,互联网的普及和信息技术的飞速发展,导致了教育技术进行变革。这一阶段的教育数据挖掘研究的数据则主要源自于智能性和开放性的在线学习平台,所采取的数据挖掘技术更加丰富多样[3]。
从二十一世纪初以来,国外教育数据挖掘的研究持续增多,并且 2008 年到 2009 年首次迎来一波飞速上升时期,这两年总的研究数量比前面几年的总和还多,这样情况产生的主要原因是由于 2008 年开始召开了国际教育数据挖掘会议和创办了 JEDM 电子期刊。到了 2012年,美国教育部发布的蓝皮书使教育数据挖掘这一研究课题受到更加广泛关注。另一个方面在国内教育数据挖掘的应用研究发展时间起步晚,从 2002 年开始才有这方面相关的学术论文的出现,随后的时间发展也比较缓慢,缓慢期持续了两年,但研究成果却是在缓慢增加。直到 2004 年由于发展了广播电视大学,开发并使用了精品网络的课程以及成立了 67 所网络学院,国内的教育数据挖掘研究才开始增速,直到 2007 年达到第一个小高峰。再到 2015 年国务院发布的《促进大数据发展行动纲要》中明确提出了要建设教育大数据,教育数据挖掘的研究才在国内受到了更为广泛的关注。目前,在国家战略层面包括了教育大数据,但由于国内的研究起步时间比较晚,发展时间比较短,与国外相比之下在研究的广度和深度方面都存在的相对比较大的差距。
第二章 相关背景知识介绍
2.1Git 相关概念及代码仓库
本小节主要介绍的是与 Git 有关的核心概念以及代码仓库的相关知识,其中 Git 相关的概念主要是介绍了文件追踪和提交 Commit 信息的理论知识。代码仓库的相关背景知识中主要是介绍了 GitHub、GitLab 和 Onedev 三种代码仓库的基本知识。
2.1.1 Git 相关概念
本文所挖掘的教育数据源自于代码仓库实训编程平台,此为一种基于 Git 的分布式管理系统。Git 是一个分布式修订版本控制系统。它可以通过为每个开发人员提供软件存储的完整独自的分支以及在其上下文中管理修改的多种方式来支持软件修改这一点[41]。此外,Git 还提供了各种分支和合并策略,并与多个远程存储库同步[42]。 由于这种灵活性,已经开发了最佳实践和工作流来支持软件工程团队组织不同版本的程序源代码,例如 Gitflow[43]和分叉工作流[44]。
与本文研究有关的两个 Git 主要核心概念在下面具体介绍:
(1)文件追踪
此为 Git 中的一种机制,主要是用来追踪文件的。文件在 Git 仓库中存储的时候主要有四种状态:未追踪状态,已修改状态,已暂存状态和已提交状态。在 Git 中,进行管理项目文件的时候,可以根据自己的需求来自己定义需要管理的文件。通常在使用仓库时,未追踪状态的文件不包括代码和配置文件,由于这些文件不用进行版本管理;在追踪文件中,若进行了修改则是已修改状态,在此修改过程中可以使用 add 命令来添加缓冲区修改的内容,或者使用 checkout 命令与 revert 命令中的一个来实现滚回修改内容的功能,即回退上个版本的内容;修改内容到了暂存区,则文件便是属于已暂存状态。最后将文件提交之后,文件便是属于已提交状态。
(2)提交 Commit 信息
提交对象包含的是关联的树结构对象的哈希,零个或多个父哈希的列表,具体内容有作者名称和创建时间,提交者名称和提交时间以及提交消息。在 Git 中,提交对象可以包含任意数量的父对象。没有父母的提交称为根提交。在集中式版本控制中,这就是提交编号。而用 Git 管理的项目可以具有多个根提交。仓库中的每次提交 Commit 信息都会保留本次提交过程中所有追踪文件的修改内容,并与之前版本的内容一起形成当前版本下的所有文件内容。此外,历史记录中的普通提交只有一个父提交,是通过编辑文件,将更改添加到索引然后调用 commit 命令来创建的。运行 merge 命令将创建一个具有多个父级的新提交,即一次合并提交。合并提交的一种特殊形式是所谓的章鱼合并,它有两个以上的父级提交。与其他分布式版本控制系统一样,Git 没有本地版本号的概念。要引用提交信息,用户必须使用其哈希 ID或分支名称。此外,Git 提供了一种特殊的语法来访问提交的祖先。
2.2教育数据挖掘的相关概念
本小节主要介绍的是教育数据挖掘相关的一些概念,先从教育数据挖掘概念与过程进行了介绍,再依次介绍了教育数据挖掘的教学环境,预处理过程,挖掘方法以及模型评估与结果分析。本文的研究方式就是通过教育数据挖掘中的聚类分析方法进行教育数据的挖掘。
2.2.1 教育数据挖掘的概述与过程
(1)教育数据挖掘的概述
教育数据挖掘,简称 EDM,它是指在教育数据中应用数据挖掘技术[46]。因此教育数据挖掘的主要目标是分析教育中各种类型的数据,从而来解决教育研究所遇到的问题。EDM 主要是关注在探索教育环境中独特的数据类型中的开发方法的应用方面,并通过应用这些方法来更好地了解学习者及其学习的环境[6]。一方面,由于仪器教育软件以及学生信息状态数据库的增加,导致了现在已经创建反映学生学习方式的大型数据存储库[47]。另一方面,由于互联网的普及,导致了在教育中创造一种新的情境,称为电子学习或基于网络的教育,其中无休止地产生了大量无所不在的有关教与学互动的信息[48]。所有这些信息提供了教育数据的金矿[49]。 EDM 试图使用这些数据存储库来更好地了解学习者及其学习效果,并开发将数据和理论相结合的计算方法,从而将实践转化为使学习者受益[50]。从实际的角度来看,EDM 允许例如基于学生的使用数据发现新知识,以帮助验证评估教育系统,潜在地改善教育质量的某些方面并为之更有效地打下基础。
(2)教育数据挖掘的过程
EDM 的目标主要是将来自教育系统的原始数据转换为有用的信息,这些信息可能会对教育研究和实践产生重大的影响。因此,它的过程和普通的数据挖掘过程一样,主要是数据预处理,数据挖掘以及结果评估与分析。同时,由于是教育领域的,所以他的数据来源于教学环境,分析的结果信息也将用于教学环境。教育数据挖掘图的具体流程图如 2.1 所示。
第三章 基于代码仓库的学习者行为特征统计分析 .................... 15
3.1研究的动机和问题 .......................... 15
3.1.1 动机 ............................... 15
3.1.2 问题 ............................... 15
第四章 基于代码仓库的聚类算法对学习者行为特征的研究 .............. 28
4.1研究的动机和问题 ............................. 28
4.1.1 动机 ................................... 28
4.1.2 问题 .................................... 28
第五章 总结与展望 ...................... 41
5.1总结 ............................. 41
5.2展望 ........................