System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于GIT的计算机程序作业自动批改系统及方法技术方案_技高网

一种基于GIT的计算机程序作业自动批改系统及方法技术方案

技术编号:42467203 阅读:15 留言:0更新日期:2024-08-21 12:53
本发明专利技术公开了一种基于GIT的计算机程序作业自动批改系统及方法,包括GIT客户端,用于教师、学生通过HTTP服务发送登录GIT服务器的请求;WEB客户端,用于供教师、学生登录HTTP服务器;GIT服务器,用于供教师通过HTTP服务器创建作业仓库,供学生获取作业仓库的作业、提交作业到作业仓库,在学生提交作业后触发作业批改程序,以及将作业批改结果反馈给HTTP服务器;HTTP服务器,用于供教师创建班级和计算机程序作业、审阅学生作业和自动测试结果;用于生成作业仓库的URL、将计算机程序作业提交到该URL;用于发布计算机程序作业至对应班级;还用于转发GIT客户端的请求,以及将GIT服务器的输出发送给GIT客户端;以及用于将作业批改结果保存到数据库服务器。本发明专利技术通过学生提交后自动运行批改程序,可以使学生立即看到批改结果,获得实时反馈;也大大减轻了教师的批改工作量,避免了人工操作失误。

【技术实现步骤摘要】

本专利技术涉及计算机,具体的说,是一种基于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...

【专利技术属性】
技术研发人员:程林和梦涛武晓佳
申请(专利权)人:重庆理工大学
类型:发明
国别省市:

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

1