ACM评判核心和HTML批注技术的实验教学系统设计
ACM评判核心和HTML批注技术的实验教学系统设计[20191218092024]
摘要
Online Judge评判核心的作用是自动评判程序代码的准确性。HTML批注技术是从WEB环境下的批注功能研究中发展出来的技术,它使得用户可以对正在浏览的网页像使用word文档一样添加批注,只要选中一部分文本,就可以在相应区域内添加批注,批注后通过将原文本和批注内容的融合呈现出来。用户因此能够获得更直观更方便的体验。
现今的实验教学多是教师手动批阅学生的纸质实验报告,脑力和体力消耗大,而且批阅效率不高。为了克服传统实验教学平台的种种不足,一个全新的实验教学系统被设计出来。
本文就是基于上述两种技术,将其整合于实验教学平台之上,开发出易于使用的,在用户交互性和教学效果方面都优于传统实验教学的系统。
查看完整论文请+Q: 351916072
关键字:OnlineJudgeHTML批注AJAX
目 录
1 引言 1
1.1 研究背景和意义 1
1.2 技术简介 1
1.3 预期效果和所做工作 2
2 Online Judge评判核心的实现 3
2.1 评判核心原理 3
2.2 编译环节 4
2.3执行环节 4
3 HTML批注技术 15
3.1 批注技术原理 15
3.2 添加批注 15
3.3 批注的删除 18
3.4 批注融合显示 19
4 系统架构设计 22
4.1 需求分析 22
4.2 总体架构设计 22
4.3 系统结构 23
4.4 用例分析 24
5 系统实现 29
5.1 学生模块 29
5.1.1 提交作业 29
5.1.2 查看作业批注 30
5.2 教师部分 32
5.2.1 题库和用例维护 32
5.2.2 批阅作业 34
6、统计分析功能的实现 37
6.1 错误总数随学号和题号的分布 37
6.2 错误种类随学号和题号的分布 29
结束语 32
参考文献与附录 33
致谢 34
1 引言
1.1 研究背景和意义
在高校的教学实践中,学生的动手实践能力一直是被放在很重要的地位。为了使学生的实践能力和动手能力得到锻炼,实验成为教学中必不可少的方式。用何种方式能够使学生的能力得到最大程度的培养,怎么样的课程环境最方便教学,如何管理实验课程的流程,以及学生作业的批改处理、实现师生间的及时沟通交流,这些都是实验教学中必须面对的问题。
传统的实验教学中,教师批改学生作业一直以来都是一种工作量不小的劳动,实验报告是纸质的,从收齐作业到教师批改作业,一直到最终学生收到批改是一个不小的工程。如今,技术进步,计算机和网络得到迅猛发展,电子形式的信息交互以其快速、方便、准确的特性正逐渐受到人们的关注与青睐。随着电脑的普及和网络技术的推广与发展,网络教学和计算机辅助教学在现代教学中正发挥着越来越重要的作用。计算机技术不但可以减轻教育者的工作量,时常堆积如山的报告册将会一去不返。更可以为教育者提供更加丰富的教育形式,与教育对象之间建立一种完全不同于传统的联系方式。
在一些高校的教学中,许多的课程都采用了学生通过电脑提交作业的方式来进一步提高教学效率。这种教学方式需要解决的问题如下:
(1) 在当前学生数量明显多于教师数量的教学环境下,怎么样能够提高教师批阅作业的效率?
(2) 通过电脑提交作业的形式通过什么样的方式实现学生和教师间的交流和沟通?
基于以上的分析,本文意图为程序设计类课程设计一个网络化的实验教学平台,为学生提供通过网页提交作业、查看作业批改结果的服务,为教师提供教学帮助的服务。这是一个综合利用ACM评判系统和HTML批注技术的实验教学系统。
1.2 技术简介
ACM评判系统具有自动判断程序是否有语法错误和运行时错误的系统。Online Judge系统(简称OJ)是一个在线的判题系统[1]。最初使用于ACM/ICPC国际大学生程序设计竞赛中的自动判题。用户可以通过网页提交多种程序的源代码,系统对源代码进行自动编译和运行,并通过预先设计的测试数据来检验程序源代码的正确性。提交的程序在Online Judge系统下会受到各种限制约束的检查。
Online Judge系统会获取到用户程序执行的返回值或错误代码,系统之后会把所获得的值传递给一个函数。该函数会通过将传来的值与预先设定的标准输出的值作对比的方式检测用户程序是否有运行时错误。
在程序设计类辅助教学方面,以PKU ACM Judge Online[2] ,杭州电子科技大学Online Judge[3]为代表的Online Judge系统为代表。现该系统广泛应用于世界各地高校学生程序设计的训练、程序设计竞赛的训练和选拔、以及学生作业的自动提交判断中[4]。
Web标记就是对Web页面的内容进行标记。它在不使用插件也不更改原文件的内容的基础上,实现对web任何一段HTML元素添加批注。当用户浏览批注时,通过将文件与批注进行叠加,达到融合显示相应批注的目的。
这种技术广泛应用于网络教育与电子政务,如网络教育中的教师对学生作品批注,电子政务拟稿过程中领导对稿件的批注等方面[6]。随着技术的不断进步和创新,Adobe公司和Microsoft公司分别提供了PDF在线批注和Office在线批注功能。一些电子浏览器为了方便读者阅读,也添加了HTML批注的功能。
1.3 预期效果和所做工作
部署了该实验教学平台的实验教学与传统的教学方式比起来一个非常明显的特点就是智能化许多。这体现在两方面:一是查看学生实验报告内容和检查作业正误的工作交给系统完成,不需要教师人工阅读和评判,教师可以在此基础上从更高的角度对学生学习效率和课程教学成果做出评估[5];二是HTML页面标记技术的带给阅读实验报告的人全新的阅读体验,高亮显示、批注融合等是在传统的纸质实验报告中无法想象的。该教学平台对提高教师的工作效率,方便教师了解学生学习情况等方面起到了至关重要的作用。
基于以上的分析综合判断,Online Judge功能对于程序设计类课程的教学来说十分有用,它可以代替教师对学生程序的正确性和一定程度上的效率做出判断并自动给出结果,以此来减轻教师的工作量。搭建基于ACM评判核心和HTML批注技术的实验教学平台需要构建一些功能模块来实现,其中包括作业的提交;作业的存储;Online Judge评判核心的实现;ACM评判核心动态对代码的编译和运行;添加批注;批注的存储;批注的融合显示;删除批注;错误的统计与分析。实现原理与细节将在以下章节中一一介绍。
2 Online Judge评判核心的实现
2.1 评判核心原理
下面对该实验教学平台的ACM评判核心的实现过程进行论述。
ACM评判核心的流程图如图2-1所示。
图2-1 ACM评判核心
评判核心的评判功能由两部分组成。第一部分是判断源程序是否存在编译错误----编译环节;第二部分是判断程序是否存在运行时错误----执行环节。系统就是根据编译和执行两个环节的执行结果判别用户提交的程序是否通过ACM评判核心的测试。
在这里,需要注意的是,对代码进行评判前首先从数据库中读取原代码并生成源文件,然后依次进行编译和执行。
2.2 编译环节
由系统通过调用编译器完成。不同类型语言的程序必须调用不同的编译器。例如java程序调用javac.exe编译;C语言程序调用gcc编译器。ACM评判核心通过启动编译进程并获取编译器的输出结果来判断编译成功与否;通过启动生成的可执行文件创建进程,并将测试用例中的输入数据输入到进程,获取进程的输出后与测试用例结果进行比对,从而实现程序正确性的判断。
本课题用C#实现了编译和评判核心,通过C#中的Process类实现进程管理和输入输出重定向。以编译环节为例,系统首先启动进程调用在某目录下存放的编译程序;也可以启动CMD命令行程序;再调用编译器。之后Online Judge核心通过配置进程的参数(Process.Startinfo.Arguments等),向CMD中导入编译命令和目标文件名并启动编译。编译进程编译的时间随不同程序而有所不同,因此在启动编译后,评判核心可以“睡眠”一段合理的时长,这样可以确保之后从编译程序中能够取得退出码、错误代码等编译的结果信息。后台同样通过输出重定向获取编译程序的输出流,其中包括返回值和错误代码、错误信息等,并通过这些返回数据判断程序编译正确与否。系统将编译程序的输出归为两种情况:通过编译;未通过编译。
ACM评判核心中,编译环节由compile();函数完成:
摘要
Online Judge评判核心的作用是自动评判程序代码的准确性。HTML批注技术是从WEB环境下的批注功能研究中发展出来的技术,它使得用户可以对正在浏览的网页像使用word文档一样添加批注,只要选中一部分文本,就可以在相应区域内添加批注,批注后通过将原文本和批注内容的融合呈现出来。用户因此能够获得更直观更方便的体验。
现今的实验教学多是教师手动批阅学生的纸质实验报告,脑力和体力消耗大,而且批阅效率不高。为了克服传统实验教学平台的种种不足,一个全新的实验教学系统被设计出来。
本文就是基于上述两种技术,将其整合于实验教学平台之上,开发出易于使用的,在用户交互性和教学效果方面都优于传统实验教学的系统。
查看完整论文请+Q: 351916072
关键字:OnlineJudgeHTML批注AJAX
目 录
1 引言 1
1.1 研究背景和意义 1
1.2 技术简介 1
1.3 预期效果和所做工作 2
2 Online Judge评判核心的实现 3
2.1 评判核心原理 3
2.2 编译环节 4
2.3执行环节 4
3 HTML批注技术 15
3.1 批注技术原理 15
3.2 添加批注 15
3.3 批注的删除 18
3.4 批注融合显示 19
4 系统架构设计 22
4.1 需求分析 22
4.2 总体架构设计 22
4.3 系统结构 23
4.4 用例分析 24
5 系统实现 29
5.1 学生模块 29
5.1.1 提交作业 29
5.1.2 查看作业批注 30
5.2 教师部分 32
5.2.1 题库和用例维护 32
5.2.2 批阅作业 34
6、统计分析功能的实现 37
6.1 错误总数随学号和题号的分布 37
6.2 错误种类随学号和题号的分布 29
结束语 32
参考文献与附录 33
致谢 34
1 引言
1.1 研究背景和意义
在高校的教学实践中,学生的动手实践能力一直是被放在很重要的地位。为了使学生的实践能力和动手能力得到锻炼,实验成为教学中必不可少的方式。用何种方式能够使学生的能力得到最大程度的培养,怎么样的课程环境最方便教学,如何管理实验课程的流程,以及学生作业的批改处理、实现师生间的及时沟通交流,这些都是实验教学中必须面对的问题。
传统的实验教学中,教师批改学生作业一直以来都是一种工作量不小的劳动,实验报告是纸质的,从收齐作业到教师批改作业,一直到最终学生收到批改是一个不小的工程。如今,技术进步,计算机和网络得到迅猛发展,电子形式的信息交互以其快速、方便、准确的特性正逐渐受到人们的关注与青睐。随着电脑的普及和网络技术的推广与发展,网络教学和计算机辅助教学在现代教学中正发挥着越来越重要的作用。计算机技术不但可以减轻教育者的工作量,时常堆积如山的报告册将会一去不返。更可以为教育者提供更加丰富的教育形式,与教育对象之间建立一种完全不同于传统的联系方式。
在一些高校的教学中,许多的课程都采用了学生通过电脑提交作业的方式来进一步提高教学效率。这种教学方式需要解决的问题如下:
(1) 在当前学生数量明显多于教师数量的教学环境下,怎么样能够提高教师批阅作业的效率?
(2) 通过电脑提交作业的形式通过什么样的方式实现学生和教师间的交流和沟通?
基于以上的分析,本文意图为程序设计类课程设计一个网络化的实验教学平台,为学生提供通过网页提交作业、查看作业批改结果的服务,为教师提供教学帮助的服务。这是一个综合利用ACM评判系统和HTML批注技术的实验教学系统。
1.2 技术简介
ACM评判系统具有自动判断程序是否有语法错误和运行时错误的系统。Online Judge系统(简称OJ)是一个在线的判题系统[1]。最初使用于ACM/ICPC国际大学生程序设计竞赛中的自动判题。用户可以通过网页提交多种程序的源代码,系统对源代码进行自动编译和运行,并通过预先设计的测试数据来检验程序源代码的正确性。提交的程序在Online Judge系统下会受到各种限制约束的检查。
Online Judge系统会获取到用户程序执行的返回值或错误代码,系统之后会把所获得的值传递给一个函数。该函数会通过将传来的值与预先设定的标准输出的值作对比的方式检测用户程序是否有运行时错误。
在程序设计类辅助教学方面,以PKU ACM Judge Online[2] ,杭州电子科技大学Online Judge[3]为代表的Online Judge系统为代表。现该系统广泛应用于世界各地高校学生程序设计的训练、程序设计竞赛的训练和选拔、以及学生作业的自动提交判断中[4]。
Web标记就是对Web页面的内容进行标记。它在不使用插件也不更改原文件的内容的基础上,实现对web任何一段HTML元素添加批注。当用户浏览批注时,通过将文件与批注进行叠加,达到融合显示相应批注的目的。
这种技术广泛应用于网络教育与电子政务,如网络教育中的教师对学生作品批注,电子政务拟稿过程中领导对稿件的批注等方面[6]。随着技术的不断进步和创新,Adobe公司和Microsoft公司分别提供了PDF在线批注和Office在线批注功能。一些电子浏览器为了方便读者阅读,也添加了HTML批注的功能。
1.3 预期效果和所做工作
部署了该实验教学平台的实验教学与传统的教学方式比起来一个非常明显的特点就是智能化许多。这体现在两方面:一是查看学生实验报告内容和检查作业正误的工作交给系统完成,不需要教师人工阅读和评判,教师可以在此基础上从更高的角度对学生学习效率和课程教学成果做出评估[5];二是HTML页面标记技术的带给阅读实验报告的人全新的阅读体验,高亮显示、批注融合等是在传统的纸质实验报告中无法想象的。该教学平台对提高教师的工作效率,方便教师了解学生学习情况等方面起到了至关重要的作用。
基于以上的分析综合判断,Online Judge功能对于程序设计类课程的教学来说十分有用,它可以代替教师对学生程序的正确性和一定程度上的效率做出判断并自动给出结果,以此来减轻教师的工作量。搭建基于ACM评判核心和HTML批注技术的实验教学平台需要构建一些功能模块来实现,其中包括作业的提交;作业的存储;Online Judge评判核心的实现;ACM评判核心动态对代码的编译和运行;添加批注;批注的存储;批注的融合显示;删除批注;错误的统计与分析。实现原理与细节将在以下章节中一一介绍。
2 Online Judge评判核心的实现
2.1 评判核心原理
下面对该实验教学平台的ACM评判核心的实现过程进行论述。
ACM评判核心的流程图如图2-1所示。
图2-1 ACM评判核心
评判核心的评判功能由两部分组成。第一部分是判断源程序是否存在编译错误----编译环节;第二部分是判断程序是否存在运行时错误----执行环节。系统就是根据编译和执行两个环节的执行结果判别用户提交的程序是否通过ACM评判核心的测试。
在这里,需要注意的是,对代码进行评判前首先从数据库中读取原代码并生成源文件,然后依次进行编译和执行。
2.2 编译环节
由系统通过调用编译器完成。不同类型语言的程序必须调用不同的编译器。例如java程序调用javac.exe编译;C语言程序调用gcc编译器。ACM评判核心通过启动编译进程并获取编译器的输出结果来判断编译成功与否;通过启动生成的可执行文件创建进程,并将测试用例中的输入数据输入到进程,获取进程的输出后与测试用例结果进行比对,从而实现程序正确性的判断。
本课题用C#实现了编译和评判核心,通过C#中的Process类实现进程管理和输入输出重定向。以编译环节为例,系统首先启动进程调用在某目录下存放的编译程序;也可以启动CMD命令行程序;再调用编译器。之后Online Judge核心通过配置进程的参数(Process.Startinfo.Arguments等),向CMD中导入编译命令和目标文件名并启动编译。编译进程编译的时间随不同程序而有所不同,因此在启动编译后,评判核心可以“睡眠”一段合理的时长,这样可以确保之后从编译程序中能够取得退出码、错误代码等编译的结果信息。后台同样通过输出重定向获取编译程序的输出流,其中包括返回值和错误代码、错误信息等,并通过这些返回数据判断程序编译正确与否。系统将编译程序的输出归为两种情况:通过编译;未通过编译。
ACM评判核心中,编译环节由compile();函数完成:
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3374.html