基于最小子程序匹配的C语言自动评分算法研究

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:hahanikan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对传统的编程题自动评分方法无法准确衡量学生对知识点掌握程度的问题,提出了一种基于最小子程序匹配的C语言自动评分算法。算法首先将程序做标准化处理,然后转换为树形子程序,再通过搜索检测划分更小粒度的子程序。再根据自动评分算法完成对C语言程序的自动评分。初步实验结果表明:自动评分算法与普通的人工评分误差相差不大,相较于传统的自动评分方法,其结果更能反映出学生的真实水平。
  关键词:自动评分;子程序;树;C语言
  中图分类号:TP311 文献标志码:A 文章编号:1673-8454(2017)17-0026-04
  引言
  目前国内外有许多程序设计在线测试系统[1],这类线上测试系统对学生提交的代码一般采取的评分方式主要分为两大类:①动态测试[2-8],即对学生程序进行编译、运行。当编译不通过、编译过后运行结果错误、运行时间超时情况出现时都判定提交程序无效,该方法快速、直接。②静态评分方法[2][9-12],静态评分通过静态分析学生源代码与答案模板代码,用抽象语法树、系统依赖图、程序依赖图等中间表现形式,然后从中提取特征属性值或度量值来进行匹配再给出分值。
  动态评分是目前较多在线测试系统中用到的评分方法,其前提是程序能运行成功,当程序运行结果不匹配,随机测试用例结果等情况都以0分处理。所以对学生的考察存在片面性。国内外学者在静态评分的研究上有很多,有文献表明通过计算控制流图结点的相似度进行编程题自动评分,[13]还有文献表明在考生程序生成语法树后进行遍历使用Levenshtein算法完成编程题自动评分。[14]静态分析能在一定程度上得到学生程序与模板程序的相似度,从而生成学生得分。
  但由于学生编写的源代码存在着多样性,以及现有的技术对程序的理解度、语义分析的准确度还不太高等原因,评分准确性会受到影响。针对这些问题,本文提出了一种基于最小子程序匹配的自动评分算法,首先根据自定义试用于匹配的子程序,对源代码经过词法、语法分析,依据系统依赖图将程序转换为有序树,该树包含不同粒度的子程序,通过构造树时的关系规则将子程序图切分为多个更小粒度的子程序集合,然后对学生子程序与模板子程序采取从小到大的递归式匹配方式,最后结合模板程序中标记的权值为学生程序打分。此方法对学生是否掌握某语法知识或是结构的使用有很好的效果。
  一、基本子程序的定义
  子程序[15]是能被其他程序调用、在实现某种功能后能自动返回到调用程序的程序。其最后一条指令一定是返回指令,故能保证重新返回到调用它的程序中去。也可调用其他子程序,甚至可自身调用。为了适用于本文算法对子程序做了重新描述,子程序是能实现某一功能的基本语句的集合,可以嵌套、组合,没有返回值。在这里将一个语句块看作一个子程序。
  为了能考察学生程序中是否实现了某些基本的功能,首先将学生程序与模板程序分解为基本的子程序,然后依靠系统依赖图的数据依赖找出子程序之间的关系,每个子程序的中间表示都是一棵具有语义信息的子树。最后对子树进行匹配。分析文中处理的C语言特性,划分组成子程序的基本单元,具体形式有:声明语句、库函数调用语句、赋值语句、选择分支语句、循环语句、返回语句、跳出语句。上述基本语句单位通过并列、嵌套、顺序三种关系组成功能复杂的子程序。
  二、基于有序树的程序中间表示
  答案模板程序和学生程序在经过词法分析和语法分析时,利用标准化规则在不改变语义的情况下消除语句的多样性,同时获得由多个不同粒度的子程序,且子程序之间通过数据流的依赖相互联系。实现排序的源代码如下所示:
  #include
  int main(){
  int i,j,temp,a[10];
  for(i=0;i<10;i++)
  scanf ("%d,",&a[i]);
  for(j=0;j<=9;j++) {
  for (i=0;i<10-j;i++)
  if (a[i]>a[i+1]){
  temp=a[i];
  a[i]=a[i+1];
  a[i+1]=temp;
  }
  }
  for(i=1;i<10;i++)
  printf("%d,",a[i] );
  return 0;
  }
  (1)语句①依据标准化规则处理分为以下形式:
  int I;int j;int temp;int a[0]
  (2)依据数据流划分出如下子程序用有序树表示,以下根据粒度的大小进行排序,粒度越大的子程序中组合、嵌套的其他子程序越多,从粒度大到粒度小的子程序如图1、2、3所示:
  由于篇幅限制仅展示3幅子程序有序树图。图1是最小子程序。从图1到图2再到图3的转变过程可以很明显地看出更小粒度的子程序是根据有序树中右子树种切分出来的,同时右子树的子程序的第一个结点与其父亲结点是嵌套关系,而左子树是依据程序运行子程序的顺序关系连接得出的。
  本例中没有出现多选择分支,鉴于并列代码的特殊性,在此规定,当检测到子程序是分支语句时,构造树型图时该结点下的子程序从左至右,最左边为左子树与上面描述一致,除了该左子树其他均为右子树。即一个父结点有多个子结点时,最左的子結点与父结点为顺序关系,其他结点与父结点为嵌套关系,且这部分的结点之间是并列关系。由于该父结点下的子结点不满足有序树的定义,在有大于两个子结点的情况下,也就是存在并列关系的节点时,子结点之间是无序的。也就是说本文中用于构造子程序有序树不是真正意义上的有序树。
  三、最小子程序匹配评分算法
