基于Docker的分布式程序判定系统设计与实现
2018-07-09舒新峰王梦楠
实验室研究与探索 2018年6期
舒新峰, 张 文, 王梦楠
(西安邮电大学 计算机学院,西安 710121)
0 引 言
编程能力是信息类专业学生的一个基本技能,掌握的好坏程度对后期专业课程的学习和就业具有重要的影响[1]。程序设计类课程担负着编程能力训练的重任,但是传统纸质作业和卷面考试的课程考核方式需要老师人工评判。一方面,任务繁重且评判效率低下;另一方面,导致了学生“重理论,轻实践”,极大地影响了后期课程的学习[2]。如何用计算机技术解决学生编程能力的培养问题成为计算机实践教学改革的一个研究重点[3]。
对于程序评测系统的研究,可以追溯到1965年Forsythe和Wirth提出的自动评分程序[4]。如今,国内外已经出现了很多在线程序评测系统,如美国计算机奥林匹克竞赛系统(USA Computing Olympiad,USACO)、北京大学在线评测系统(Peking University Online Judge,POJ)和浙江大学在线评测系统(Zhejiang University Online Judge,ZOJ)[5-7]。现有的评测系统一般为浏览器/服务器模式(Browser/Server,B/S)架构,学生通过Web页面提交针对特定题目的解决方案,评测系统在判定服务器的操作系统上对学生提交的源程序进行编译、运行及判定[8]。在线程序评测系统应用于计算机辅助教学中能给教学双方都带来极大的方便。一方面,激发学生编程的兴趣,随时进行编程学习;另一方面,教学人员节省阅读学生代码的时间,降低劳动强度。为防止学生代码影响到判定服务器的安全性,例如盗取数据资源或破坏文件系统,现有评测系统屏蔽了文件操作、多线程使用等重要的系统调用,不能很好的满足程序设计类课程的判定需要[9-10]。……
登录APP查看全文
