您好, 访客   登录/注册

基于数据挖掘关联规则技术的程序设计训练课程指导系统研究

来源:用户上传      作者: 贾燕茹 王玉芬 郭晓娟

  摘要: 目前高等职业学校的程序设计实践教学普遍存在辅导重复、效率低、难于发现普遍错误等问题,文章主要介绍了针对这些问题的一种有效解决方法。利用数据挖掘的关联规则技术,设计了一套应用软件,能对学生编写的程序进行检查、检测、科学统计和分析,找出潜在的问题和出错规律,快速给出检查统计结果,帮助教师全面掌握学生编程情况,发现导致学生程序设计的错误点及出现错误的主要因素,及时为学生反馈信息,促进教师调整教学内容和方式,从而开展更具针对性的训练辅导,大大提高实践教学效率和辅导质量。
  关键词:数据挖掘技术关联规则程序设计教学指导
  
  数据挖掘(Data Mining)技术是新兴的数据管理与分析技术。数据挖掘可以从大量的数据中提取或挖掘知识,找出其中一些潜在的、不为人知的有用信息、模式和趋势,辅助人们进行科学分析和决策。数据挖掘的任务可以分两类:描述和预测。描述性挖掘任务刻划数据库中数据的一般特性。预测性挖掘任务在当前数据上进行推断,进行预测。
  数据挖掘作为一项独立的技术手段,只经历了十几年的发展,但其核心技术却已有了数十年的发展,其中包括数理统计、人工智能、机器学习等。在这些成熟技术的基础上,加上高性能的关系数据库引擎及广泛的数据集成,使数据挖掘技术在当前的数据仓库环境中进入了实用阶段。目前,数据挖掘技术已经广泛的应用于各个领域,但在计算机程序设计实践教学方面的应用还较少。近两年来我们项目组成员对该项目进行了研究,就该技术在此方面的应用进行了初步的探讨。
  1数据挖掘技术应用在程序设计实践教学中的意义
  目前国内的大部分高校普遍为学生开设了程序设计课程,这些课程不仅能培养学生的软件开发能力,解决问题能力,而且能培养学生的逻辑思维能力,自我创新能力,最终提高学生的就业竞争力。
  通常情况下,学生在学习程序设计课程时都会遇到很多困难,在编写程序时会出现很多问题。如何帮助他们克服程序设计中的障碍,主要靠教师多年的教学经验来解决,没有对错误进行深入的分析,错误是个别现象还是普遍现象,以及造成犯错误的原因是什么,没有进行深入的探讨。通常是学生出现错误了,教师马上去个别指导,很多时候都是重复同样的问题,在对多名学生进行指导后才发现是一个普遍存在的问题。每堂课结束教师会感到筋疲力尽,堂堂如此,浪费了大量的教学时间,教学效果也没有太大的提高。应用数据挖掘技术则可以有效的解决这个问题,及时的调整教学方式方法,提高教学效率,使教学更加具有针对性。
  项目组成员对学生提交的程序设计作业利用关联规则技术进行了研究,从中找出了潜在的有用的信息,并及时应用在教学过程中,节省了教师和学生时间,提高了教学效率,教学效果明显提高。
  2 关联规则算法及性能分析
  关联规则挖掘就是从事务数据库、关系数据库和其他信息存储中的大量数据的项集之间发现有趣的、频繁出现的模式、关联和相关性,它主要由两步来完成:一是找出所有频繁项集,二是由频繁项集产生强关联规则。挖掘关联规则的总体性能由第一步决定即找出所有频繁项集。Apriori算法是一种找频繁项集的基本算法。
  Apriori算法是通过项目集元素数目不断增长来完成频繁项目集发现的。首先,产生1-频繁项目集L1,然后由L1产生L2,……,依次类推,反复迭代直到不能扩展频繁项目集的元素数目而终止。算法在第k次循环中,由Lk-1作自连接生成的k-候选项目集的集合Ck ,进行Ck 的裁减,然后扫描数据库生成支持度并测试产生k-频繁项目集Lk ,取L2,L3,……,Lk的并集得到最大频繁项目集。然后根据最大频繁项目集和用户给定的最小置信度产生强关联规则。
  3数据挖掘的过程
  由于C程序设计课程高校开设的比较普遍,在研究该项目时以此课程的例子为对象。
  3.1数据准备
  我们将所有学生提交的程序作业按编译运行情况分为以下4类:编译时语法错误、编译时语法警告、编译后运行结果不正确、编译后运行结果正确。为了对学生程序作业中的问题进一步分析原因,我们在研究时主要对以下几类数据进行分析,即功能模块函数序列、逻辑结构序列、语句类型序列、表达式序列、运算符序列、标识符序列、数值常量序列以及简化的字符常量序列。
  将文件形式的源程序主要分解为以上8项数据,对照语法元素表,进一步将程序分解为关键字、标识符、常量、运算符、定界符等语法元素序列。将数值常量以空格为连接符连接为一个数值常量序列;将字符及字符串常量保留%d等格式字符和\n等转义字符后删去多余字符,连接为一个简化的字符常量序列;
  4教学效果比较
  4.1 程序设计过程中的主要错误
  在对项目进行研究时,项目组成员对开设C语言程序设计的各个专业班进行了跟踪调查,主要调查这些学生在程序设计过程中存在的主要错误。
  我们对15个非计算机专业的班级400多名学生的程序进行了统计和分析,发现编译时语法错误和编译时警告以及编译通过但程序结果不正确是存在的主要错误,占程序出错的80%以上。其中造成编译错误的主要原因有忘记定义变量,各级括号定界符未配对,引用数组元素时误用了圆括弧,在用标识符时忘记了大小写字母的区别等;造成编译警告的主要原因有格式输入函数调用时缺少地址运算符,用户变量定义后未使用等;造成程序结果不正确的错误如除法运算符两侧运算量不是整型常量,switch语句的各分支中漏写break语句,对应该有花括弧的复合语句,忘记加花括弧等。
  4.2 教学效果比较
  在2007年下半年,项目组在开设C程序设计课的专业中抽取了两个教学班,分别用两种教学法,对没有使用数据挖掘技术和使用了数据挖掘技术的教学效果进行了分析比较。两个教学班分别统计了12次平均成绩和程序错误发生率,结果如表7所示。
  为未采用本方法指导教学的学生程序作业平均成绩统计图,折线表示每次学生作业的平均分数,平均成绩基本呈水平小波动随机形状,说明在学习过程中没有明显变化。图2为采用本方法指导教学的学生程序作业平均成绩统计图,可以发现学生的成绩随时间增加而有稳定的上升。在第6次作业以后基本保持在90分左右的水平。图3为未采用本方法指导教学的学生程序错误发生率,从图可发现每次学生作业的错误发生率没有明显变化。图4为采用本方法指导教学的学生程序错误率情况,可以看出错误的比例有所下降,在第3次作业以后基本就控制在4%左右。
  5 结 论
  通过利用数据挖掘中的关联规则技术,挖掘出在程序设计实践教学中的有用知识,提高了教学效果,提高了学习效率。数据挖掘技术能发现教学中更多有用的知识,促进教学改革,我们会进一步研究。
  参考文献:
  [1] Jiawei Han, Micheline Kamber. Data Mining Concepts and Techniques[M].China Machine Press,2005.
  [2]范明译.数据挖掘概念与技术[M].北京:机械工业出版社2004. 2.
  [3]毛国君,段立娟,王实等.数据挖掘原理与算法[M].北京:清华大学出版社2005. 7.
  作者:
  贾燕茹 郑州铁路职业技术学院
  王玉芬郭晓娟 河南科技学院信息工程学院


转载注明来源:https://www.xzbu.com/5/view-1375134.htm