掌桥专利:专业的专利平台
掌桥专利
首页

一种绘图编程类考题自动测评方法

文献发布时间:2023-06-19 10:58:46


一种绘图编程类考题自动测评方法

技术领域

本发明涉及编程教育领域,具体为绘图编程类考题自动测评方法。

背景技术

随着人工智能的逐渐兴起,编程已经被推到了风口浪尖之上,全世界都在推动编程教育行业的发展,少儿编程的关注度也在持续走高。信息技术作为高考选考科目之一,率先加入了编程内容。学习编程不再只是单纯培养兴趣爱好,更是作为一门升学的学科来学习。

虽然众多中小学校已经引入的编程教学,但是目前学校对于编程类考题的测评都以老师人工批改为主,评分时的人为情绪等原因造成评分的偏差,这些对于学生都是不公平的。此外,老师在评判学生的编程题作业时,需要拷贝程序、运行程序,拿到生成的图片之后,再对比标准答案(图片)后才能给出分数,工作量大,且费时耗力,也不能24小时全天工作,无法满足任意时间点出现的评测需求。

综上,本发明设计出一种绘图编程类考题自动测评方法,对于减少编程教师的工作量,提升编程考试评分的公平性,具有十分重要的作用。

发明内容

本发明所要解决的技术问题是如何实现对绘图编程类考题的自动测评。

为达到此目的,本发明提出了一种绘图编程类考题自动测评方法,包括以下步骤:

S1:通过命令行参数的形式获取待评测代码、考题答案、得分权重和及格分数线;

S2:在Python环境中标记评测点;

S3:根据所述测试用例的输入,运行所述待测评代码,得到所述待测评代码的输出结果;

S4:将所述待测评代码的输出结果与所述测试用例期望的所述输出进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分。

优选地,所述步骤S1还包括:2.判断所述待测评代码内是否包含被禁止的第三方库,如果包含被禁止的第三方库,如os和sys,则停止所述待测评代码的运行。

优选地,所述步骤S1还包括:检查考题答案、得分权重和及格分数线等参数是否满足格式要求,满足则继续往下执行,不满足则返回错误信息。

S301:开始运行评测代码;

S302:通过子程序接收返回的数据;

S303:提取数据中标记的数据,并存储;

S304:等待程序运行结束;

S305:将存储的标记的数据解析,构建成用户答案;

S402:将用户答案与标准答案比较,记录每个知识点的得分和失分以及失分的原因;

S401:将用户答案与标准答案比较,并根据权重和分数,计算出用户的得分;

S402:将得分与及格分数线比较,如果得分大于及格分数线,则评测通过,返回得分,如果得分小于及格分数线,则评测不通过,返回得分和失分提示。

系统包括接收单元、解析单元、运行单元和比较单元:

所述接收单元用于从cmd命令行参数中获取待评测代码、考题答案、得分权重和及格分数线等参数;

所述解析单元用于解析和校验待评测代码、考题答案、得分权重和及格分数线等参数;

所述运行单元用于运行所述待测评代码,得到所述待测评代码的输出结果,并构建用户答案;

所述比较单元用于将所述待测评代码的用户答案与标准答案进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分;

所述比较单元还用于将所述的评测结果返回给所诉命令行,便于调用系统接收评测结果。

通过采用本发明所提供的绘图编程类考题自动测评方法:,可以为在线教育平台学习计算机程序设计Python课程提供运行程序的环境;可以根据老师设置的程序用例,实时地、自动地评判程序的正确性,并返回相应的分数和失分信息;能够有效解决老师对学生提交编程题作业的繁琐验证、不能有效客观给分、不能给出运行出错的帮助信息、不能给出程序参考代码等问题,从而更好地为编程语言类课程提供服务。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:图1示出了本发明绘图编程类考题自动测评方法的流程示意图。

具体实施方式

下面将结合附图对本发明的实施例进行详细描述。

实施例1:

如图1所示,本发明提供了一种绘图编程类考题自动测评方法,包括以下步骤:

直接拷贝项目代码到linux系统中;

通过cmd命令行调用本系统的API,运行评测代码;

通过cmd命令行调用本系统的API,获取评测得分;

