Skip to content

OnlineJudge @ DaSE ​

面向学院编程训练的在线评测系统,承载课程作业评测、集中考试与研究生招生编程能力考查。它是现役水杉校场的继任者:验证达标后将接管现有的课程评测与题库。

核心能力 ​

  • 多语言评测:C / C++ / Java / Python 等课程常用语言,统一沙箱隔离运行,限制时间、内存与系统调用。
  • 测试集与判题:支持标准输入输出比对、特殊判题(浮点容差、交互题)与自定义 checker。
  • 题目与题库:题目标签、难度分级、题库查重;支持从课程作业向竞赛题库沉淀复用。
  • 教学视角:按班级 / 作业统计通过率、提交次数与典型错误分布,为讲评提供数据依据。
  • 防作弊基线:代码相似度检测、提交行为审计与评测日志留存。

技术形态 ​

评测请求与业务逻辑分离:Web 服务负责题目、提交与排行,判题由独立 worker 队列消费,评测在受限容器内执行。队列与 worker 可水平扩容,单个节点故障只影响局部判题吞吐而不会堆死整个系统——这正是针对旧平台单体制约的重设计。数据库保存题目、提交与竞赛数据,排行榜等热点读走缓存。整体按可自部署设计,不绑定单一云环境。

与水杉系列的关系 ​

本系统的目标不是长期与旧平台并存,而是替换现役的水杉校场:

  1. 并行验证:在若干门开课课程与招生考查中接管新增需求,旧实例继续承载存量任务。
  2. 指标达标:重点看高峰期可用性、判题队列延迟、单位资源能支撑的并发量与运维工时,验证结果需不低于现有平台且明显优于旧实例的资源开销。
  3. 数据迁移:题库、用户与历史提交记录批量迁入,保留可追溯的评测日志。
  4. 下线切换:旧实例只保留只读归档,对外入口收敛为水杉校场一个名字。

切换后仍保留与水杉在线打通课程与班级数据的规划,使编程作业成为学习轨迹中可分析的一环。

使用范围 ​

  • 面向学院开课课程的评测需求,由任课教师或助教申请开通。
  • 研究生招生过程中对考试编程能力的考查。
  • 大规模存量任务仍跑在现役水杉校场上,完成换代前两套环境并行,新增需求优先接到本系统。