CN110765014A - 一种Python绘图程序题自动评测方法 - Google Patents
一种Python绘图程序题自动评测方法 Download PDFInfo
- Publication number
- CN110765014A CN110765014A CN201911005227.4A CN201911005227A CN110765014A CN 110765014 A CN110765014 A CN 110765014A CN 201911005227 A CN201911005227 A CN 201911005227A CN 110765014 A CN110765014 A CN 110765014A
- Authority
- CN
- China
- Prior art keywords
- program
- python
- evaluation method
- tested
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 106
- 238000004458 analytical method Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000003068 static effect Effects 0.000 claims abstract description 33
- 238000012360 testing method Methods 0.000 claims abstract description 24
- 241000270666 Testudines Species 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种Python绘图程序题自动评测方法,使用静态评测与动态评测相结合的方法进行Python绘图程序题自动评测;其中,静态评测方法分析待测源程序的词法、语法,并与标准源程序词法、语法分析结果比对进行评分;动态评测方法根据测试用例运行待测程序,并将运行结果与标准结果比对进行评分;当运动结果唯一时,将绘制结果转存为SVG文件,根据SVG文件相似度对待测程序进行评分。当运行结果不唯一时,根据测试用例运行待测程序,提取绘制结果图像的颜色或形状特征或二者的组合,与标准结果图像比对进行评分。本发明结合静态评测和动态评测方法对Python绘图源程序进行自动评测,为Python教学评测带来了极大的便利,提高了评测效率。
Description
技术领域
本发明涉及一种编程题自动评测方法,特别涉及一种Python绘图程序题自动评测方法。
背景技术
随着教育信息化进程的不断推进,教育教学模式及评测方式都发生了巨大的变革。越来越多的自动化处理工具应用到教育教学及评测考核的各个方面,其中自动评测系统以其高效便捷、节省人力物力等优势获得青睐,广泛地应用到对于学生学习成果检测当中。自动评测系统的出现为教育教学评测带来了极大的便利,其高度信息化提升了评测效率,高度程序化减少主观因素对于评测结果的影响。
从自动评测系统的题目类型来看可以分为客观题和主观题。其中客观题如填空题、选择题因其答案较固定所以评分方案已经十分成熟,而主观题目答案不固定且对于主观题目的评测会涉及到自然语言处理、模式匹配、人工智能等众多领域,其难度大大增加。如何客观公正准确的对答案进行评分对一个自动评测系统至关重要。
随着人工智能时代的到来,Python凭借其简洁、灵活、资源丰富等特点逐步崭露头角,近年来Python在国内外学界也广受欢迎,许多高校不断地在Python教育教学方面进行尝试,相继开设Python课程作为必修课程。通过对于国内外程序语言类自动评测系统调研,可以发现目前国内外已经有许多较为成熟的程序语言类评测系统。这些系统对于选择题、填空题的评测已经十分精准,但是对于主观程序题评测仍然没有精准、高效的解决方案。随着Python语言的高速发展与广泛普及,Python主观程序题测评方法的研究尤为迫切。
发明内容
本发明的目的在于针对现有技术的不足,提供一种Python绘图程序题自动评测方法,可以准确的对Python绘图程序题进行自动评测。
为达到上述目的,本发明提供了一种Python绘图程序题自动评测方法,使用静态评测与动态评测相结合的方法进行Python绘图程序题自动评测;其中,
静态评测方法分析待测源程序的词法、语法,并与标准源程序词法、语法分析结果比对进行评分;
动态评测方法根据测试用例运行待测程序,并将运行结果与标准结果比对进行评分;
当运动结果唯一时,所述动态评测方法为:
根据测试用例运行待测程序,获取Canvas画布,将绘制结果转存为SVG文件,忽略SVG文件的时间戳,并将该SVG文件与标准绘制结果SVG文件进行比较,根据文件相似度对待测程序进行评分。
当运行结果不唯一时,所述动态评测方法为:
根据测试用例运行待测程序,提取绘制结果图像的颜色或形状特征或二者的组合,与标准结果图像比对进行评分。
优选地,所述提取绘制结果图像颜色特征的方法为:
将图像分为规则的区域,计算区域内颜色直方图相似度,最后得到各区域的平均相似度,与标准结果图像的颜色特征比对进行评分。
优选地,所述提取绘制结果形状特征的方法为:
根据测试用例运行待测程序,提取绘制结果图像的Hu不变矩形状特征,与标准结果图像的Hu不变矩形状特征比对进行评分;
优选地,所述动态评测方法还包括:
根据测试用例运行待测程序,将绘制结果图像与标准结果图像输入图像分类器,对分类结果比对进行评分。
优选地,所述静态评测方法的词法分析包括以下步骤:
对待测程序的源程序以字符串形式进行扫描,按照Python语法规则识别出具有独立意义的单词;
为所述识别出的单词进行分类,为每种类型定义相应的符号Token;将Python绘图库Turtle方法调用识别为独立的Token;
生成待测源程序的符号Token序列;
计算待测程序Token序列与标准程序Token序列相似度,根据此相似度对待测程序评分。
优选地,所述静态评测方法的语法分析包括以下步骤:
将待测程序生成的Token序列作为原始输入输入语法分析器,符合语法规则则生成与之对应的抽象语法树,若不符合语法规则则返回错误提示;
生成标准程序Token序列的抽象语法树;
计算待测程序与标准程序对应的抽象语法树的相似度,根据此相似度对待测程序评分。
优选地,所述语法分析还包括以下步骤:
将抽象语法树中与控制流、数据流有关的节点定义为关键节点,将关键节点的所有子节点也定义为关键节点,保留抽象语法树中所有的关键节点;
在抽象语法树中按照三大控制结构:循环结构、选择结构、顺序结构对语法树进行分割,分割后的子树只包括某一种控制结构,将分割后的子树作为相似度匹配的匹配单元;
若子树结构及节点相同,则认为子树相似;计算标准程序与待测程序抽象语法树相似子树中节点个数,将其与标准程序抽象语法树总节点数的比值作为相似度的数值。
优选地,所述静态评测方法还包括程序关键特征提取与匹配步骤:
输入程序评分时作为依据的关键字集合,并为每个关键字输入对应权重,计算待测源程序的关键字匹配度,根据此匹配度对待测程序进行评分。
本发明还提供了一种终端,包括处理器、输入设备、输出设备和存储器,所述存储器用于存储程序代码,所述处理器被配置用于运行所述程序代码,执行本发明的Python绘图程序题自动评测方法。
本发明还提供了一种计算机可读存储介质,所述计算机存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行本发明的Python绘图程序题自动评测方法。
有益效果
本发明提供的Python绘图程序题自动评测方法和终端,通过对绘图结果的分析、特征提取和比对,结合静态评测和动态评测方法对Python绘图源程序进行自动评测,为Python教学评测带来了极大的便利,提高了评测效率。
附图说明
图1为实施例1中Python绘图程序题自动评测方法的流程图。
图2为Python四则运算5+7*(8-6)+3的抽象语法树表示。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Python绘图程序题是一类典型的主观程序题,也是Python编程学习时一种重要的题目类型。参考其他的一些编程语言程序设计的评测方法,现有的程序设计评测方法主要分为静态分析与动态分析两种。
动态分析根据测试用例来对程序的运行结果进行匹配,进而进行程序评分。早期出现的自动评测系统其评测方案大多为动态分析,同时动态分析也是自动评测不可或缺的评测方案。动态分析评测方案需要解决的问题包括:测试用例选择、执行目标程序、目标程序标准程序结果分析。动态分析处理流程如下:首先将学生程序进行预处理、编译、运行。若程序可以运行,则输入测试用例将输出结果与期望值进行比较,根据目标程序通过的测试用例的个数给出程序评分。动态分析是十分直观的程序评判方式,但是输入的测试用例有限,所以在设置测试用例时需要尽可能覆盖绝大多数程序执行路径,这样才能更加全面的对于目标程序进行评测。由于动态分析需要执行学生程序,因而在进行评测时需要预先进行评测代码检查。
本发明采用动态分析作为主要的自动评测方法,但是也采用静态分析方法作为补充。静态分析代码评测是通过分析源程序对源程序代码进行评测。动态分析需要程序可执行,而静态代码分析不需要待测程序能够编译运行,其操作对象为程序源代码,所以静态分析可以对于语义不完整的程序进行测评,即使程序存在错误不能运行,静态分析仍然可以根据其词法、语法及程序关键点给予待测程序相应分数。通过静态代码分析基于程序特征及语法结构在语法结构及语义角度衡量标准程序与目标程序相似度,这一过程十分贴近于人工评分思路,因此可以作为动态分析方法的有益补充。
对于一般的编程语言评测系统,运行测试用例后的输出结果往往可以存储为一个文本文件,例如C语言的绘图题往往是把各种字符组合成图案输出到屏幕,因此可以将屏幕输出结果存储到一个文本文件中,从而通过对文本文件的比对实现程序评分。但是Python绘图程序题使用的是Python中的Turtle绘图库。Turtle绘图基本原理是用程序控制一只小海龟爬行,并将其轨迹动态生成图形进行输出。运行待测程序后可以通过turtle graphics查看运行结果,Turtle库尚未提供运行结果存文件的方案,所以需要寻找一种方式将运行结果以图形文件的形式保存下来,提供给后续步骤进行动态结果比对。
通过对于Turtle绘图方法及绘图原理进行研究,可以发现绘图人员进行的Turtle绘图是在Canvas画布中展开,因此只需获取到Canvas画布就可以将Turtle绘图结果保存下来。例如可以使用getscreen及getcanvas方法获取Canvas画布,而后使用canvas2svg方法将绘制结果转存为SVG文件,这样完成了绘制结果保存工作。
SVG(Scalable Vector Graphics)是基于XML(可扩展标记语言)的可伸缩矢量图形,矢量图形运用点和线等矢量化的数据描述图像,并在图像中包含色彩和位置信息,同时保证图像不会因位置移动缩放等操作受损。SVG文件能够很好的展示并记录Python Turtle库绘图结果。SVG主体中的语法和格式定义遵循XML标准,通过各类元素标签和标签对应的属性来描述SVG对象。因此可以通过文件对比的方式来进行目标结果文件和标准结果文件对比。需要注意的是SVG文件可以记录图像绘制时间,所以在文件对比前,需要忽略时间戳。
上述比对SVG文件的方法只适用于绘图结果唯一的情况,例如题目“使用Turtle绘图库,以原点为圆心,绘制半径为50的圆。画笔尺寸设置为3,画笔颜色设置为红色,无填充。”
有的Python绘图题答案不是唯一的,例如不指定半径的圆,不指定是否填充等。也就是对于有的Python绘图题来说,绘图的位置、画笔尺寸、画笔颜色、填充颜色、数量等都有可能发生变化。此时就无法通过SVG文件的比对进行评测,需要提取绘制结果图像的特征,对于绘图结果评测比较重要的特征有颜色或形状特征或二者的组合。
本发明实施例1使用静态评测与动态评测相结合的方法进行Python绘图程序题自动评测,如图1所示;对源程序首先使用动态评测方法S1,根据测试用例运行待测程序,并将运行结果与标准结果比对进行评分。
当运动结果唯一时,所述动态评测方法为:
根据测试用例运行待测程序,获取Canvas画布,将绘制结果转存为SVG文件,忽略SVG文件的时间戳,并将该SVG文件与标准绘制结果SVG文件进行比较,根据文件相似度对待测程序进行评分。
当运行结果不唯一时,所述动态评测方法为:
根据测试用例运行待测程序,提取绘制结果图像的颜色或形状特征或二者的组合,与标准结果图像比对进行评分。
实施例1在动态评测方法评分后,结合使用静态评测方法作为补充。静态评测方法对待测源程序进行词法分析S2和语法分析S3,并与标准源程序词法、语法分析结果比对进行评分。
实施例1中采用颜色直方图的方式来描述颜色特征。颜色直方图是一种有效的颜色特征提取方法,提取图像颜色特征操作简单,匹配快速,检索有效。同时具备了良好的RST(rotation、scale、translation)不变性。传统颜色直方图忽略了颜色特征在图像中的分布情况。为了克服上述不足,需要加入图像颜色空间的描述信息。
实施例1提取绘制结果图像颜色特征的方法为:
将图像分为规则的区域,计算区域内颜色直方图相似度,最后得到各区域的平均相似度,与标准结果图像的颜色特征比对进行评分。这种方法在一定程度上增加了图像颜色的细节内容,强化了图像颜色的空间位置分布信息。
在Turtle绘制结果正确性评判过程中,形状判断可以说是最为重要的评价指标。图形绘制结果是程序绘制的最终产物,是代码运行逻辑最为直观的体现。形状特征提取有两类方法:基于区域内部的形状提取方法和基于区域外部的形状提取方法,如骨架、矩形度、圆形度、Fourier描述子、角点检测、Hu不变矩等。其中,Hu矩特征具有图像在平移、缩放、旋转等几何变换时保持不变的优良特征。
实施例1中提取绘制结果形状特征的方法为:
根据测试用例运行待测程序,提取绘制结果图像的Hu不变矩形状特征,与标准结果图像的Hu不变矩形状特征比对进行评分。
但是,对于图形轮廓发生改变,但仍属于正确答案范畴的图形,显然Hu不变矩不能够很好的对这类题目进行形状特征匹配。因此,实施例1的动态评测方法还包括:
根据测试用例运行待测程序,将绘制结果图像与标准结果图像输入图像分类器,对分类结果比对进行评分。
实施例1中的图像分类器是通过神经网络训练出的分类器,训练集为PythonTurtle库绘图程序绘制结果。
在动态评测方法之外,实施例1还结合使用了静态评测方法。实施例1的静态评测方法中,词法分析包括以下步骤:
对待测程序的源程序以字符串形式进行扫描,按照Python语法规则识别出具有独立意义的单词;
为所述识别出的单词进行分类,为每种类型定义相应的符号Token;将Python绘图库Turtle方法调用识别为独立的Token;
生成待测源程序的符号Token序列;
计算待测程序Token序列与标准程序Token序列相似度,根据此相似度对待测程序评分。
以简单的Python代码片段y=7-22*(q+v)为例,经过词法分析步骤处理后,生成的Token序列如表1所示。
表1代码段Token序列表
由于实施例1评测对象为Python Turtle库绘图程序,程序中出现大量Turtle绘图方法调用,为了提高评测精度,将Turtle方法调用识别为独立的Token定义为TURTLE_FUNC。
实施例1中,静态评测方法的语法分析包括以下步骤:
将待测程序生成的Token序列作为原始输入输入语法分析器,符合语法规则则生成与之对应的抽象语法树,若不符合语法规则则返回错误提示;
生成标准程序Token序列的抽象语法树;
计算待测程序与标准程序对应的抽象语法树的相似度,根据此相似度对待测程序评分。
抽象语法树是程序源代码语法结构的抽象表示。抽象语法树以一种树状结构来表现代码的语法结构,树的主要组成元素是节点,而抽象语法树的节点代表源代码中的一种结构,它并不会展示源代码的全部细节,能够更加清晰地展示语法结构。Python四则运算5+7*(8-6)+3的抽象语法树表示形式如图2所示。
抽象语法树节点主要分为以下类别:标识符节点、声明节点、类型节点、语句节点、表达式节点等。抽象语法树作为一种树形结构,随着抽象语法树的扩展其数量呈几何倍数增长,为提高系统运行效率,本方案将对产生的抽象语法树进行冗余优化:将抽象语法树中与控制流、数据流有关的节点定义为关键节点,将关键节点的所有子节点也定义为关键节点,保留抽象语法树中所有的关键节点。
经过如上过程得到了消除冗余后的抽象语法树,如果直接对消除冗余后的标准程序语法树与待测源程序语法树进行匹配,时间复杂度过高,降低处理效率。为了提高匹配效率,实施例1进行子树分割,在抽象语法树中按照三大控制结构:循环结构、选择结构、顺序结构对语法树进行分割,分割后的子树只包括某一种控制结构:如将if、if-else视为选择结构、for、while视为循环结构。分割后的子树将作为相似度匹配的匹配单元。
实施例1中,进行抽象语法树相似度匹配的方法为:
若子树结构及节点相同,则认为子树相似;计算标准程序与待测程序抽象语法树相似子树中节点个数,将其与标准程序抽象语法树总节点数的比值作为相似度的数值。
参考传统人工评阅方案,面对一个待评测程序,程序是否具有得分关键点是一个关键评测指标。为模拟人工评测过程,实施例1中的静态评测方法还包括程序关键特征提取与匹配步骤:
输入程序评分时作为依据的关键字集合,并为每个关键字输入对应权重,计算待测源程序的关键字匹配度,根据此匹配度对待测程序进行评分。
根据Python Turtle库绘图程序考察要求及考核目标,将关键特征分为主要两大类:关键方法、关键值。关键方法如:turtle.fd、turtle.seth等;循环结构for、while等;关键值如:pensize、pencolor等。
通过设置关键特征,对于绘制结果颜色特征的考察,本方案不仅仅在动态分析部分进行,在静态分析中的代码关键特征提取部分也比对图形的绘制颜色。运用动态分析弥补了静态分析中对于空间范围描述的缺失,运用静态分析弥补了动态分析中颜色使用判断的精准度。因此,静态分析与动态分析相结合使得评测结果更加准确。
本发明实施例1还提供了一种终端,包括处理器、输入设备、输出设备和存储器,所述存储器用于存储程序代码,所述处理器被配置用于运行所述程序代码,执行本发明的Python绘图程序题自动评测方法。
本发明实施例1还提供了一种计算机可读存储介质,所述计算机存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行本发明的Python绘图程序题自动评测方法。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入本发明权利要求所限定的范围之内。
Claims (10)
1.一种Python绘图程序题自动评测方法,其特征在于,使用静态评测与动态评测相结合的方法进行Python绘图程序题自动评测;其中,
静态评测方法分析待测源程序的词法、语法,并与标准源程序词法、语法分析结果比对进行评分;
动态评测方法根据测试用例运行待测程序,并将运行结果与标准结果比对进行评分;
当运动结果唯一时,所述动态评测方法为:
根据测试用例运行待测程序,获取Canvas画布,将绘制结果转存为SVG文件,忽略SVG文件的时间戳,并将该SVG文件与标准绘制结果SVG文件进行比较,根据文件相似度对待测程序进行评分。
当运行结果不唯一时,所述动态评测方法为:
根据测试用例运行待测程序,提取绘制结果图像的颜色或形状特征或二者的组合,与标准结果图像比对进行评分。
2.基于权利要求1所述的Python绘图程序题自动评测方法,其特征在于,所述提取绘制结果图像颜色特征的方法为:
将图像分为规则的区域,计算区域内颜色直方图相似度,最后得到各区域的平均相似度,与标准结果图像的颜色特征比对进行评分。
3.基于权利要求1所述的Python绘图程序题自动评测方法,其特征在于,所述提取绘制结果形状特征的方法为:
根据测试用例运行待测程序,提取绘制结果图像的Hu不变矩形状特征,与标准结果图像的Hu不变矩形状特征比对进行评分。
4.基于权利要求1所述的Python绘图程序题自动评测方法,其特征在于,所述动态评测方法还包括:
根据测试用例运行待测程序,将绘制结果图像与标准结果图像输入图像分类器,对分类结果比对进行评分。
5.基于权利要求1所述的Python绘图程序题自动评测方法,其特征在于,所述静态评测方法的词法分析包括以下步骤:
对待测程序的源程序以字符串形式进行扫描,按照Python语法规则识别出具有独立意义的单词;
为所述识别出的单词进行分类,为每种类型定义相应的符号Token;将Python绘图库Turtle方法调用识别为独立的Token;
生成待测源程序的符号Token序列;
计算待测程序Token序列与标准程序Token序列相似度,根据此相似度对待测程序评分。
6.基于权利要求5所述的Python绘图程序题自动评测方法,其特征在于,所述静态评测方法的语法分析包括以下步骤:
将待测程序生成的Token序列作为原始输入输入语法分析器,符合语法规则则生成与之对应的抽象语法树,若不符合语法规则则返回错误提示;
生成标准程序Token序列的抽象语法树;
计算待测程序与标准程序对应的抽象语法树的相似度,根据此相似度对待测程序评分。
7.基于权利要求6所述的Python绘图程序题自动评测方法,其特征在于,所述语法分析还包括以下步骤:
将抽象语法树中与控制流、数据流有关的节点定义为关键节点,将关键节点的所有子节点也定义为关键节点,保留抽象语法树中所有的关键节点;
在抽象语法树中按照三大控制结构:循环结构、选择结构、顺序结构对语法树进行分割,分割后的子树只包括某一种控制结构,将分割后的子树作为相似度匹配的匹配单元;
若子树结构及节点相同,则认为子树相似;计算标准程序与待测程序抽象语法树相似子树中节点个数,将其与标准程序抽象语法树总节点数的比值作为相似度的数值。
8.基于权利要求7所述的Python绘图程序题自动评测方法,其特征在于,所述静态评测方法还包括程序关键特征提取与匹配步骤:
输入程序评分时作为依据的关键字集合,并为每个关键字输入对应权重,计算待测源程序的关键字匹配度,根据此匹配度对待测程序进行评分。
9.一种终端,包括处理器、输入设备、输出设备和存储器,其特征在于,所述存储器用于存储程序代码,所述处理器被配置用于运行所述程序代码,执行如权利要求1-8任一项所述的Python绘图程序题自动评测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8任一项所述的Python绘图程序题自动评测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005227.4A CN110765014B (zh) | 2019-10-22 | 2019-10-22 | 一种Python绘图程序题自动评测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911005227.4A CN110765014B (zh) | 2019-10-22 | 2019-10-22 | 一种Python绘图程序题自动评测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765014A true CN110765014A (zh) | 2020-02-07 |
CN110765014B CN110765014B (zh) | 2021-01-15 |
Family
ID=69332519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911005227.4A Active CN110765014B (zh) | 2019-10-22 | 2019-10-22 | 一种Python绘图程序题自动评测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765014B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368697A (zh) * | 2020-02-28 | 2020-07-03 | 中国建设银行股份有限公司 | 一种信息识别方法和装置 |
CN111401137A (zh) * | 2020-02-24 | 2020-07-10 | 中国建设银行股份有限公司 | 证件栏位识别的方法和装置 |
CN111914541A (zh) * | 2020-07-02 | 2020-11-10 | 蜂巢在线(广州)教育科技有限公司 | 计算机程序答题评分系统、方法、装置和存储介质 |
CN112799938A (zh) * | 2021-01-22 | 2021-05-14 | 中森云链(成都)科技有限责任公司 | 一种基于python的microbit编程题目自动评测方法及系统 |
CN113220286A (zh) * | 2021-04-27 | 2021-08-06 | 浙大城市学院 | 一种图形化编程作品的评测方法 |
CN114489664A (zh) * | 2021-12-24 | 2022-05-13 | 深圳技术大学 | 判题方法及系统 |
CN115376375A (zh) * | 2021-05-21 | 2022-11-22 | 卡西欧计算机株式会社 | 信息处理装置、记录介质以及信息处理方法 |
CN117331836A (zh) * | 2023-10-16 | 2024-01-02 | 中教畅享(北京)科技有限公司 | 一种基于代码语法树分析的评测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150317234A1 (en) * | 2014-05-02 | 2015-11-05 | International Business Machines Corporation | System, method, apparatus and computer program for automatic evaluation of user interfaces in software programs |
US20190155715A1 (en) * | 2017-11-21 | 2019-05-23 | Accenture Global Solutions Limited | Intelligent code quality monitoring |
CN109871322A (zh) * | 2019-01-28 | 2019-06-11 | 华南理工大学 | 一种基于机器学习的程序题自动评分方法 |
CN109933333A (zh) * | 2019-03-13 | 2019-06-25 | 中南大学 | 基于系统依赖图和图编辑距离算法的自动评分方法 |
-
2019
- 2019-10-22 CN CN201911005227.4A patent/CN110765014B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150317234A1 (en) * | 2014-05-02 | 2015-11-05 | International Business Machines Corporation | System, method, apparatus and computer program for automatic evaluation of user interfaces in software programs |
US20190155715A1 (en) * | 2017-11-21 | 2019-05-23 | Accenture Global Solutions Limited | Intelligent code quality monitoring |
CN109871322A (zh) * | 2019-01-28 | 2019-06-11 | 华南理工大学 | 一种基于机器学习的程序题自动评分方法 |
CN109933333A (zh) * | 2019-03-13 | 2019-06-25 | 中南大学 | 基于系统依赖图和图编辑距离算法的自动评分方法 |
Non-Patent Citations (1)
Title |
---|
嵩天等: "Python语言程序设计教学案例新思维", 《计算机教育》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401137A (zh) * | 2020-02-24 | 2020-07-10 | 中国建设银行股份有限公司 | 证件栏位识别的方法和装置 |
CN111368697A (zh) * | 2020-02-28 | 2020-07-03 | 中国建设银行股份有限公司 | 一种信息识别方法和装置 |
CN111914541A (zh) * | 2020-07-02 | 2020-11-10 | 蜂巢在线(广州)教育科技有限公司 | 计算机程序答题评分系统、方法、装置和存储介质 |
CN112799938A (zh) * | 2021-01-22 | 2021-05-14 | 中森云链(成都)科技有限责任公司 | 一种基于python的microbit编程题目自动评测方法及系统 |
CN113220286A (zh) * | 2021-04-27 | 2021-08-06 | 浙大城市学院 | 一种图形化编程作品的评测方法 |
CN113220286B (zh) * | 2021-04-27 | 2022-04-19 | 浙大城市学院 | 一种图形化编程作品的评测方法 |
CN115376375A (zh) * | 2021-05-21 | 2022-11-22 | 卡西欧计算机株式会社 | 信息处理装置、记录介质以及信息处理方法 |
CN114489664A (zh) * | 2021-12-24 | 2022-05-13 | 深圳技术大学 | 判题方法及系统 |
CN117331836A (zh) * | 2023-10-16 | 2024-01-02 | 中教畅享(北京)科技有限公司 | 一种基于代码语法树分析的评测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110765014B (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765014B (zh) | 一种Python绘图程序题自动评测方法 | |
CN109977205B (zh) | 一种计算机自主学习源代码的方法 | |
CN111639171A (zh) | 一种知识图谱问答方法及装置 | |
CN111930906A (zh) | 基于语义块的知识图谱问答方法及装置 | |
CN111597356B (zh) | 智能化教育知识图谱构建系统与方法 | |
CN109871322B (zh) | 一种基于机器学习的程序题自动评分方法 | |
CN113407675A (zh) | 教育题目自动批改方法、装置和电子设备 | |
US12125406B1 (en) | Semantic reasoning method and terminal for learning target in education metaverse | |
CN110968708A (zh) | 一种教育信息资源属性标注方法及系统 | |
CN115858750A (zh) | 基于自然语言处理的电网技术标准智能问答方法及系统 | |
CN116561274A (zh) | 一种基于数字人技术与自然语言大模型的知识问答方法 | |
CN112101029A (zh) | 一种基于bert模型的高校导师推荐管理方法 | |
Zhang et al. | Application and analysis of image recognition technology based on Artificial Intelligence--machine learning algorithm as an example | |
CN116485597A (zh) | 基于岗位能力模型的标准化实训方法 | |
CN118467985A (zh) | 一种基于自然语言的训练评分方法 | |
CN113407676A (zh) | 题目批改方法和系统、电子设备和计算机可读介质 | |
CN113066358A (zh) | 理科教学辅助系统 | |
CN117216184A (zh) | 评论处理方法、装置、电子设备、存储介质以及程序产品 | |
CN112329389B (zh) | 一种基于语义分割与禁忌搜索的汉字笔画自动提取方法 | |
Lin et al. | Design and implementation of intelligent scoring system for handwritten short answer based on deep learning | |
Zhang et al. | Research on Defect Location Method of C Language Code Based on Deep Learning | |
CN114596353B (zh) | 一种题目处理方法、装置、设备及计算机可读存储介质 | |
Khardon | Learning Horn Expressions with LogAn-H. | |
CN113220286B (zh) | 一种图形化编程作品的评测方法 | |
Auxepaules et al. | A diagnosis method that matches class diagrams in a learning environment for object-oriented modeling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |