一种面向教学的代码评测方法、装置和系统的制作方法

文档序号:6619535阅读:141来源:国知局
一种面向教学的代码评测方法、装置和系统的制作方法
【专利摘要】本发明实施例公开了一种面向教学的代码评测方法、装置和系统,其中方法包括:截获来自网页的代码评测请求,该代码评测请求携带目标题目的信息;接收待评测代码,并在所述目标题目的编译环境下编译所述待评测代码,包括:调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译结果组,所述期望输入值组包括一个或多个期望输入值;将所述输出的编译结果组与期望输出值组比对,根据比对结果匹配输出对应分值;根据预设打分规则计算对应分值组,向网页返回计算得到的代码评测打分值。该方法可高效地实现代码评测,同时,更为准确地对待评测代码进行打分。
【专利说明】一种面向教学的代码评测方法、装置和系统

【技术领域】
[0001] 本发明涉及代码评测【技术领域】,更具体地说,涉及一种面向教学的代码评测方法、 装置和系统。

【背景技术】
[0002] 计算机语言编程教学实验是计算机领域教育不可或缺的教学环节,教师根据课程 安排为学生布置题目,教师逐一审阅或者在计算机中逐一输入及运行学生根据题目要求在 纸张或计算机文档中编写代码。
[0003] 现有技术中,由于教师评测的方式打分的准确性不能保证,更为重要的是评测效 率低。


【发明内容】

[0004] 有鉴于此,本发明提供一种面向教学的代码评测方法、装置和系统,以实现教学过 程中代码评测的打分准确性及评测效率提高的目的。
[0005] 本发明公开了一种面向教学的代码评测方法,包括:
[0006] 截获来自网页的代码评测请求,该代码评测请求携带目标题目的信息;
[0007] 接收待评测代码,并在所述目标题目的编译环境下编译所述待评测代码,包括:
[0008] 调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译 结果组,所述期望输入值组包括一个或多个期望输入值;
[0009] 将所述输出的编译结果组与期望输出值组比对,根据比对结果匹配输出对应分 值;
[0010] 根据预设打分规则计算对应分值组,向网页返回计算得到的代码评测打分值。
[0011] 可选地,所述面向教学的代码评测方法还包括:根据预设打分规则计算对应分值 组包括:
[0012] 在所述目标题目的编译环境下编译所述待评测代码时,
[0013] 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据;
[0014] 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
[0015] 可选地,所述面向教学的代码评测方法还包括:
[0016] 在所述目标题目的编译环境下,试运行所述待评测代码;
[0017] 当试运行所述待评测代码出现破坏信号,则停止运行所述待评测代码。
[0018] 可选地,所述面向教学的代码评测方法还包括:待评测代码查错,包括:
[0019] 在所述目标题目的编译环境下,试运行所述待评测代码;
[0020] 当所述待评测代码出现运行故障,则向网页输出所述待评测代码错误的信息。
[0021] 可选地,所述面向教学的代码评测方法还包括:
[0022] 向网页反馈编译结果组及对应的比对结果。
[0023] 记录并存储所述目标题目的编译环境下编译所述待评测代码的过程数据和代码 评测打分值,生成评测日志。
[0024] 与上述面向教学的代码评测方法对应地,本发明还公开了:
[0025] -种面向教学的代码评测装置,包括:
[0026] 截获模块,用于截获来自网页的代码评测请求,该代码评测请求携带目标题目的 信息;
[0027] 编译模块,用于接收待评测代码,并在所述目标题目的编译环境下编译所述待评 测代码,包括:
[0028] 调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译 结果组,所述期望输入值组包括一个或多个期望输入值;
[0029] 结果比对模块,用于将所述输出的编译结果组与期望输出值组比对,根据比对结 果匹配输出对应分值;
[0030] 打分制计算模块,用于根据预设打分规则计算对应分值组,向网页返回计算得到 的代码评测打分值。
[0031] 可选地,所述打分制计算模块具体实现:
[0032] 在所述目标题目的编译环境下编译所述待评测代码时,
[0033] 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据;
[0034] 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
[0035] 可选地,所述的面向教学的代码评测装置还包括:监测模块,具体实现:
[0036] 在所述目标题目的编译环境下,试运行所述待评测代码;
[0037] 当试运行所述待评测代码出现破坏信号,则停止运行所述待评测代码;
[0038] 以及,
[0039] 当所述待评测代码出现运行故障,则向网页输出所述待评测代码错误的信息。
[0040] 可选地,所述的面向教学的代码评测装置还包括:
[0041] 评测反馈模块,用于向网页反馈编译结果组及对应的比对结果。
[0042] 本发明还公开了:
[0043] 一种面向教学的代码评测系统,包括:通信接口、存储器、总线机构和执行权利要 求1面向教学的代码评测方法的处理器。
[0044] 从上述的技术方案可以看出,本发明实施例中的面向教学的代码评测方法,通过 对学生从网页提交的待评测代码进行在线编译和结果输出,可高效地实现代码评测的目 的,同时,由于针对编译的待评测代码进行一个或多个期望输入值的代入及输出对应结果, 并综合了多个代码评价参数,从而更为准确地对待评测代码进行打分。

