System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体的说,是一种基于git的计算机程序作业自动批改系统及方法。
技术介绍
1、现在是信息技术时代,计算机编程教育越来越普及。在计算机编程教育中,学生通过编写程序进行实践练习是必要的内容。作业的布置和评定是教育活动中不可或缺的重要环节。目前,大多数学校仍沿用传统评定方式,即老师手动评定纸质或电子形式的作业和答题。批改大量纸质或电子形式的答卷给教师带来了沉重的工作负担,而且人工批改速度慢,难以快速、准确地发现稍稍复杂程序中的全部错误。
2、现有技术中存在一些自动批改作业的方法,但由于其易用性、作业文档格式的兼容性等诸多问题,难以普及推广。存在一些不足:1)有的仅支持批改选择题、填空题这样有固定答案的客观题;有的虽然支持主观题的批改,但是是通过上传作业的图像,将识别内容与答案进行对比,相同字符越多分数越高,这个方式一方面依赖于系统图像识别能力,另一方面通过对比相同字符来打分明显是不合适的,缺少有效批改主观题的方法。2)有些不能提供全面的历史记录和版本控制功能,限制了教师对学生作业修改历史的准确追踪,影响对作业演变的深入理解。3)某些系统倾向于采用统一的存储方式,将所有作业存放在单一仓库或文件夹中。这种方法不利于个性化作业存储和管理,难以对不同作业进行差异化管理和评定。4)一些系统可能在支持分支和合并等操作方面存在不足,难以满足对更为复杂作业结构和多样提交方式的要求。
技术实现思路
1、本专利技术的目的在于提供一种基于git的计算机程序作业自动批改系统及方
2、本专利技术通过下述技术方案解决上述问题:
3、一种基于git的计算机程序作业自动批改系统,包括:
4、git客户端,用于教师、学生通过http服务发送登录git服务器的请求;
5、web客户端,用于供教师、学生登录http服务器;
6、git服务器,用于供教师通过http服务器创建作业仓库,供学生获取作业仓库的作业、提交作业到作业仓库,在学生提交作业后触发作业批改程序,以及将作业批改结果反馈给http服务器;
7、http服务器,用于供教师创建班级和计算机程序作业、审阅学生作业和自动测试结果;用于生成作业仓库的url、将计算机程序作业提交到该url;用于发布计算机程序作业至对应班级;还用于转发git客户端的请求,以及将git服务器的输出发送给git客户端;以及用于将作业批改结果保存到数据库服务器。
8、进一步地,所述计算机程序作业包括作业说明、作业批改程序和配置文件,所述配置文件的名称是全局统一的,配置文件定义了作业批改程序相对于作业根目录的相对路径。
9、进一步地,所述配置文件还定义了作业截止时间。
10、进一步地,获取作业仓库的作业的方式为:通过git客户端命令git clone将作业仓库内容克隆到本地计算机上;提交作业到作业仓库的方式为:使用git客户端命令gitpush将本地作业上传到作业仓库。
11、进一步地,所述发布计算机程序作业包括:在作业仓库的“./git/hooks/”目录中预置post-commit脚本,当学生使用提交命令git push提交作业时后post-commit脚本自动触发运行。
12、进一步地,所述post-commit脚本用于执行以下步骤:
13、步骤(1)、检测作业仓库的配置文件,提取作业批改程序路径,如果提取成功,跳转步骤(2),否则退出;
14、步骤(2)、从作业仓库中检出最新提交的版本,在该版本上执行作业批改程序;
15、步骤(3)、收集作业批改程序的输出,将输出返回给git客户端;
16、步骤(4)、将作业批改程序的输出写入文件,命名为“__auto_test_result__.txt”,发起一次新的提交,将此文件加入到作业仓库,此次提交时的提交信息git commit-m参数设置为“__auto_test_result__”开头;
17、步骤(5)、post-commit脚本再次触发后,检测步骤(4)中的提交信息,如果以”__auto_test_result__”开头,即这是一次自动测试提交,则不执行测试程序,直接退出。
18、进一步地,git客户端的请求包含特定请求参数,用于当http服务检测到该特定请求参数时,调用git服务的cgi接口程序git-http-backend,将特定请求参数发给git服务,并将git服务的输出发送给git客户端。这些特定请求参数是git协议中的,这里用于识别出其来源于git客户端命令。
19、一种基于git的计算机程序作业自动批改方法,包括:
20、步骤s1、教师在http网页界面上创建创建班级;
21、步骤s2、教师在http网页界面上创建计算机程序作业,生成教师用的作业仓库并生成仓库的url,计算机程序作业包括作业说明、作业批改程序和配置文件;教师使用git客户端把计算机程序作业提交到该url;教师通过http界面将作业发布到班级,供班级内的学生领取;
22、步骤s3、学生加入班级领取作业,领取作业完成后,服务器端自动为学生建立作业仓库,其内容与教师发布的作业内容相同,并生成学生作业仓库的url;学生通过git客户端命令git clone将学生作业仓库内容克隆到学生的本地计算机上;
23、步骤s4、学生完成作业,使用git客户端命令git commit将本地作业上传到作业仓库;
24、步骤s5、服务器接收学生提交的作业后,自动执行教师发布在计算机程序作业中的作业批改程序,批改学生的程序作业;作业批改程序的输出内容通过git客户端发送给学生,同时保存为学生作业仓库中的文件,供以后查阅;
25、步骤s6、学生根据测试结果判断时候需要修改作业,如果需要跳转到步骤s7,如果不需要修改,跳转到步骤s8;
26、步骤s7、学生根据测试结果修改完善程序,转步骤s4再次提交作业;
27、步骤s8、教师通过http界面审阅学生作业和自动测试结果,评定最终成绩。
28、本专利技术与现有技术相比,具有以下优点及有益效果:
29、(1)本专利技术通过学生提交后自动运行批改程序,可以使学生立即看到批改结果,获得实施反馈;也大大减轻了教师的批改工作量。学生有机会根据反馈进一步修改完善,再次提交,直到测试通过,帮助学生练习改进,提高学习效果。
30、(2)本专利技术采用git进行仓库创建、作业发布和学生下载。每个git克隆都是一个完整的文件库,包含全部历史记录和修订追踪功能,无需网络连接或中心服务器支持。其最显著特点是“分支”和“合并”操作迅速简便。一次作业,教师布置作业的时候创建原始仓库,学生领取作业的时候每人复制(克隆本文档来自技高网...
【技术保护点】
1.一种基于GIT的计算机程序作业自动批改系统,其特征在于,包括:
2.根据权利要求1所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,所述计算机程序作业包括作业说明、作业批改程序和配置文件,所述配置文件的名称是全局统一的,配置文件定义了作业批改程序相对于作业根目录的相对路径。
3.根据权利要求2所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,所述配置文件还定义了作业截止时间。
4.根据权利要求1所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,获取作业仓库的作业的方式为:通过GIT客户端命令git clone将作业仓库内容克隆到本地计算机上;提交作业到作业仓库的方式为:使用GIT客户端命令git commit将本地作业上传到作业仓库。
5.根据权利要求4所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,所述发布计算机程序作业包括:在作业仓库的“./git/hooks/”目录中预置post-commit脚本,当学生使用提交命令git push提交作业时后post-commit脚本自动
6.根据权利要求5所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,所述post-commit脚本用于执行以下步骤:
7.根据权利要求1所述的一种基于GIT的计算机程序作业自动批改系统,其特征在于,GIT客户端的请求包含特定请求参数,用于当HTTP服务检测到该特定请求参数时,调用GIT服务的CGI接口程序git-http-backend,将特定请求参数发给GIT服务,并将GIT服务的输出发送给GIT客户端。
8.一种基于GIT的计算机程序作业自动批改方法,其特征在于,包括:
...【技术特征摘要】
1.一种基于git的计算机程序作业自动批改系统,其特征在于,包括:
2.根据权利要求1所述的一种基于git的计算机程序作业自动批改系统,其特征在于,所述计算机程序作业包括作业说明、作业批改程序和配置文件,所述配置文件的名称是全局统一的,配置文件定义了作业批改程序相对于作业根目录的相对路径。
3.根据权利要求2所述的一种基于git的计算机程序作业自动批改系统,其特征在于,所述配置文件还定义了作业截止时间。
4.根据权利要求1所述的一种基于git的计算机程序作业自动批改系统,其特征在于,获取作业仓库的作业的方式为:通过git客户端命令git clone将作业仓库内容克隆到本地计算机上;提交作业到作业仓库的方式为:使用git客户端命令git commit将本地作业上传到作业仓库。
5.根据权利要求4所述的一种基于g...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。