一种图形化编程作品的评测方法技术

技术编号:29583145 阅读:14 留言:0更新日期:2021-08-06 19:40
本发明专利技术提供了一种基于图嵌入和程序复杂度的图形化编程作品的评测方法,包括针对作品的源代码文件,建立抽象语法树,并通过图嵌入得到语法树的图向量,将作品与参考作品的图向量相似度作为逻辑性特征;采用Halstead度量法计算工作量特征;采用McCabe度量法计算复杂度特征;通过静态匹配提取得到作品的关键变量与任务无关统计量;将以上特征以及老师作为特征输入下游分类器进行分类,计算得出作品的评分。本发明专利技术引入逻辑性特征,适用于答案不唯一的情况;兼顾逻辑性、工作量、复杂度、老师、关键变量和任务无关统计等多维度的特征,一定程序上解决了图形化编程中存在的创新性问题和鼓励性问题,使得评分能够准确反应学生的实际水平。

【技术实现步骤摘要】
一种图形化编程作品的评测方法
本专利技术涉及计算机
,具体涉及一种图形化编程作品的评测方法。
技术介绍
面向图形化编程的项目式学习对于培养儿童的计算思维具有重要意义,图形化编程的学习旨在通过课程训练,培养和提升学生的创新思维,计算思维和编程思维,帮助他们更好更正确地掌握科学世界的底层逻辑,从而更好地应对解决未来人生的各种问题。相比传统的代码编程,图形化编程更加简单、易读、易上手,是适合所有少儿学员的入门平台。其中,Scratch是一款由麻省理工学院(MIT)设计开发的一款面向少年的简易编程工具。MIT做了相当深入研究和颇具针对性的设计开发。这个平台可以让低龄儿童编写属于自己的交互动画、游戏、故事甚至是音乐和美术作品。Scratch学习过程中,除了编程本身的内容外,Scratch可以将编程与学科内容以动画、游戏或者故事的形式表现出来,在加深编程理解的同时,还能对于学校学习有明显的促进作用,这是知其然和知其所以然在的区别所在。提高孩子的沟通力、领导力、计算思维、逻辑思维、批判性思维以及对生活的关注力和观察力。但是,由于以下问题,自动评测图形化编程作品的结果并不能令人满意:1、与传统的OJ系统相比,图形化编程不存在标准的输入输出。2、为了促进学生的积极性,对于与参考答案相差较大和与任务无关的作品,老师也会尽可能地给予较高的评分。传统的解决方案是León等设计的Scratch作品计算思维评测工具Dr.Scratch[1],该工具设计了7个维度、每个维度4个级别的计算思维评价表,根据匹配规则的情况给出得分,但是在面对任务导向的学习中,受到任务本身局限性的影响,该方法仅有极少数规则有效且作品之间的差距不大。抽象语法树是源代码语法结构的抽象表示,并不局限于编程语言本身。以往的研究表明抽象语法树能比较好地表示图形化编程的作品,JiangB等利用树编辑抽象语法树表示图形化编程作品的编程轨迹[2],DavisRL利用抽象语法树表示作品,继而将抽象语法树转化为四种类型(颜色+文本+缩进;颜色+缩进;文本;空白)的图片,使用ResNet从图片分类的角度对图形化编程作品的评价进行了讨论[3]。该方法具有普适性,但是这种方法也仅是从代码的逻辑角度进行考虑,缺乏对于儿童不受限于任务的自由发挥以及儿童教育的鼓励的考量。此外,将图形化编程作品转化成图片的形式,在可拓展性上具有一定局限性,只能够利用到有限的信息(该研究中证明,颜色+缩进形式的图片在ResNet-18上的表现最佳,这种形式图片只能够利用代码的逻辑结构和代码块的类型)。在专利文件CN201911230187中,提出一种图形化编程作品的在线评测方法,该方法包括利用Dr.Scratch设计的计算思维维度能力等级评价表评测计算思维,采用McCabe度量法对圈复杂度进行评测,采用Halstead度量法对独立bug数、时间花费、工作量、难度、总操作数进行评测。该方法中,McCabe度量法以及Halstead度量法都能够避免任务本身局限性的影响。但是各个评测指标之间不存在联系,无法形成评测体系从整体上对作品进行评级,并且没有考虑到原始McCabe度量法、Halstead度量法在图形化编程作品的适用性问题。常重利用McCabe度量法和Halstead度量法对Scratch作品进行分析,提出了McCabe度量法在Scratch语言中的使用规则,利用编程中的过程数据对Halstead方法在Scratch语言的适用性进行了验证,并修正了部分度量指标[4]。该方法的指标适用于图形化编程,但仅停留在单一指标的提出,并未形成完整的体系。另外,现有的研究和工具均是基于Scratch以往版本或其他图形化编程语言的,其共性是源代码文件直接内含抽象语法树。2019年Scratch正式发布3.0版本,其内部实现技术与以往版本项目技术上差异较大,其源代码文件也不再直接内含抽象语法树,也无法根据前期版本中抽象语法树的构造方法构建3.0版本的抽象语法树,因此前者的成果也不能直接应用于后者。参考文献:[1]Moreno-LeónJ,RoblesG,Román-GonzálezM.Dr.Scratch:Automaticanalysisofscratchprojectstoassessandfostercomputationalthinking[J].RED.RevistadeEducaciónaDistancia,2015(46):1-23.[2]JiangB,ZhaoW,ZhangN,etal.Programmingtrajectoriesanalyticsinblock-basedprogramminglanguagelearning[J].InteractiveLearningEnvironments,2019:1-14.[3]DavisRL.PredictingUnit-TestScoresforGraphicRepresentationsofSimpleComputerPrograms[J].[4]常重.Scratch作品评测系统的研究与实现[D].北京邮电大学,2019.
技术实现思路
针对现有技术的不足,本专利技术的目的在于提供使用抽象语法树和图嵌入方法解决普适性问题,并从逻辑性、程序复杂度、创新性等多角度考虑的,偏向鼓励性质的图形化编程的综合评价方法。为实现上述目的,本专利技术通过以下技术方案予以实现。一种图形化编程作品的评测方法,包括:S1.获取图形化编程作品的特征;S2.对类别型特征进行处理;S3.将非类别型特征和类别型特征的处理结果输入分类器,获取评测分数。进一步的,所述步骤S1中,所述特征包括逻辑性特征,所述逻辑性特征的计算方法为:S11.获取作品的源代码;S12.为所述源代码构造抽象语法树;S13.对所述抽象语法树进行图嵌入获得图向量R;S14.逻辑性特征为作品的图向量R与一个或多个参考作品的图向量的最大相似度。进一步的,在步骤S12中,构建抽象语法树的规则为:(a)以舞台为根结点,属性为stage;(b)以角色作为舞台结点的子结点,属性为role;(c)以角色所实现的功能作为角色结点的子结点,功能表现为实现所述角色的代码块,代码块与代码块之间根据逻辑关系进行连接,属性为代码块的代码类型。进一步的,所述步骤S1中,所述特征还包括工作量特征、复杂度特征、老师偏好特征、关键变量特征和/或任务不相同统计量特征。进一步的,所述工作量特征包括操作量O和时间开销T',通过改造的Halstead方法计算。进一步的,所述复杂度特征的计算方法为:初始化复杂度为1;遍历源代码,如果匹配到预置的操作码,则累加所述操作码对应的额外分支数;优选的,代码块为and、or、if、if-else、repeat、repeat-until、forever和stop。进一步的,在所述步骤S2中,所述老师偏好的处理方法为:对批改老师进行独热编码。...

