- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程网格:一个基于Online Judge的程序设计类课程教学辅助系统
文章编号:1672-5913(2009)02-0087-06
摘要:我院以传统的Online Judge系统为基础设计开发了针对在线程序设计实践和教学辅助的编程网格系统。本文首先介绍该系统的目标和总体功能结构,然后详细说明系统中的虚拟教学资源和教学活动,并阐述了系统在此过程中的教学辅助功能。
关键词:程序设计类课程;Online Judge;教学辅助;编程网格;虚拟机
中图分类号:G642
文献标识码:B
1引言
随着计算机和互联网技术的发展,网络教育与计算机辅助教学引发了一场深刻的教育模式和教育观念的变革。一方面计算机技术减轻了教育者的工作量,提供了更丰富的教育表现形式,并可在教育资源和教育对象之间建立联系;另一方面互联网技术使得更为广泛的群体可以远程接受到更高质量的教育。在这方面,人们已经有了不少的工作成就,MIT的开放课件系统OCW[1]和Moodle课程管理系统[2]即是其中的两个。
在面向程序设计类课程的教学辅助方面,以PKU ACM JudgeOnline[3]为代表的Online Judge系统能够对用户提交的程序进行“黑盒判定”来自动生成判题结果。但从另一方面来说,传统的Online Judge系统针对的是解题训练,并不针对课程教学辅助的场景[4]。为了弥补这一不足,为程序设计类课程提供一定程度的网络教学辅助,我们基于Online Judge功能,开发了一个针对程序设计类课程的教学辅助系统――编程网格系统(Programming Grid,PG)。
PG利用Online Judge的功能提供了程序设计类课程对学生编程能力的锻炼,通过将现实中的教学中的资源、场景、活动引入系统,在虚拟教学活动中提供教学辅助功能,为使用该系统的师生展现了一个虚拟的程序设计类课程的编程训练、教学辅助、教学互动的平台。同时,为了方便各学校或者组织加入到此系统并充分利用其中的资源和功能,PG采用了分布式的系统结构,为系统未来的部署和发展奠定了很好的基础。
2PG系统概述
PG面向的是程序设计类课程及其师生,以及网络上的编程爱好者和计算机相关课程的自学者。对于PG来说,主要的用户包括:一般用户、学生用户、教师用户以及管理员。显然,学生和教师用户是系统中主要活动的发起者与参与者。
PG以Online Judge为基础功能,为用户解决编程问题提供自动判别能力,同时针对程序设计类课程,引入了题目、题集、文摘、课程等教学资源,以这些教学资源为核心形成了众多的虚拟教学场景,利用这些虚拟教学场景中的教学活动为系统中的师生用户提供教学辅助,特别在这些教学活动中增加了师生之间教学互动的功能,为教学中的一对一辅导提供一定的支持。下面几节就分别概述一下系统的这几个方面。
2.1Online Judge
Online Judge系统的最大特点是可以对用户提交的程序“在线判定”其对错。在Online Judge系统中,用户可以在线提交程序多种语言(如C、C++)源代码,系统对源代码进行编译和运行,并通过预先设计的输入/输出测试数据来检验程序源代码的正确性,并对代码生成的程序质量做一定的监控――譬如对程序运行时所使用的内存大小或运行时间进行限制。
目前,这一功能的实现方式主要是“黑盒判定”。对于每一个算法,我们知道,它有0个到多个输入,1个到多个输出,并且具有穷性、确定性和可行性等特征,而每一个算法都是解决一类问题。Online Judge系统上有很多的编程题目,对于每一道题目,都存储了关于此题的多个输入输出对,这些输入输出对已经经过验证符合题意要求。当用户提交一道题目的源码之后,系统会把这个源码放入系统中编译运行,并针对题目的每一个输入输出对比较用户程序的输入输出。最后系统会根据结果返回给用户一个状态:通过(Accepted)、答案错误(Wrong Answer)、超时(Time Limit Exceed)、超内存(Memory Limit Exceed)、运行时错误(Runtime Error)、编译错误(Compile Error),并同时返回程序使用的内存、运行时间等数据信息。
Online Judge功能对于程序设计类课程的教学来说十分有用,它可以代替教师对学生的程序正确性和一定程度上的效率作出判断并自动给出结果,减轻了教师的工作量,教师可以在此基础之上从更高的角度对学生学习效果和课程教学成果作出评估[4][5]。
2.2虚拟教学资源和场景
一般Online Judge系统针对的是编程训练,更多看重的是用户的解题数、解题质量和解题效率,并不关注在程
文档评论(0)