一种作业程序自动评分方法及系统的制作方法

文档序号:9471805阅读:607来源:国知局
一种作业程序自动评分方法及系统的制作方法
【技术领域】
[0001] 本发明设及计算机技术领域,特别是指一种作业程序自动评分方法及系统。
【背景技术】
[0002] 近年来,随着计算机技术的发展,在线考试、无纸化阅卷和无纸化教学得到了普遍 应用,运些技术成为改进教学水平的重要手段。当前,在客观题的评分方面,计算机阅卷的 效率已经远远超越了人工阅卷。但是,在主观题的评分方面,计算机的辅助作用就显得捉襟 见肘。
[0003] 计算机程序设计语言类课程是几乎所有高校都必须开设的一 口基础类课程,需对 学生所学知识进行考核。而运种考核多W客观题和主观题相结合的方式进行。计算机程序 设计语言类课程除了要求学生掌握相关的理论知识点外,更着重于对学生的实践编程能力 进行考察。因此,主观题在该类科目的考核中占有较大的比重。同时,运种实践编程能力的 考察也要求学生在平时的训练中加大对主观编程题的练习。
[0004] 由于学生提交的程序代码风格不统一,逻辑思路不尽相同,可能出现各种各样的 语法、逻辑错误,采用手工过程进行评分,不仅需要浪费大量的人力资源,而且受评阅者自 身水平、知识储备和屯、理状况等因素影响,可能会影响最终评阅结果的客观性和准确性。
[0005] 程序自动评分指的是基于计算机来自动判定给定程序逻辑是否正确、功能是否满 足要求。程序自动评分具有阅卷效率高、准确度好、评分公正准确、判定标准统一的优点,可 W节省大量人力。
[0006] 当前投入使用的一些程序自动评分系统的运行效果十分不理想。有的系统只依赖 程序的最终输出结果,运种方法无法考察程序的内部逻辑;有的系统引入编译器,通过调用 编译器处理学生程序时可能产生的错误或警告提示作为评分依据,运种方法虽然可W对程 序整个逻辑结果有很好的判断,但其缺点是:程序中出现一个小的语法错误可能会产生很 多的错误提示,导致评分出现较大偏差。

【发明内容】