【技术保护点】
1.一种图形化编程作品的评测方法,其特征在于,该方法包括:/nS1.获取图形化编程作品的特征;/nS2.对类别型特征进行处理;/nS3.将非类别型特征和类别型特征的处理结果输入分类器,获取评测分数。/n

【技术特征摘要】
1.一种图形化编程作品的评测方法,其特征在于,该方法包括:
S1.获取图形化编程作品的特征;
S2.对类别型特征进行处理;
S3.将非类别型特征和类别型特征的处理结果输入分类器,获取评测分数。


2.根据权利要求1所述的评测方法,其特征在于,所述步骤S1中,所述特征包括逻辑性特征,所述逻辑性特征的计算方法为:
S11.获取作品的源代码;
S12.为所述源代码构造抽象语法树;
S13.对所述抽象语法树进行图嵌入获得图向量;
S14.逻辑性特征为作品的图向量与一个或多个参考作品的图向量的最大相似度。


3.根据权利要求2所述的评测方法,其特征在于,在步骤S12中,构建抽象语法树的规则为:(a)以舞台为根结点,属性为stage;(b)以角色作为舞台结点的子结点,属性为role;(c)以角色所实现的功能作为角色结点的子结点,功能表现为实现所述角色的代码块,代码块与代码块之间根据逻辑关系进行连接,属性为代码块的代码类型。


4.根据权利要求2所述的评测方法,其特征在于,所述步骤S1中,所述特征还包括工作量特征、复杂度特征、老师偏好特征、关键变量特征和/或任务不相同统计量特征。


5.根据权利要求4所述的评测方法,其特征在于,所述工作量特征包括操作量O和时间开销T',通过改造的H...

【专利技术属性】
技术研发人员:吴明晖吴浩金苍宏
申请(专利权)人:浙大城市学院
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1