CN114895973A - 一种python编程题目的自动判分方法、装置以及设备 - Google Patents

一种python编程题目的自动判分方法、装置以及设备 Download PDF

Info

Publication number
CN114895973A
CN114895973A CN202210409941.5A CN202210409941A CN114895973A CN 114895973 A CN114895973 A CN 114895973A CN 202210409941 A CN202210409941 A CN 202210409941A CN 114895973 A CN114895973 A CN 114895973A
Authority
CN
China
Prior art keywords
appraising
answer
python programming
score
operation 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.)
Pending
Application number
CN202210409941.5A
Other languages
English (en)
Inventor
蔡猛
谢计生
胡雷雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Keyun Information Technology Co Ltd
Original Assignee
Xiamen Keyun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Keyun Information Technology Co Ltd filed Critical Xiamen Keyun Information Technology Co Ltd
Priority to CN202210409941.5A priority Critical patent/CN114895973A/zh
Publication of CN114895973A publication Critical patent/CN114895973A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

本发明公开了一种python编程题目的自动判分方法、装置、设备及存储介质,其包括:获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值;接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果;根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。通过上述方案能够极大的提高判分效率以及判分的准确性。

Description

一种python编程题目的自动判分方法、装置以及设备
技术领域
本发明涉及教学软件研发技术领域,尤其涉及一种python编程题目的自动判分方法、装置以及设备。
背景技术
随着移动互联网的不断发展,会计人员对于大数据处理的需求越来越强烈,因此需要学习大数据相关的技能,而python是一个很好的选择,但是在学习过程中如何对python编程的结果自动判断出正确与否,是一个技术难点。
目前很多教学软件都有涉及到python编程题目,由于编程题目的解题思路异常灵活,各种各样的思路都有可能实现最终的目的,这也导致编程题目的判分是个难点。在分析现有的技术时发现存在以下问题:想要合理且准确的判断出编程题目的答题结果是否符合预期异常的困难。如果使用人工判分,判分的效率低下,时效性也非常的差,且带有主观意识,不够客观。如果单纯的以程序产出结果来判分,也会使判分不够准确。
发明内容
有鉴于此,本发明的目的在于提出一种python编程题目的自动判分方法、装置以及设备,旨在解决现有中如何准确判断编程题目的答题结果是否符合预期结果较为困难的问题。
为实现上述目的,本发明提供一种python编程题目的自动判分方法,所述方法包括:
获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值;
接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果;
根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
优选的,所述判分答案项目包括多个预设传入参数以及对应每一所述预设传入参数的预期程序反应结果。
优选的,所述基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果,包括:
将所述预设传入参数输入至所述答题代码程序中进行运行,得到运行结果。
优选的,所述根据所述运行结果以及所述判分分值计算所述答题代码程序的得分,包括:
将所述运行结果与所述预期程序反应结果进行比对,确定是否获得对应的所述判分分值,统计所有所述判分分值的总和得到判分结果。
优选的,所述判分答案项目的项数至少设置为3项。
为实现上述目的,本发明还提供一种python编程题目的自动判分装置,所述装置包括:
获取单元,用于获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值;
验证单元,用于接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果;
计算单元,用于根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
为了实现上述目的,本发明还提出一种设备,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如上述实施例所述的一种python编程题目的自动判分方法的步骤。
为了实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如上述实施例所述的一种python编程题目的自动判分方法的步骤。
有益效果:
以上方案,通过本申请提出的python编程题目的自动判分方法,能够极大的提高判分效率,且能实时获取对应题目的得分结果,提高了时效性;并且通过多项判分项目的验证大大提高判分的准确性,从而节省人工成本、减少人工判分的主观性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种python编程题目的自动判分方法的流程示意图。
图2为本发明一实施例提供的一种python编程题目的自动判分装置的结构示意图。
发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
以下结合实施例详细阐述本发明的内容。
参照图1所示为本发明一实施例提供的一种python编程题目的自动判分方法的流程示意图。
本实施例中,该方法包括:
S11,获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值。
S12,接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果。
S13,根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
python是一种跨平台、解释型、面向对象、动态数据类型的高级程序设计语言,同时也支持伪编译将python源程序转换为字节码来优化程序和提高运行速度并且支持使用py2exe工具将python程序转换为扩展名为“.exe”的可执行程序,可以在没有安装python解释器和相关依赖包的Windows平台上运行。python是一种解释型语言,所以意味着开发过程中没有了编译的环节;python是面向对象语言,意味着python支持面向对象的风格或代码封装在对象的编程技术。
在本实施例中,首先设计python编程题目和对应python编程题目的判分答案项目。进一步的,针对python编程题目设置至少3项判分答案项目,通过设置多个判分答案项目可以更为全面的判断答题程序的完整性和正确性;并且,每一判分答案项目设置有对应的判分分值。其中,判分答案项目包含多个预设传入参数以及对应每一预设传入参数的预期程序反应结果,并且预设传入参数应尽可能覆盖该python编程题目的所有可能参数区间。
进一步的,所述基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果,包括:将所述预设传入参数输入至所述答题代码程序中进行运行,得到运行结果。
进一步的,所述根据所述运行结果以及所述判分分值计算所述答题代码程序的得分,包括:将所述运行结果与所述预期程序反应结果进行比对,确定是否获得对应的所述判分分值,统计所有所述判分分值的总和得到判分结果。
在本实施例中,通过预设置的判分答案项目的预设传入参数答题代码程序依次进行验证,如果预设传入参数在答题代码程序中运行的结果符合预期程序反应结果,则可获得该判分答案项目对应的分值。通过依次采用所有该python编程题目下预设置的判分答案项目对答题代码程序进行验证,验证完成后获取所有判分答案项目的分值总和,即为该python编程题目所得到的分值。通过本方案所提出的可以使python编程题目判分自动化,极大的提高了判分的效率,且能实时获取python编程题目的得分结果,提高了时效性;并且经过多项验证,也大大完善了判分的准确性。
例如:题目要求设计一段程序,能够处理居民个人工资薪金所得个税计算,规则为全年应纳税所得额不超过36000元的部分,按照税率3%,速算扣除数0元;全年应纳税所得额超过36000元至144000元的部分,按照税率10%,速算扣除数2520元;全年应纳税所得额超过144000元至300000元的部分,按照税率20%,速算扣除数16920元;全年应纳税所得额超过300000元至420000元的部分,按照税率25%,速算扣除数31920元;全年应纳税所得额超过420000元至660000元的部分,按照税率30%,速算扣除数52920元;全年应纳税所得额超过660000元至960000元的部分,按照税率35%,速算扣除数85920元;全年应纳税所得额超过960000元的部分,按照税率45%,速算扣除数181920元计算出个人工资薪金所得个税。根据此要求可知,薪资在不同段位的税率和速算扣除数都不同,如果只是能满足其中一个段的计算逻辑,而其他的段计算错误,那答题结果显示是不对的,因此可以针对多个段位设置多个判分答案项,以及设置每项判分项目的分值,通过设置的多个判分答案项分别来验证在不同的段位计算是否都是正确的,如果都正确,则说明做题结果正确。比如:输入工资薪金为30000元,输出个税应为900元;输入工资薪金为100000元,输出个税应为7480元;输入工资薪金为250000元,输出个税应为33080元等等。如果能够完全满足薪金在不同阶段都能算出正确的结果,则判分结果为正确。通过验证后获取所有判分答案项目的分值总和。
参照图2所示为本发明一实施例提供的一种python编程题目的自动判分装置的结构示意图。
在本实施例中,该装置20包括:
获取单元21,用于获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值。
进一步的,所述判分答案项目包括多个预设传入参数以及对应每一所述预设传入参数的预期程序反应结果。
进一步的,所述判分答案项目的项数至少设置为3项。
验证单元22,用于接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果。
进一步的,所述验证单元22,用于:
将所述预设传入参数输入至所述答题代码程序中进行运行,得到运行结果。
计算单元23,用于根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
进一步的,所述计算单元23,用于:
将所述运行结果与所述预期程序反应结果进行比对,确定是否获得对应的所述判分分值,统计所有所述判分分值的总和得到判分结果。
该装置20的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明实施例还提供一种设备,该设备包括如上所述的python编程题目的自动判分装置,其中,python编程题目的自动判分装置可以采用图2实施例的结构,其对应地,可以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的相关记载,此处不再赘述。
所述设备包括:手机、数码相机或平板电脑等具有拍照功能的设备,或者具有图像处理功能的设备,或者具有图像显示功能的设备。所述设备可包括存储器、处理器、输入单元、显示单元、电源等部件。
其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如图像播放功能等)等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器和输入单元对存储器的访问。
输入单元可用于接收输入的数字或字符或图像信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,本实施例的输入单元除了包括摄像头,还可包括触敏表面(例如触摸显示屏)以及其他输入设备。
显示单元可用于显示由用户输入的信息或提供给用户的信息以及设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元可包括显示面板,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器以确定触摸事件的类型,随后处理器根据触摸事件的类型在显示面板上提供相应的视觉输出。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现图1所示的python编程题目的自动判分方法。所述计算机可读存储介质可以是只读存储器,磁盘或光盘等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例、设备实施例及存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (8)

