项目理念 |现场裁判
项目名称:现场裁判
这个想法是为学生和教师提供一个框架,在没有任何互联网连接的情况下在大学举办编码比赛,以鼓励公平竞争并避免任何滥用。这也将有助于减少比赛中通常遇到的技术故障。
背景:
制作我们自己的“现场裁判”的想法的产生可以归因于我在我们机构主办的特定编码比赛中遇到的 PC^2 错误,最终影响了排名。
在那次比赛之后进行了进一步的研究,发现PC^2过去曾多次失败。这引发了创建一个无障碍平台来评判未来编码竞赛的需求。
客观的:
我的工作目标是设计一个强大而高效的系统,在不使用任何互联网连接的情况下在大学举办编码比赛。
介绍:
- 它是对 SPOJ 和 Codechef 之类的现场评委,但没有使用任何互联网连接。
- 它将允许互联网连接不佳的大学举办编码比赛。
- 它是一个运行在大学内部网连接上的网络应用程序,使其跨平台。
- 唯一的限制是它需要 Linux 来运行 Judge,而提交可以从任何操作系统进行。
法官目前接受以下语言的提交:
- C
- C++, C++14
- Python2,Python3
- Java,Java8
当前系统的问题:
- 目前的系统有以下缺点:
- 它使用互联网连接,这有时会使编码竞争变得不公平,因为它为学生提供了作弊的窗口。
- 它们还经常出现一些技术故障和崩溃,这破坏了编程的精神。
- 他们中的大多数不检查导致意外系统行为的恶意代码。
- 各种在线系统并没有为高校提供任何进行内部评分的私人编码竞赛的平台。
- 现场裁判试图克服所有这些问题。
概念框架:
Onsite Judge 基于 Django 框架开发,使用多处理提供异步提交队列。
特征:
- 目前,法官允许用户编译和测试不同语言的代码。
- 以不同语言提交问题,并以 AC、WA、TLE、运行时错误的形式返回结果。
- 创建比赛,删除比赛,查看排名列表。
- 比赛后登录、注册、查看提交和编辑。
- 协调员最多可以为比赛中的特定问题上传 10 个测试用例。
- 添加了 Bug-checker 以在提交问题和上传测试用例时检查恶意代码/病毒。
- 提供三个类别——用户、协调员、管理员。
- 用户可以查看比赛,提交比赛问题,编译和测试,查看排名。
- 协调员-可以通过测试用例和解决方案为特定比赛添加问题。
- 管理员 – 可以创建、删除比赛、用户帐户和问题。
图表:
使用的工具:使用Python Full Stack 进行判断。
应用:
它旨在满足诺伊达 Jaypee 信息技术学院举办的竞赛的特定要求,但其大部分组件都可以轻松更改以满足任何其他大学的要求。
这也将为更好地评估内部考试中的编码问题提供一个平台,因为现场评委将使编码竞赛只对属于我院的学生开放。
Github: https://github.com/chunky2808/Karmo-Onsite-Judge
阅读研究论文以克服 PC^2 的缺点。
注意:此项目创意由Paras Jain (Jaypee 信息技术研究所,诺伊达)为 ProGeek Cup 2.0 贡献 - GeeksforGeeks 的项目竞赛。