编程作业评分方法、装置、电子设备和存储介质制造方法及图纸

技术编号:34459497 阅读:12 留言:0更新日期:2022-08-06 17:15
本申请提供一种编程作业评分方法、装置、电子设备和存储介质,所述方法包括:获取编程作业的工程文件;基于预设排序规则对工程文件中的各代码块进行排序,确定排序后的工程文件;基于排序后的工程文件确定编程作业的哈希签名;将编程作业的哈希签名与哈希签名样本池进行匹配,确定编程作业的评分,其中,哈希签名样本池包括多个哈希签名及每个哈希签名对应的评分。这样,在对编程作业进行评分时,只需要对编程作业的工程文件进行排序并确定对应的哈希签名,根据哈希签名与哈希签名样本池的匹配结果即可确定编程作业的评分,无需完整运行编程作业的工程文件和参考答案对应的代码,减少了对编程作业进行评分的时间,提高了评分效率。率。率。

【技术实现步骤摘要】
编程作业评分方法、装置、电子设备和存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种编程作业评分方法、装置、电子设备和存储介质。

技术介绍

[0002]随着图形化编程软件的不断普及,越来越多的人使用图像化编程软件学习编程。在学习编程的过程中,学生通过图像化编程软件完成并提交相应的编程作业。为了对学生提交的编程作业进行评分,现有的方式是对编程作业的代码进行解析运算,确定编程作业的运行结果。然后将编程作业的运行结果与参考答案对应的代码的运行结果进行对比,根据对比结果对学生提交的编程作业进行评分。然而,上述方式需要预先配置参考答案对应的代码,并且需要完整运行编程作业和参考答案对应的代码,评分效率较低。

技术实现思路