1.一种python编程题目的自动判分方法,其特征在于,所述方法包括:
获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值;
接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果;
根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
2.根据权利要求1所述的一种python编程题目的自动判分方法,其特征在于,所述判分答案项目包括多个预设传入参数以及对应每一所述预设传入参数的预期程序反应结果。
3.根据权利要求2所述的一种python编程题目的自动判分方法,其特征在于,所述基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果,包括:
将所述预设传入参数输入至所述答题代码程序中进行运行,得到运行结果。
4.根据权利要求2或3所述的一种python编程题目的自动判分方法,其特征在于,所述根据所述运行结果以及所述判分分值计算所述答题代码程序的得分,包括:
将所述运行结果与所述预期程序反应结果进行比对,确定是否获得对应的所述判分分值,统计所有所述判分分值的总和得到判分结果。
5.根据权利要求1至4任一所述的一种python编程题目的自动判分方法,其特征在于,所述判分答案项目的项数至少设置为3项。
6.一种python编程题目的自动判分装置,其特征在于,所述装置包括:
获取单元,用于获取预先设计的python编程题目以及对应所述python编程题目的预设置的判分答案项目,其中,每一所述判分答案项目设置有对应的判分分值;
验证单元,用于接收答题代码程序,基于所述判分答案项目对所述答题代码程序进行验证,得到运行结果;
计算单元,用于根据所述运行结果以及所述判分分值计算所述答题代码程序的得分。
7.一种设备,其特征在于,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如权利要求1至5任意一项所述的一种python编程题目的自动判分方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1至5任意一项所述的一种python编程题目的自动判分方法的步骤。
CN202210409941.5A 2022-04-19 2022-04-19 一种python编程题目的自动判分方法、装置以及设备 Pending CN114895973A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210409941.5A CN114895973A (zh) 2022-04-19 2022-04-19 一种python编程题目的自动判分方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210409941.5A CN114895973A (zh) 2022-04-19 2022-04-19 一种python编程题目的自动判分方法、装置以及设备

