[发明专利]SQL程序自动评分方法及装置无效
申请号: | 201010593759.7 | 申请日: | 2010-12-17 |
公开(公告)号: | CN102023921A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 杨鹤标 | 申请(专利权)人: | 江苏大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 212013 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 程序 自动 评分 方法 装置 | ||
技术领域
本发明涉及数据库语言编程实践中SQL程序正确性的自动评估。
背景技术
随着计算机技术迅速发展和新时代对人才的新要求,传统的数据库语言实验课程所采用的集中上机实验、教师巡回指导、纸质报告评分模式,造成的问题:学习者不能得到及时的指导;物理空间的限制,不能满足学习者再学习的需求;不能科学地评价学生的实际的学习效果。数据库SQL语言虽然具有自己的语法语义,但其难以阅读且表达方式多样,使得人工评分变得艰难。另外,人眼的局限性以及评分人员的主观影响,很容易造成评分的失准以及片面性。
在Automatic program assessment system.Paper made by A.M.Zin and Dr E.Foxley,University of Nottingham UK文中,作者总结了程序自动评估的两种方法:(1)动态评估方法;(2)静态评估方法。动态方法使用测试数据集执行代码来核查程序的正确性,可以发现执行中的错误;静态方法不执行代码,只检查源代码的语法和语义,从中发现静态错误并产生统计信息以指导评估。
目前,已有许多源程序自动评分工具,如加拿大New Brunswick大学的GUI_Grader、英国Warwick大学的BOSS、美国Computing Brigham Young大学开发的WAGS等。这些工具大部分采用的是动态方法,评估结果依赖于程序成功通过测试数据集测试的比例;少部分使用静态评估,通过比较源程序与结果程序的相似度来评判。
然而,动态评估只关注结果,一旦程序发生编译错误,则给予0分处理,即使程序只是出现了拼写错误。动态评分不注重过程的特征使得上述大部分工具评分过于片面和极端,未考虑学生具体的劳动过程。而采用静态方法的工具也仅仅是使用一些从某个方法衡量程序的统计指标,没有从一个全局的概念去理解学生的思想,造成评估的不科学性。
对于数据库语言来说,由于其程序本身的编写依赖特定的数据库表结构和数据集,若采用对测试数据集进行动态执行来评估,需要对数据集合进行频繁的数据导入和导出,实际操作不可行;若采用静态方法,由于SQL程序属于结构化多层嵌套式的查询语言,利用属性计数方法来描述程序的特征的评价方法,不适用SQL语言;赵长海等人的已公开专利“源程序相似性检测方法及研究”(公开号:CN 101315599A),通过反汇编源程序相似性来检测程序相似性,此方法是针对编译型语言而言,对SQL这种解释型语言并不适用。总而言之,针对SQL程序,尚未见自动评分的装置和方法。
发明内容
本发明的目的在于,从一个框架层面上去分析学生SQL程序的结构特征,充分考虑学生的每一分劳动成果,解决动态评分的固有缺陷和现有静态评分存在的问题。
本发明的基本思想是,分别范化处理SQL学生程序和模板程序,通过词法分析和语法分析处理规范化程序,抽取出程序对应的结构信息即抽象语法树,并利用改进的树编辑距离算法计算学生程序树与模板程序树之间的相似度进行计算并籍此评估。
根据本发明的第一方面,提供一种基于结构相似度对SQL程序的正确性进行评估的方法,所述方法包括以下步骤:通过分别对SQL源程序和模板程序进行规范化处理,消除SQL语义上的表达多样性,得到两个规范化的SQL源程序;通过对规范化的SQL源程序进行词法分析和语法分析,抽取出表征源程序结构的树;根据树编辑距离算法对所述结构树与标准答案结构树进行计算,得到相似度值;以及利用所述相似度值与成绩之间的函数关系,计算最终的评估结果。
在第一个方面中,优选地, 所述规范化处理包括,对所述SQL程序中“*“号进行扩展。
优选地,所述信息筛选包括,对所述SQL程序中出现的字段名进行补全。
优选地,所述树编辑距离算法的改进包括,对所述SQL程序中逻辑操作进行排序。
优选地,在抽取到所述规范化程序的语法树结构之后,使用改进的树编辑距离算法确定所述两棵抽象语法树之间的相似度值。
优选地,所述树编辑距离算法的改进包括,引入相似因子调整部分相似对所述树编辑距离算法的贡献。
优选地,所述相似因子作用于所述树编辑距离算法计算结果如:Dist’(T1,T2)= Dist(T1,T2)*cn
其中,Dist(T1,T2)、Dist’(T1,T2)分别表示相似因子作用之前和之后的编辑距离结果,c是相似因子,n是代价为0的有序节点对。
优选地,所述函数关系是通过训练数据对相似度值与成绩作回归分析得出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010593759.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:语句级中英文混合输入方法
- 下一篇:用于可重配置的电路的装置、方法和系统