主要功能

1 代码评判相关功能

  (1)  串行程序自动评判

  • 支持C、C++、Java、Python、C#、Pascal、Fortran等高级程序语言代码的自动评判。
  • 支持实时评判,利用CPU多核并行评判学生程序,不需要排队评测,实时给出评判结果。
  • 支持项目级多源文件的自动评判。可以将多个源文件打包上传,系统自动解压并编译。
  • 程序自动评判方面不仅仅告知正确与否,更侧重对程序的全面分析,例如性能分析、代码风格检查、静态分析、错误原因分析等,帮助和引导学生写出高质量的程序。
  • 支持三类输入方式(标准、文件、命令行参数)与两类输出方式(标准、文件)的任意组合。
  • 支持接口编程、程序片段、完整代码三类编程题型,从多角度考核编程能力。
  • 支持输出结果的模糊比对,输出结果中的大小写、空格等不可见字符不影响评测正确性,可以利用通配符描述输出结果。

  (2)  大数据处理

  • 支持大数据的上传与评判。
  • 支持性能作为评判标准。
  • 排行榜激励机制,性能得分以排行榜的形式展现,促进学生不断优化自己的算法。

  (3) 并行程序自动评判

  • 针对CPU多核多线程并行程序和集群架构的MPI并行程序,能够自动从正确性、性能和可扩展性三个方面进行评测。
  • 评判结果以图表方式直观展现,便于发现并行程序的问题并有针对性地改进,达到了人工评判无法企及的教学效果。

2 相似性检测功能

  (1) 代码相似性检测

  • 可检测出修改注释、重新排版、标识符重命名、代码块重排序、代码块内语句重排序、 常量替换、改变表达式中的操作符或者操作数顺序、改变数据类型、增加冗余的语句或者变量、表达式拆分、控制结构等价替换,共12种学生用到的抄袭手段。

  (2) 文档相似性检测

  • 能够检测出经过同义词替换调整语句或者段落顺序删除部分段落、更换标题等手段深度修改过的抄袭文档。
  • 支持PDF、Word、PPT、Excel等常见文档格式的相似性检测。

3 数据结构与算法可视化

  • 对教学中的典型算法进行交互式模拟跟踪,将抽象的数据结构和算法实现动态同步可视化,使学生更容易理解算法思想,激发学习兴趣。

  • 支持栈、队列、堆和递归、索引、排序、图、动态规划,共45种数据结构和算法的交互可视化。

​4 软件工程系列课程实践教学辅助功能

  • 支持小组作业和互评。鼓励学生依托平台进行交互和协同开发,在互评过程中引导学生思考如何高质量完成课程实践、如何解决遇到的问题,从而提升软件工程能力和素养。

  • 支持基于GitHub的项目管理。利用优秀的开源软件开阔学生视野,鼓励学生构思有创意的软件需求。利用GitHub自动统计实践过程中的信息和小组成员的贡献。

  • 支持项目题型和项目关联,提供对迭代式开发的辅助管理。

​5 编程竞赛

  • 独立的OJ模块(CG-OJ),并附带3000道ACM竞赛题库。作为CG课程教学系统的一个补充,方便高校用户进行ACM训练和比赛,同时有助于沉淀本校学生的学习数据。
  • 支持并行与分布式程序编程竞赛,支持Java多线程、MPI(C/C++)、pthread并行编程库,评测标准类似Google code jam Distributed
  • 支持大数据性能比赛,大数据作为测试用例的情况下,算法性能才有区分度,让学生充分体验算法的魅力。

