项目主页、下载地址、安装说明等都在:https://github.com/hit-moodle/moodle-local_onlinejudge
它并不是1.x的简单升级,而是完全的redesign,和近乎完全的recode。主要改进:
- 架构上分成三个部分:judgelib、judge和client。
- judgelib是一个函数库,以local插件的形式安装到moodle中,对外提供评测接口
- judge是judgelib的子插件,可以叫做评测引擎插件。现在支持sandbox和ideone.com两种引擎,还可以扩展到更多
- client是和最终用户交互的插件,它对用户提供界面,对内调用judgelib做评测。现在只有一个作业类型插件,还可以扩展更多,比如测验插件、活动插件等等
- 作业插件支持多文件编程(仅限sandbox)
- 管理员可以设置一些全局设置
- 教师可以设定自己的ideone.com账号,避免了免费账号判题次数的问题,还能通过ideone.com管理学生的程序
- 可以一次只重新评判一名学生
暂时还未完成的1.x的功能包括:
- 显示学生程序的输出给教师。这个功能将改进成显示更详细的程序运行信息
- 代码加亮预览。因为moodle 2.0的变化,这个实现起来稍微有些麻烦,正在寻找最好的解决办法
1.x用户将moodle升级到2.0后,可以直接升级online judge 2.0,原有作业都会被继承保留。
欢迎测试!发现任何问题,有任何意见和建议,都请在项目主页的issues中提出。多谢!
另外,后续版本的发布可能不会再通过博客等媒体宣布,请在github上watch本项目,以便随时了解最新动态。
再另外:
- 热点提问支持moodle 2.0的版本早已经在了,而且可以算是稳定版,欢迎使用
- 支持Moodle 2.0的MOSS反抄袭将是接下来的开发焦点。现在的代码还很惨不忍睹,很不建议试用,不信可以在github上看看
最后:诚征志愿者帮我们解决各种issue,详见《志愿者指南》