Publications (1)

Publication Number Publication Date
CN114895973A true CN114895973A (zh) 2022-08-12

Family

ID=82717672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210409941.5A Pending CN114895973A (zh) 2022-04-19 2022-04-19 一种python编程题目的自动判分方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN114895973A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111888A (zh) * 2014-07-03 2014-10-22 曹建楠 一种面向教学的代码评测方法、装置和系统
CN110852653A (zh) * 2019-11-22 2020-02-28 成都国腾实业集团有限公司 一种应用于计算机编程题的自动评分系统
CN112799938A (zh) * 2021-01-22 2021-05-14 中森云链(成都)科技有限责任公司 一种基于python的microbit编程题目自动评测方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104111888A (zh) * 2014-07-03 2014-10-22 曹建楠 一种面向教学的代码评测方法、装置和系统
CN110852653A (zh) * 2019-11-22 2020-02-28 成都国腾实业集团有限公司 一种应用于计算机编程题的自动评分系统
CN112799938A (zh) * 2021-01-22 2021-05-14 中森云链(成都)科技有限责任公司 一种基于python的microbit编程题目自动评测方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘欣亮;石静;: "程序设计课程主观综合题自动判分系统研究", 电脑编程技巧与维护 *
娄不夜;: "Java编程题自动判分软件框架的设计", 计算机工程与设计, no. 24 *
林宁;: "C语言编程题自动判分系统的设计与实现", 华章, no. 16 *
潘瑞远;顾平;: "关系数据库上机考试系统――DML主观题判分算法的研究与探讨", 信息通信, no. 09 *

Similar Documents

Publication Publication Date Title
US5471575A (en) Interactive parameter driven iterative financial spreadsheet analysis with context and layout sensitive help screen
US20150243176A1 (en) Virtual course boundaries in adaptive e-learning datagraph structures
Kumar et al. Usability guideline for Mobile learning applications: an update
US20140093847A1 (en) Automated teaching system using declarative problem solving approach
JP2016065987A (ja) 書き取り教育支援システム
Sirkiä et al. How do students use program visualizations within an interactive ebook?
US20180349153A1 (en) Migration between different user interfaces of software programs
Llaudet et al. Data analysis for social science: A friendly and practical introduction
Wang et al. During automatic program animation, explanations after animations have greater impact than before animations
CN114895973A (zh) 一种python编程题目的自动判分方法、装置以及设备
Oezbek et al. Jtourbus: Simplifying program understanding by documentation that provides tours through the source code
Ihantola Automated assessment of programming assignments: visual feedback, assignment mobility, and assessment of students' testing skills
Chou et al. An educational tool for visualizing students' program tracing processes
US9753982B2 (en) Method and system for facilitating learning of a programming language
KR102195082B1 (ko) 문제 출제 방법
Hwang et al. Evaluation of fraction learning in authentic context using Ubiquitous Fraction App
CN112380800A (zh) 自动评测的在线fpga实验平台及相关方法
Heil et al. Assessing completeness in training data for image-based analysis of web user interfaces
JP2019078907A (ja) 解答入力装置、及び、プログラム
Mathews et al. YTCoder-Towards Turning YouTube into a Development Environment
US20210365280A1 (en) System & method for automated assistance with virtual content
Dehinbo Establishing and applying criteria for evaluating the ease of use of dynamic platforms for teaching web application development
Yuana et al. Development of Balmer Series Experiment Simulator in Mobile and Android Applications
Hauge Improved method of creating automatically assessed diagram problems for exams
Wambua What Do Flutter Developers Ask About? An Empirical Study on Stack Overflow Posts

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