6 课程管理功能

  (1) 题库管理

  • 支持11类题型,包括:
    • 通用题型:填空题、选择题、判断、简答题(支持在线批阅和答案相似性比对)、文件上传题(支持文档 / 源码相似性检测)。
    • 程序设计类题型:编程题、接口编程题、程序片段编程题、并行编程题、算法可视化题。
    • 软件工程类题型:项目题(支持使用GitHub进行项目协作)。
  • 支持作业题库与考试题库的分类管理。支持题目的导入 / 导出。
  • 支持题目按照题型、知识点、章节、难易度分类浏览。
  • 自动根据历史数据度量题目的正确率、代码行(编程题)、平均完成时间,帮助教师量化题目难度与特征。

 (2) 在线考试

  • 支持按照知识点、章节、难易度、使用频度等规则,自动抽题组卷。
  • 支持单场考试多套试卷,并根据客户端IP或者学号自动分发试卷。
  • 考试期间,支持IP访问控制,限制特定范围内的IP地址访问。能够穿透代理实时监测学生交换账互相抄袭。可以关闭现有栏目,避免学生在考试期间通过答疑论坛进行交流。
  • 考试结束后,能够利用代码相似性检测功能,对提交代码进行抄袭检测。
  • 支持考试归档,一键打包下载考卷与学生答题结果。

  (3) 在线作业

  • 提供限时功能,即学生可被要求在规定时间内完成规定量的作业。
  • 支持自动出题,根据知识点、章节、难度、使用频度等规则自动出题。
  • 支持随机作业,根据题目难度等规则随机抽取题目。
  • 支持小组作业,学生可以分组协作完成项目或者作业,支持组间互评。
  • 支持电子归档,可以将学生作业全部打包下载。
  • 支持作业补交,可限定作业的补交期限,并标注补交状态。

  (4) 在线答疑

  • 提供网上答疑功能,使得学生在遇到问题时能随时随地提出问题、并使问题能得到及时响应和解决,课程教师亦可通过它了解学生课程学习情况,调整课程内容和进度,以建立一个由课堂教学到课后反馈的闭环教学手段。
  • 每门课程都可以创建独立的答疑论坛。
  • 允许用户跟踪感兴趣的主题,在有更新的情况下获得电子邮件提醒。

  (5) 成绩管理

  • 自动统计每次作业/考试的平均分、方差、最高分、最低分。
  • 支持成绩的导入/导出。
  • 支持成绩汇总,可设定历次作业成绩、与考试成绩的权重,系统自动汇总。
  • 支持客户端的学生成绩查询。

  (6) 学生账号管理

  • 支持学生账号树形分类管理。
  • 支持学生账号Excel表批量导入。

  (7) 课件管理

  • 支持课程简介、课程大纲、参考教材等信息的录入与展示。
  • 支持课件等资源的上传下载。

  (8) 公告发布

  • 支持公告的定向发布,并支持通过Email将公告发到学生信箱。
  • 支持首页通知,在首页显著位置显示公告内容,用于重大事项的发布。

  (9) 栏目定制

  • 教师根据需要增设自定义栏目,扩充系统功能。
  • 栏目内容可以播放MOOC视频、音频等多媒体内容。

  (10) 基于角色的权限控制

  • 支持系统管理员、教师、助教三类角色的权限控制。助教的权限可以细化到操作级别(例如:删除试题、修改成绩等)。
  • 支持题目、作业、考试等可编辑项的日志管理,方便多位教师共用一门课程时追踪修改轨迹。

7 系统运维功能

  (1) 多课程管理

  • 支持课程的创建、以及课程教师的权限分配。
  • 支持课程标签管理,方便分类浏览课程。

  (2) 系统外观

  • 支持首页的标题与页脚定制。
  • 支持首页风格定制,目前支持传统风格、精简风格课程中心风格OJ风格,其中课程中心风格类似当前的MOOC首页,可以展现系统内所有课程信息。

 (3) 系统维护

  • 支持手工备份与自动备份,自动备份功能可以定期将数据备份至异地存储设备,增强系统数据的可靠性与安全性。
  • 支持在线系统恢复与迁移,通过浏览器上传备份数据,恢复系统到某一时刻的状态。
  • 支持Web端口更改,可以通过浏览器直接修改Web端口。
  • 极简的系统升级体验,通过浏览器直接上传升级包,即可在线升级系统。
  • 若出现服务器磁盘空间不足、磁盘故障、时钟错误等问题,系统可以自动报警。

 (4) 系统数据统计

  • 展示过去24小时、过去1周,评测次数随时间的变化曲线,直观展现系统的繁忙状态。
  • 统计系统自运行以来,共提交的代码行数。
  • 统计分别在作业与考试中,每道题的平均代码行,便于从总体上掌握学生的编程能力。

Last modified on 2017-09-13 by zch