通过cmd命令行调用本系统的API,获取失分信息;

S1:通过命令行参数的形式获取待评测代码、考题答案、得分权重和及格分数线;

S2:在Python环境中标记评测点;

S3:根据所述测试用例的输入,运行所述待测评代码,得到所述待测评代码的输出结果;

S4:将所述待测评代码的输出结果与所述测试用例期望的所述输出进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分。

优选地,所述步骤S1还包括:2.判断所述待测评代码内是否包含被禁止的第三方库,如果包含被禁止的第三方库,如os和sys,则停止所述待测评代码的运行。

优选地,所述步骤S1还包括:检查考题答案、得分权重和及格分数线等参数是否满足格式要求,满足则继续往下执行,不满足则返回错误信息。

S301:开始运行评测代码;

S302:通过子程序接收返回的数据;

S303:提取数据中标记的数据,并存储;

S304:等待程序运行结束;

S305:将存储的标记的数据解析,构建成用户答案;

S402:将用户答案与标准答案比较,记录每个知识点的得分和失分以及失分的原因;

S401:将用户答案与标准答案比较,并根据权重和分数,计算出用户的得分;

S402:将得分与及格分数线比较,如果得分大于及格分数线,则评测通过,返回得分,如果得分小于及格分数线,则评测不通过,返回得分和失分提示。

系统包括接收单元、解析单元、运行单元和比较单元:

所述接收单元用于从cmd命令行参数中获取待评测代码、考题答案、得分权重和及格分数线等参数;

所述解析单元用于解析和校验待评测代码、考题答案、得分权重和及格分数线等参数;

所述运行单元用于运行所述待测评代码,得到所述待测评代码的输出结果,并构建用户答案;

所述比较单元用于将所述待测评代码的用户答案与标准答案进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分;

所述比较单元还用于将所述的评测结果返回给所诉命令行,便于调用系统接收评测结果。

实施例2:

采用实施例1所述的cmd命令行形式的编程类考题自动测评方法,本发明还提供了一种Python包导入形式的绘图编程类考题自动测评方式,包括接收单元、解析单元、运行单元和比较单元;

系统包括接收单元、解析单元、运行单元和比较单元;

所述接收单元用于从cmd命令行参数中获取待评测代码、考题答案、得分权重和及格分数线等参数;

所述解析单元用于解析和校验待评测代码、考题答案、得分权重和及格分数线等参数;

所述运行单元用于运行所述待测评代码,得到所述待测评代码的输出结果,并构建用户答案;

所述比较单元用于将所述待测评代码的用户答案与标准答案进行匹配,并根据所述测试用例的权重和分数,计算所述待测评代码的得分;

所述比较单元还用于将所述的评测结果返回给所诉命令行,便于调用系统接收评测结果。

具体的,在出题模块,教师可以添加编程题,设置编程题类型、分数,起止时间等,填写编程题目,问题描述,测试用例,点击提交,即可生成一道编程题。其中,测试用例可以设置多组,每组测试用例有不同的输入,期望的输出;每组测试用例,可以设置不同的权重,从而得到不同的分值。而在答题模块,学生可以在“编辑代码”区域内进行待测评代码的编辑,如果代码有需要输入值,还可以填写相应的输入值,可以点击“提交”按钮运行代码,如果代码有问题,则会显示代码报错,会给出相应的出错信息提示。如果代码运行正常,则显示运行结果和评测结果。

通过采用本发明所提供的编程类考题自动测评方法,可以为在线教育平台学习计算机程序设计课程,比如Python程序设计课程提供在线编辑程序、运行程序的分布式集群测试环境;可以根据老师设置的程序用例,实时地、自动地评判程序的正确性,并返回相应的分数;还可以对提交的程序代码进行大数据分析,分析学生代码的相似率,达到防抄袭的目的,能够有效解决老师对学生提交编程题作业的繁琐验证、不能有效客观给分、不能给出编译运行出错的帮助信息、不能给出程序参考代码等问题,从而更好地为编程语言类课程提供服务。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件和必要的通用硬件平台的方式来实现。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均属于本发明所附权利要求所限定的范围之内。

技术分类

06120112759004