[0007] 本发明要解决的技术问题是提供一种作业程序自动评分方法及系统,W解决现有 技术所存在的无法考察程序的内部逻辑及W编译器的输出结果为评分依据的问题。
[0008] 为解决上述技术问题,本发明实施例提供一种作业程序自动评分方法,包括:
[0009] 获取作业程序,确定所述作业程序的得分点;
[0010] 生成所述得分点对应的正则表达式;
[0011] 根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的得分。
[0012] 进一步地,所述作业程序W预设的文件格式命名并存储在指定的文件目录下。
[0013] 进一步地,所述生成所述得分点对应的正则表达式包括:
[0014] 加载正则表达式选项,生成所述得分点对应的正则表达式。
[0015] 进一步地,每一个正则表达式所对应的得分点对应一个分数权重。
[0016] 进一步地,所述根据所述正则表达式匹配所述作业程序的得分点,输出所述作业 程序的得分包括:
[0017] 若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应的分数权重;
[0018] 若第一正则表达式不匹配第一得分点,则不赋予所述第一得分点相应的分数权 重;
[0019] 所有得分点均匹配完成后,将赋予的每个得分点的分数的总和与所有得分点对应 分数权重的总和的比值作为所述作业程序的得分。
[0020] 本发明实施例还提供一种作业程序自动评分系统,包括:
[0021] 得分点确定模块,用于获取作业程序,确定所述作业程序的得分点;
[0022] 正则表达式生成模块,用于生成所述得分点对应的正则表达式;
[0023] 评分模块,用于根据所述正则表达式匹配所述作业程序的得分点,输出所述作业 程序的得分。
[0024] 进一步地,所述作业程序W预设的文件格式命名并存储在指定的文件目录下。
[00巧]进一步地,所述正则表达式生成模块,具体用于加载正则表达式选项,生成所述得 分点对应的正则表达式。
[0026] 进一步地,每一个正则表达式所对应的得分点对应一个分数权重。
[0027] 进一步地,所述评分模块包括:
[0028] 匹配单元,用于若第一正则表达式匹配第一得分点,则赋予所述第一得分点相应 的分数权重;
[0029] 不匹配单元,用于若第一正则表达式不匹配第一得分点,则不赋予所述第一得分 点相应的分数权重;
[0030] 分数输出单元,用于所有得分点均匹配完成后,将赋予的每个得分点的分数的总 和与所有得分点对应分数权重的总和的比值作为所述作业程序的得分。
[0031] 本发明的上述技术方案的有益效果如下:
[0032] 上述方案中,通过获取作业程序,确定所述作业程序的得分点;生成所述得分点对 应的正则表达式;根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的 得分。运样,通过正则表达式匹配作业程序中的得分点,从作业程序的内部逻辑结构层面对 作业程序进行自动评分,只要作业程序中的得分点能够匹配对应的正则表达式即可,从而 模拟人工阅卷的行为模式,解决了现有技术中,W编译器的输出结果为评分依据,自动评分 过程判定标准不科学、评分没有区分度等问题,且能够更好地适应风格多变、标准不一的学 生作业程序风格,增强判断的灵活性。
【附图说明】
[0033] 图1为本发明实施例提供的作业程序自动评分方法的流程图;
[0034] 图2为本发明实施例提供的作业程序自动评分方法的详细流程图;
[0035] 图3为本发明实施例提供的作业程序自动评分系统的结构示意图。
【具体实施方式】
[0036] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具 体实施例进行详细描述。
[0037] 本发明针对现有的无法考察程序的内部逻辑及W编译器的输出结果为评分依据 的问题,提供一种作业程序自动评分方法及系统。
[0038] 实施例一
[0039] 参看图1所示,本发明实施例提供的一种作业程序自动评分方法,包括:
[0040]S1,获取作业程序,确定所述作业程序的得分点;
[0041]S2,生成所述得分点对应的正则表达式;
[0042]S3,根据所述正则表达式匹配所述作业程序的得分点,输出所述作业程序的得分。
[0043] 本发明实施例所述的作业程序自动评分方法,通过获取作业程序,确定所述作业 程序的得分点;生成所述得分点对应的正则表达式;根据所述正则表达式匹配所述作业程 序的得分点,输出所述作业程序的得分。运样,通过正则表达式匹配作业程序中的得分点, 从作业程序的内部逻辑结构层面对作业程序进行自动评分,只要作业程序中的得分点能够 匹配对应的正则表达式即可,从而模拟人工阅卷的行为模式,解决了现有技术中,W编译器 的输出结果为评分依据,自动评分过程判定标准不科学、评分没有区分度等问题,且能够更 好地适应风格多变、标准不一的学生作业程序风格,增强判断的灵活性。
[0044] 本发明实施例中,应用的正则表达式能够方便的进行维护和更新,相较于现有技 术中基于编译器的自动评分系统,本发明实施例能够很好地适应教学需求和作业题目要求 的变化。且现有技术中基于编译器的自动评分只能判断出作业程序是否正确,无法判定其 是否符合题意,而本发明实施例能够通过正则表达式判定作业程序是否符合题意。
[0045] 参看图2所示,本发明实施例中,加载正则表达式选项,生成所述得分点对应的正 则表达式,其中,正则表达式的相关模块可W独立于本发明实施例本身更新、维护,能够及 时顺应教学需求的变化。同时,如果评分标准发生了改变,也只需更新相应的评分模块,而 不需要修改整个自动平分系统的内部逻辑。如果新增了得分点,也只需更新相应的得分点 确定模块。
[0046] 本发明实施例中,正则表达式匹配给出的是基于作业程序(作业程序也可W称为 作业文本/文档)内容的匹配结果,与程序本身使用的语言无关,所述作业程序的语言包 括:C++、java,C,C#等;因此在实际教学应用中,可针对不同的计算机语言编写多套正则 表达式匹配规则,运样在切换教学中使用的语言时只要切换相应的正则表达式评分模块即 可。而现有技术中的基于编译器的自动判定系统若要实现语言切换功能则要改变判定系统 的底层判定逻辑,灵活性差,且工作量大。
[0047] 本发明实施例提供的作业程序自动评分方法,还可W与目前教学中已有的系统相 结合,轻松实现学生作业提交、评阅、反馈全自动完成。
[0048]本发明实施例中,所述作业程序W预设的文件格式命名并存储在指定的文件目录 下。例如,预设的文件格式为:姓名_语言_提交文件的时间.语言后缀名,指定的文件夹 为:d: \test\。
[0049] 本发明实施例中,例如,需要对王刚学生在20151106提交的C++作业程序 "wanggang_C++_20151106.C卵"进行评分,"wanggang_C++_20151106.C卵"代码如下:
[0050]
[005。 参看图2所示,本发明实施例中,在d:\test\目录下捜索到作业程序"wanggang_ C++_20151106.cpp"后,载入该作业程序,可W自动或手动选择"头文件(iostream)"、"标准 命名空间"、"主函数头"、"主函数返回值"、"输出(cout)"运5个得分点作为评分依据。
[0052] 本发明实施例中,加载正则表达
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1