【专利附图】

【附图说明】
[0045] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0046] 图la为本发明实施例公开的一种面向教学的代码评测方法流程图;
[0047] 图lb为本发明实施例公开的一种面向教学的代码评测方法流程图;
[0048] 图2为本发明又一实施例公开的一种面向教学的代码评测方法流程图;
[0049] 图3为本发明又一实施例公开的一种面向教学的代码评测方法流程图;
[0050] 图4为本发明实施例公开的一种面向教学的代码评测装置结构示意图;
[0051] 图5为本发明又一实施例公开的一种面向教学的代码评测装置结构示意图;
[0052] 图6为本发明实施例公开的一种面向教学的代码评测系统结构示意图。

【具体实施方式】
[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0054] 本发明实施例公开了一种面向教学的代码评测方法、装置和系统,以实现教学过 程中代码评测的打分准确性及评测效率提高的目的。
[0055] 在进行说明书阐述之前,需要明确的是,本发明中的实施方式特别适用于在教学 中教师需要对学生提交的代码进行评定和判分等应用场景,因而,本发明的实施例将以该 应用场景为阐述环境进行实施例列举:
[0056] 图1示出了一种面向教学的代码评测方法,包括:
[0057] S11 :截获来自网页的代码评测请求,该代码评测请求携带目标题目的信息;
[0058] 所述代码评测请求由学生在网页登录客户端后在评测平台上发出,所述网页登陆 客户端的形式并不局限,可为校园局域网按照用户名形式登陆等。学生将针对目标题目写 好的代码上传至网页,或者,学生根据目标题目在线编写代码,在代码编写完毕后提交至网 页,网页将所述代码评测请求发送至服务器端,执行S12。
[0059] S12 :接收待评测代码,并在所述目标题目的编译环境下编译所述待评测代码,包 括:
[0060] 在所述服务器端构建有针对不同语言环境的不同题目,各个题目在编译过程中均 设置有期望输入值组。
[0061] S121 :调用数据库中目标题目的;
[0062] 所述期望输入值组包括一个或多个期望输入值,为了达到准确地评定待评测代码 的分值,一段正确的代码可以在不同输入值下均能准确运行,如一段代码仅能完成一部分 期望输入值的正确结果输出,则该段代码的分值需要进一步计算得出。
[0063] S122 :将所述期望输入值组代入所述待评测代码运行;
[0064] S123 :输出编译结果组值;
[0065] S13:将所述输出的编译结果组与期望输出值组比对,根据比对结果匹配输出对应 分值;
[0066] 可选地,服务器向网页反馈编译结果组及对应的比对结果,也就是,服务器将所述 待评测代码编译后输出编译结果,以及所述编译结果组与期望输出组比对后的结果输出至 网页,所述比对后的结果可以是根据比对得到的错误类型或者错误的描述,让学生能够及 时得知自己写代码所出现的错误,以便于学生根据错误信息重新编辑代码,并再次提交,直 至正确。
[0067] 在代入不同期望输入值后,所述待评测代码会运行出不同结果,通过与期望输出 值比对,如果正确,则打出该次运行正确的分值,如果错误,则无法获得相应的分值。
[0068] 举例说明:
[0069] 假设有三个期望输入值,若待评测代码中只运行正确前两个期望输入值,则相应 得分为10分、20分,最后一个期望输入值的得分没有拿到。
[0070] S14 :根据预设打分规则计算对应分值组,向网页返回计算得到的代码评测打分 值。
[0071] 作为一种优选方式根据预设打分规则计算对应分值组包括:
[0072] 在所述目标题目的编译环境下编译所述待评测代码时,
[0073] 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据;
[0074] 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
[0075] 即:
[0076] 根据所述待评测代码执行所耗内存多少、时间长短或所述覆盖程序的逻辑执行路 径,可采用得分加权的方式参与最终评测打分的计算。
[0077] 需要说明的是,上述优选方式并不唯一,也并不作为限制本发明实施方式的范围。
[0078] 上述代码评测方法可在较短时间内反馈分值,对多条评测请求同时运行,提高了 评测效率,对多个输入值进行运行并综合多参数进行打分,从而提高了打分的准确性。
[0079] 图2示出了又一种面向教学的代码评测方法,在图1附图及其对应说明的基础上, 还包括:
[0080] S21 :截获来自网页的代码评测请求,该代码评测请求携带目标题目的信息;
[0081] S22 :接收待评测代码,在所述目标题目的编译环境下,试运行所述待评测代码;
[0082] S23 :判断是否试运行正常,如正常则运行S24,否则执行231 ;
[0083] S231 :判断试运行所述待评测代码情况;
[0084] 如出现破坏信号,则执行S2311 :
[0085] S2311 :停止运行所述待评测代码;
[0086] 如待评测代码出现运行故障,则执行S2312 ;
[0087] S2312 :向网页输出所述待评测代码错误的信息。
[0088] S24 :在所述目标题目的编译环境下编译所述待评测代码,包括:调用数据库中目 标题目的期望输入值组,并代入所述待评测代码运行,输出编译结果组,所述期望输入值组 包括一个或多个期望输入值;
[0089] 所述试运行监控可通过沙箱实现,然而并不局限于该种方式,监控过程通过对程 序的信号量进行监控实现,如出现对系统会产生破坏的信号则直接关闭程序;
[0090] 对于"Floating point exception"等错误,可主动识别并返回给页面,让代码编 写者通过错误信息更方便的修改代码。
[0091] S25:将所述输出的编译结果组与期望输出值组比对,根据比对结果匹配输出对应 分值;
[0092] S26 :根据预设打分规则计算对应分值组,向网页返回计算得到的代码评测打分 值。
[0093] 图3示出了又一种面向教学的代码评测方法,在图1附图及其对应说明的基础上, 还包括:
[0094] S31 :记录并存储所述目标题目的编译环境下编译所述待评测代码的过程数据和 代码评测打分值,生成评测日志。
[0095] 所述评测日志可将代码评测系统中存在的问题,及学生提交的待评测代码的问题 记录和展现,方便技术人员和教师进行追踪和定位。
[0096] 图4示出了一种面向教学的代码评测装置,包括:
[0097] 截获模块41,用于截获来自网页的代码评测请求,该代码评测请求携带目标题目 的信息;
[0098] 编译模块42,用于接收待评测代码,并在所述目标题目的编译环境下编译所述待 评测代码,包括:
[0099] 调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译 结果组,所述期望输入值组包括一个或多个期望输入值;
[0100] 结果比对模块43,用于将所述输出的编译结果组与期望输出值组比对,根据比对 结果匹配输出对应分值;
[0101] 打分制计算模块44,用于根据预设打分规则计算对应分值组,向网页返回计算得 到的代码评测打分值。
[0102] 所述打分制计算模块44具体实现:
[0103] 在所述目标题目的编译环境下编译所述待评测代码时,
[0104] 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据;
[0105] 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
[0106] 图5示出了一种面向教学的代码评测装置,在图4附图及其对应说明的基础上,还 包括:监测模块45,具体实现:
[0107] 在所述目标题目的编译环境下,试运行所述待评测代码时;
[0108] 当试运行所述待评测代码出现破坏信号,则停止运行所述待评测代码;
[0109] 以及,
[0110] 当所述待评测代码出现运行故障,则向网页输出所述待评测代码错误的信息。
[0111] 另外,图5还示出了:
[0112] 评测反馈模块,用于向网页反馈编译结果组及对应的比对结果;
[0113] 可选地,所述代码评测装置还可包括日志生成模块(未示出),用于记录并存储所 述目标题目的编译环境下编译所述待评测代码的过程数据和代码评测打分值,生成评测日 〇
[0114] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可 以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单 元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性 劳动的情况下,即可以理解并实施。
[0115] 图6示出了一种面向教学的代码评测系统,包括:
[0116] 通信接口 61、存储器62、总线机构63和执行权利要求1面向教学的代码评测方法 的处理器64。
[0117] 处理器64,通信接口 61,存储器62通过总线机构63完成相互间的通信。
[0118] 通信接口 61,用于与网元通信,比如虚拟机管理中心、共享存储等。
[0119] 处理器64,用于执行面向教学的代码评测对应的程序65。
[0120] 具体地,所述程序65可以包括程序代码,所述程序代码包括计算机操作指令。
[0121] 处理器64可能是一个中央处理器CPU,或者是特定集成电路ASIC(Applicati〇n Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电 路。
[0122] 存储器62,用于存放程序65。存储器65可能包含高速RAM存储器,也可能还包括 非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0123] 所述程序65中各模块的具体实现参见图1-图3所示实施例中的相应单元,在此 不赘述。
[0124] 综上:
[0125] 本发明实施例中的面向教学的代码评测方法,通过对学生从网页提交的待评测代 码进行在线编译和结果输出,可高效地实现代码评测的目的,同时,由于针对编译的待评测 代码进行一个或多个期望输入值的代入及输出对应结果,并综合了多个代码评价参数,从 而更为准确地对待评测代码进行打分。
[0126] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。
[0127] 对于系统实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关 之处参见方法实施例的部分说明即可。
[0128] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0129] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元 及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和 软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些 功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业 技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应 认为超出本发明的范围。
【权利要求】
1. 一种面向教学的代码评测方法,其特征在于,包括: 截获来自网页的代码评测请求,该代码评测请求携带目标题目的信息; 接收待评测代码,并在所述目标题目的编译环境下编译所述待评测代码,包括: 调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译结果 组,所述期望输入值组包括一个或多个期望输入值; 将所述输出的编译结果组与期望输出值组比对,根据比对结果匹配输出对应分值; 根据预设打分规则计算对应分值组,向网页返回计算得到的代码评测打分值。
2. 如权利要求1所述的面向教学的代码评测方法,其特征在于,根据预设打分规则计 算对应分值组包括: 在所述目标题目的编译环境下编译所述待评测代码时, 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据; 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
3. 如权利要求1所述的面向教学的代码评测方法,其特征在于,还包括: 向网页反馈编译结果组及对应的比对结果。
4. 如权利要求1所述的面向教学的代码评测方法,其特征在于,在所述目标题目的编 译环境下,试运行所述待评测代码时, 当试运行所述待评测代码出现破坏信号,则停止运行所述待评测代码; 或 当所述待评测代码出现运行故障,则向网页输出所述待评测代码错误的信息。
5. 如权利要求1所述的面向教学的代码评测方法,其特征在于,还包括: 记录并存储所述目标题目的编译环境下编译所述待评测代码的过程数据和代码评测 打分值,生成评测日志。
6. -种面向教学的代码评测装置,其特征在于,包括: 截获模块,用于截获来自网页的代码评测请求,该代码评测请求携带目标题目的信 息; 编译模块,用于接收待评测代码,并在所述目标题目的编译环境下编译所述待评测代 码,包括: 调用数据库中目标题目的期望输入值组,并代入所述待评测代码运行,输出编译结果 组,所述期望输入值组包括一个或多个期望输入值; 结果比对模块,用于将所述输出的编译结果组与期望输出值组比对,根据比对结果匹 配输出对应分值; 打分制计算模块,用于根据预设打分规则计算对应分值组,向网页返回计算得到的代 码评测打分值。
7. 如权利要求6所述的面向教学的代码评测装置,其特征在于,所述打分制计算模块 具体实现: 在所述目标题目的编译环境下编译所述待评测代码时, 提取当前待评测代码运行时占用内存数值、CPU时钟数据或指令调用数据; 令占用内存数值、CPU时钟数据或指令调用数据分别对应的加权数值参与计算。
8. 如权利要求6所述的面向教学的代码评测装置,其特征在于,还包括:监测模块,具 体实现: 在所述目标题目的编译环境下,试运行所述待评测代码时, 当试运行所述待评测代码出现破坏信号,则停止运行所述待评测代码; 以及, 当所述待评测代码出现运行故障,则向网页输出所述待评测代码错误的信息。
9. 如权利要求6所述的面向教学的代码评测装置,其特征在于,还包括: 评测反馈模块,用于向网页反馈编译结果组及对应的比对结果。
10. -种面向教学的代码评测系统,其特征在于,包括:通信接口、存储器、总线机构和 执行权利要求1面向教学的代码评测方法的处理器。
【文档编号】G06F9/45GK104111888SQ201410323470
【公开日】2014年10月22日 申请日期:2014年7月3日 优先权日:2014年7月3日
【发明者】曹建楠 申请人:曹建楠
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1