[0003]本申请实施例的目的在于提供一种编程作业评分方法、装置、电子设备和计算机可读存储介质,用以提高对编程作业进行评分的效率。
[0004]第一方面,本专利技术提供一种编程作业评分方法,所述方法包括:获取编程作业的工程文件;基于预设排序规则对所述工程文件中的各代码块进行排序,确定排序后的工程文件;基于所述排序后的工程文件确定所述编程作业的哈希签名;将所述编程作业的哈希签名与哈希签名样本池进行匹配,确定所述编程作业的评分,其中,所述哈希签名样本池包括多个哈希签名及每个所述哈希签名对应的评分。
[0005]在上述实现过程中,首先基于预设排序规则对编程作业的工程文件中的各代码进行排序,确定排序后的工程文件;然后,基于排序后的工程文件确定编程作业的哈希签名,根据编程作业的哈希签名与哈希签名样本池进行匹配,确定编程作业的评分。在对编程作业进行评分时,只需要对编程作业的工程文件进行排序并确定对应的哈希签名,根据哈希签名与哈希签名样本池的匹配结果即可确定编程作业的评分,无需完整运行编程作业的工程文件和参考答案对应的代码,减少了对编程作业进行评分的时间,提高了评分效率。
[0006]在可选的实施方式中,所述基于预设排序规则对所述工程文件中的各代码块进行排序,确定排序后的工程文件,包括:对所述工程文件中的各代码块进行排序,得到各代码串树;其中,每个所述代码串树由一个积木块程序组对应的各代码块组成,且每个所述代码串树中的各代码块按照所述积木块程序组的执行逻辑顺序进行排序;对所述多个代码串树进行排序,得到所述排序后的工程文件。
[0007]在上述实现过程中,按照积木块程序组的执行逻辑顺序对每个代码串树中的各代码块进行排序,使得相同编程逻辑的工程文件经过上述排序后,得到的排序后的工程文件中各代码块的顺序相同。从而使得不同工程文件,只要具有相同的执行逻辑顺序,就可以得到相同的哈希签名,从而具有相同的评分。
[0008]在可选的实施方式中,所述对所述工程文件中的各代码块进行排序,得到各代码
串树,包括:确定出所述工程文件中的头节点代码块;所述头节点代码块为所述积木块程序组中第一个积木块对应的代码块;判断当前代码块中是否写有下一代码块信息;若有,将该下一代码块信息对应的下一代码块排列于所述当前代码块之后,并将下一代码块确定为新的当前代码块,重复上述过程;其中,第一个当前代码块为所述头节点代码块;若没有,确定当前排序得到的代码块集合为所述代码串树。
[0009]在可选的实施方式中,若当前代码块中存在多个字段中写有下一代码块信息,则:将目标代码块的第i字段中的下一代码块信息对应的下一代码块置于当前代码块之后;其中,所述目标代码块为该存在多个字段中写有下一代码块信息的当前代码块;将下一代码块确定为新的当前代码块,判断该新的当前代码块中是否写有下一代码块信息;若有,将该下一代码块信息对应的下一代码块排列于该新的当前代码块之后,并将下一代码块确定为新的当前代码块,重复上述过程;若没有,将i的取值加1,重复上述过程,直至i的取值等于所述目标代码块中写有下一代码块信息的字段数;其中,所述目标代码块的第i字段为所述目标代码块中写有下一代码块信息的字段。
[0010]在上述实现过程中,当代码块中存在多个字段中写有下一代码块信息时,依照上述方式依次遍历工程文件中的各代码块,可以保证能遍历到遍历工程文件中的各代码块,从而保证为相同编程逻辑的工程文件的排序结果一致,使得本申请提供的编程作业评分方法能应用于较复杂的工程文件中,提高本申请提供的编程作业评分方法的适用性。
[0011]在可选的实施方式中,所述对所述工程文件中的各代码块进行排序,得到各代码串树,包括:获取各所述积木块程序组对应的信息摘要;所述信息摘要为由所述积木块程序组对应的代码块的特征信息,按照积木块程序组的执行逻辑顺序组成的信息串;根据各所述信息摘要对所述工程文件中的各代码块进行排序,得到各所述代码串树。
[0012]在可选的实施方式中,获取各所述积木块程序组对应的信息摘要,包括:确定出所述工程文件中的头节点代码块;所述头节点代码块为所述积木块程序组中第一个积木块对应的代码块;提取当前代码块的特征信息;判断当前代码块中是否写有下一代码块信息;若有,提取该下一代码块信息对应的下一代码块的特征信息,并将该下一代码块的特征信息排列于所述当前代码块的特征信息之后,并将下一代码块确定为新的当前代码块,重复上述过程;其中,第一个当前代码块为所述头节点代码块;若没有,确定当前排列得到的特征信息串为所述信息摘要。
[0013]在可选的实施方式中,若当前代码块中存在多个字段中写有下一代码块信息,则:将目标代码块的第i字段中的下一代码块信息对应的下一代码块的特征信息置于当前代码块的特征信息之后;其中,所述目标代码块为该存在多个字段中写有下一代码块信息的当前代码块;将下一代码块确定为新的当前代码块,判断该新的当前代码块中是否写有下一代码块信息;若有,将该下一代码块信息对应的下一代码块的特征信息排列于该新的当前代码块的特征信息之后,并将下一代码块确定为新的当前代码块,重复上述过程;若没有,将i的取值加1,重复上述过程,直至i的取值等于所述目标代码块中写有下一代码块信息的字段数;其中,所述目标代码块的第i字段为所述目标代码块中写有下一代码块信息的字段。
[0014]在可选的实施方式中所述基于所述排序后的工程文件确定所述编程作业的哈希签名,包括:对所述排序后的工程文件中的各代码块的唯一标识进行更新;根据预设哈希算
法对所述更新后的工程文件进行哈希运算,确定所述编程作业的哈希签名。
[0015]在上述实现过程中,对排序后的工程文件中的各代码块的唯一标识进行更新,使得内容和顺序相同的两个工程文件根据预设哈希算法对生成的哈希签名一致,以便后续根据哈希签名对编程作业进行评分时,可以有效减少哈希签名样本池中哈希签名样本的数量。
[0016]在可选的实施方式中,所述排序后的工程文件中各代码块更新后的唯一标识的大小关系,与所述排序后的工程文件中各代码块的排序先后顺序匹配。
[0017]在可选的实施方式中,所述将所述编程作业的哈希签名与哈希签名样本池进行匹配,确定所述编程作业的评分,包括:判断所述哈希签名样本池中是否存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编程作业评分方法,其特征在于,所述方法包括:获取编程作业的工程文件;基于预设排序规则对所述工程文件中的各代码块进行排序,确定排序后的工程文件;基于所述排序后的工程文件确定所述编程作业的哈希签名;将所述编程作业的哈希签名与哈希签名样本池进行匹配,确定所述编程作业的评分,其中,所述哈希签名样本池包括多个哈希签名及每个所述哈希签名对应的评分。2.根据权利要求1所述的方法,其特征在于,所述基于预设排序规则对所述工程文件中的各代码块进行排序,确定排序后的工程文件,包括:对所述工程文件中的各代码块进行排序,得到各代码串树;其中,每个所述代码串树由一个积木块程序组对应的各代码块组成,且每个所述代码串树中的各代码块按照所述积木块程序组的执行逻辑顺序进行排序;对所述多个代码串树进行排序,得到所述排序后的工程文件。3.根据权利要求2所述的方法,其特征在于,所述对所述工程文件中的各代码块进行排序,得到各代码串树,包括:确定出所述工程文件中的头节点代码块;所述头节点代码块为所述积木块程序组中第一个积木块对应的代码块;判断当前代码块中是否写有下一代码块信息;若有,将该下一代码块信息对应的下一代码块排列于所述当前代码块之后,并将下一代码块确定为新的当前代码块,重复上述过程;其中,第一个当前代码块为所述头节点代码块;若没有,确定当前排序得到的代码块集合为所述代码串树。4.根据权利要求3所述的方法,其特征在于,若当前代码块中存在多个字段中写有下一代码块信息,则:将目标代码块的第i字段中的下一代码块信息对应的下一代码块置于当前代码块之后;其中,所述目标代码块为该存在多个字段中写有下一代码块信息的当前代码块;将下一代码块确定为新的当前代码块,判断该新的当前代码块中是否写有下一代码块信息;若有,将该下一代码块信息对应的下一代码块排列于该新的当前代码块之后,并将下一代码块确定为新的当前代码块,重复上述过程;若没有,将i的取值加1,重复上述过程,直至i的取值等于所述目标代码块中写有下一代码块信息的字段数;其中,所述目标代码块的第i字段为所述目标代码块中写有下一代码块信息的字段。5.根据权利要求2所述的方法,其特征在于,所述对所述工程文件中的各代码块进行排序,得到各代码串树,包括:获取各所述积木块程序组对应的信息摘要;所述信息摘要为由所述积木块程序组对应的代码块的特征信息,按照积木块程序组的执行逻辑顺序组成的信息串;根据各所述信息摘要对所述工程文件中的各代码块进行排序,得到各所述代码串树。6.根据权利要求5所述的方法,其特征在于,获取各所述积木块程序组对应的信息摘要,包括:
确定出所述工程文件中的头节点代码块;所述头节点代码块为所述积木块程序组中第一个积木块对应的代码块;提取当前代码块的特征信息;判断当前代码块中是否写有下一代码块信息;若有,提取该下一代码块信息对应的下一代码块的特征信息,并将该下一代码块的特征信息排列于所述当前代码块的特征信息之后,并将下一代码块确定为新的当前代码块,重复上述过程;其中,第一个当前代码块为所述头节点代码块;若没有,确定当前排列得到的特征信息串为所述信息摘要。7.根据权利要求6所述的方法,其特征在于,若当前代码块中存在多个字...

【专利技术属性】
技术研发人员:王智磊王宇航曾鹏轩
申请(专利权)人:北京思明启创科技有限公司
类型:发明
国别省市:

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

1