其他文献
摘 要:随着移动互联网技术的飞速发展,基于微信公众平台的移动学习成为一种重要的学习方式,在健听大学生中已经普及。本文以听障大学生为研究对象,通过调查问卷和个别访谈的方式,从移动学习途径、微信使用频率、微信关注内容等方面对听障大学生使用微信的移动学习现状进行了调查,总结出听障大学生基于微信公众平台的移动学习现状与特征,并提出相应的建议,以拓展听障大学生移动学习的途径。  关键词:听障大学生;微信公众
期刊
摘 要:SPOC与翻转课堂结合,是一种新型混合式教学法,也是高等教育改革创新的新探索。文章以“数学之旅”与“唐诗宋词人文解读”两门课程自然教学班级试点为基础,探讨了在我国大学通识教育体系中引入“SPOC+翻转课堂”混合式教学法对大学通识教育的促进作用。结果表明这种教学模式能够有效发挥两种教学法优点,促使教育效果更为贴近通识教育理念,在学科知识教育、能力素养培养与情感社交培育三方面获得更好的教学效果
期刊
摘 要:用户体验是信息平台建设质量的核心判断标准,高职学院也是如此。高职学院内部因用户分类不同,其用户体验的要素既有相同之处,也有差别。我们在高职院校信息化平台的设计过程中,既要充分考虑职业教育的特点和发展趋势,又要考虑用户的微观需求;既要强调个性化和针对性,也必须兼顾系统性和整体性,既能使个类用户都能非常方便地完成本职工作,又便于各类用户之间的沟通管理。  关键词:高职用户;体验特征;信息化平台
期刊
在作文教学实践中,我们发现学生们对单一的命题作文总感到头痛和乏味,甚至产生腻烦,反抗心理,在规定的时间里,草草写作,应付了事。这样的作文训练,效果不佳。为了激发学生写作兴趣,提高学生写作的积极性,我试引导学生注意发现身边的写作素材,进行观察作文。  观察作文就是先观察,后作文。观察:解决材料问题,作文:把观察时的所见所闻,所思所感,用语言文字表达出来。  高中生思维活跃,想象力丰富,精力充沛好奇心
期刊
目前,我国在中小学数字校园建设方面有很多进展,从技术思想层次上已经做了一轮又一轮的实践。但是,如何能够使信息化教学融合到教学过程是当前的主流需求,其中,“生态化”数字校园建设是很关键的一个方面。区校协同是数字校园模式的一方面,过去从单体向数字校园建设来看,都是先将资金投入学校,学校再自我发展;伴随着这些信息技术系统、学校业务系统的成熟以及区域绩效的关注,区域的协同化建设得到进一步的关注。  本文从
期刊
摘 要:每一位刚刚走上工作岗位的新教师都需要一段时间的适应期,作为中学体育教师如何尽快成为一名业务精湛、素质全面的人才,是每位体育教师所追求的目标,一名素质全面的体育教师,在学校体育中起着重要作用。  关键词:中学体育教师素质;业务水平;情感品质;热爱学生  一、前言  中学体育教师是通过体育与健康课程,教会学生运动技能,发展学生的身体素质,让学生们了解和学习体育相关知识,培养学生终身体育意识,帮
期刊
摘 要:教育信息化是我国推动教育发展、促进教育创新与变革的重大战略抉择。教育信息化绩效评估是考察教育信息化工程效果和效率的关键环节,也是我国教育信息化研究领域的新热点。本文以襄阳市教育信息化为典型案例,从基础设施、资源与应用、培训和制度保障评估襄阳教育信息化绩效,并分析了存在的问题并提出了措施与策略。从外部环境、目标、主体、方法、数据、结果影响和责任划分七个维度分析了教育信息化绩效评估案例,并提
期刊
摘 要:目前,新课程方案和规范化办学倡导自主互助学习,传统的作业批阅方式只注重表面形式,实际批阅效果并不明显,流于形式,使教学没有真正的活力。  采取的措施:①教师预批:先行备课;②学生互阅:注重主体作用的发挥;③记录矫正:查漏补缺;④反馈评价:鼓励和改进。达到的效果:①作业的功能得以实现,学生的学习积极性提高。②共同提高成为现实,潜能生普遍进步,优秀生更加优秀。③教师负担减轻,增强师生的幸福感,
期刊
摘 要:早在2003年全国电教馆长会暨教育信息化建设现场会在嘉兴市海盐县召开,海盐教育信息化“让农村的孩子享受和城里孩子一样好的教育”的工作理念激起了与会代表的共鸣。教育信息化已在嘉兴市教育系统内全面覆盖,在全面提升教育水平中发挥着积极作用。如今教育信息化飞速发展,教育信息化的内涵、作用发生了深刻变化,计算机多媒体技术和校园网络技术已成为嘉兴市教育的重要技术手段。  关键词:教育信息化;资源库建设
期刊
摘 要:本文通过考察近年来的相关研究论文,回顾了平行语料库与翻译教学结合的研究现状,综述了平行语料库在翻译教学中可发挥的诸多作用,如提供词、句、篇章等方面的对译,对教师的教学与学生的自主学习有较大辅助作用等。调查结果也发现,基于平行语料库的翻译教学研究存在不足之处,如翻译教学的模式过于传统、平行语料库的建设有待提高、平行语料库的加工技术不够完善等。  关键词:平行语料库;翻译教学;检索系统  中图
期刊