程序设计类课程教学辅助平台 CourseGrading www.cjudge.net 赵长海 zch@buaa.edu.cn 2016年3月24日
CourseGrading是什么? 概况 特色 质量 CourseGrading@北航 历史 定位 应用 与CourseGrading共同发展 高校用户 未来规划 免费使用
CourseGrading是什么? 课程管理平台 系统管理与运维 程序自动实时评判 算法可视化 在线考试 在线作业 在线答疑 成绩管理 性能热点分析 时空复杂度分析 静态分析 错误分析 代码度量 多源文件支持 多角度编程考核 多输入输出方式支持 并行程序自动评判 正确性 可扩展性 性能 多线程 MPI程序 算法可视化 递归 索引 排序 图论算法 动态规划 在线考试 在线作业 在线答疑 成绩管理 助教权限管理 课件管理 抄袭检测 课程管理平台 栏目定制 学生管理 与ACM OJ系统以及穿了马甲的OJ系统的区别 1.方便运维管理 2.完善的课程管理,成绩管理,导入导出,试卷存档等 3.第一个支撑并行程序自动评判的系统 4.真正的程序设计类评判平台:串行、并行、数据结构与算法的全面支持 3.程序自动评判:串行、并行 系统管理与运维 系统备份 多课程管理 系统升级 系统迁移 系统性能 系统外观 教师权限管理
CourseGrading特色 丰富的题目类型 选择题 填空题 简答题 文件上传题 编程题 接口编程题 程序片段编程题 算法可视化 并行编程题 MPI分布式 多线程 4类 通用 题型 4类 编程 题型 1类 并行编程题型
CourseGrading特色 程序评判:对错不是唯一标准! 1.主要用于数据结构课程,让学生体验算法的魅力。计算机体系结构等,也可以使用
CourseGrading特色 程序评判:对错不是唯一标准! 以执行时间最短的程序为基准判分 排行榜作为得分依据 促进学生竞争意识,不断尝试各种数据结构和算法优化自己的程序
CourseGrading特色 程序评判:支持大数据的评测! 支持大数据的上传与评测 性能也能够参与评分
CourseGrading特色 程序评判:支持输出结果的模糊匹配! 支持使用 通配符 描述期望输出 浮点数输出
CourseGrading特色 程序评判:支持输入与输出任意组合! 浮点数输出
CourseGrading特色 程序评判:实时评判(VS. 排队) 利用CPU多核并行评判学生程序 1.学生有集中上机的特点,排队评判的体验非常不好 2.学生程序中存在死循环等问题时,重复提交,排队时间会非常长 上机时间结束了,还不知道自己的提交程序的评判结果? 考试完毕,判分结果还没出来?
CourseGrading特色 程序评判:支持多源文件 能够支撑软件工程、编译原理等项目级别的源代码 支持多源文件打包上传
CourseGrading特色 程序评判:详尽的评判报告 基本测评报告
CourseGrading特色 程序评判:详尽的评判报告 不仅仅是对错,帮助学生全面认知程序的内涵,树立软件工程思维,引导学生写出高质量的程序
CourseGrading特色 程序评判:代码度量 客观量化题目难度
CourseGrading特色 算法与数据结构可视化 增强数据结构的趣味性
CourseGrading特色 并行程序的自动评测 从正确性、可扩展性、性能三个角度全面评测并行程序 支持分布式MPI、多核多线程并行程序 并行程序评测背后需要集群或者多核服务器支持
CourseGrading特色 并行程序的自动评测:直观的评判报告
CourseGrading特色 代码相似性比较 赵长海等,基于编译优化和反汇编的程序相似性检测方法,《北京航空航天大学学报》,2008年。国内相似性比较研究领域,引用率最高的文章。 代码相似性检测 修改注释 重新排版 标识符重命名 代码块重排序 常量替换 改变操作符 改变数据类型 代码冗余 表达式拆分 控制结构等价替换 基于源代码级的相似比较的问题:插入冗余代码段即可避开 防抄袭的杀手锏 如果联网,如果两个人抄袭了同一份代码? 精确列出相似者名单,支持在线对比查看
CourseGrading特色 文档相似性检测 支持互相比较、互联网相似文档搜索 支持相似文本块着色
CourseGrading特色 全方位支持在线考试 支持单场考试多套试卷,根据IP地址分发试卷
CourseGrading特色 全方位支持在线考试 考试期间可以关闭栏目,控制客户IP地址范围
CourseGrading特色 全方位支持在线考试 实时监测学生交换账号互相抄袭 除了这些,系统性能非常重要,是否能够支撑高并发。
CourseGrading质量 性能! 单台普通笔记本能够支撑数百人同时在线考试 案例: 上海大学 国防科大 北航 单台服务器支撑全校3000人 国防科大 1GB内存台式机的抗压测试 北航 P4 1GB台式机 350人考试 坑: 平时做作业还可以,考试崩溃 使用两年之后,系统巨慢无比
CourseGrading质量 安全性! 在线评判系统极易出现安全性问题 安全性如何保障? 长时间使用验证+高水平的攻防测试 一个没有经过长时间使用验证,以及专门的高水平安全测试的系统
CourseGrading质量 可维护性!安装的便捷性 一键式安装 安装Linux 下载&执行安装包 支持老师下载安装到自己的服务器上 非在线模式: 1.考试成绩放公网 2.政治言论问题 下载&执行安装包
CourseGrading质量 可维护性!数据的可靠性 手动备份,主要应用场景: 自动备份,主要应用场景: 将系统数据从服务器→便携式“服务器” 自动备份,主要应用场景: 每周自动在指定存储设备上备份数据 通过浏览器备份数据 运维工具 简化数据备份复杂性 即使是服务器,出现故障后,立即恢复系统。 自定义自动快照策略,保障数据可靠性
CourseGrading质量 可维护性!系统升级的便捷性
CourseGrading是什么? 概况 特色 质量 CourseGrading@北航 历史 定位 应用 与CourseGrading共同发展 高校用户 未来规划 免费使用
CourseGrading@北航 历史:研发始于2004,初期目标: 目标背后:如何减少教师课堂教学之外的时间投入,又能保障学生的教学效果! 能够用于考试,性能是关键 前车之鉴:学院前期有一个类似系统,考试期间120人左右同时登录,系统瘫痪,引发教学事故。 CourseGrading要解决使用普通P4台式机,支撑350人同时在线考试! 能够有效检测抄袭 具备基本的课程管理功能 学院不投入,当时3万-》房价 没有有效的抄袭检测,在线考试的真实性无法保障 目标背后:如何减少教师课堂教学之外的时间投入,又能保障学生的教学效果!
CourseGrading@北航 定位:一站式、全过程教学(非竞赛训练)支持 Acm竞赛的问题 全过程自动化程序设计教学 在线考试 在线作业 在线答疑 成绩统计 课件管理 多角色分权限 学习追踪与度量 代码自动评判 代码抄袭检测 Acm竞赛的问题 很多高校过于看重acm竞赛,错误认为大学四年不断刷题就能找到好工作 做研究与做项目,不仅仅是写个函数那么简单,整个计算机的知识体系是有很多环节构成
CourseGrading@北航 定位:以程序设计类课程为主,逐步包容更多课程 一站式学习 汇聚大量的数据, 为大数据分析创造 条件 让学生也能够一站式学习
CourseGrading@北航 定位:CourseGrading是平台,主体是教师 教师、同学氛围是不可取代的,仅仅是辅助教学的工具 不灌输所谓的教学理念与方法,由使用系统的教师个性化定制教学与考核机制 不灌输所谓的教学理念
CourseGrading@北航 应用: 《高级语言程序设计》 《数据结构与算法》 《数据结构与程序设计基础》 《算法设计与分析》 《并行程序设计》 研究生复试 编译技术 软件工程 …… 从作业到考试全部在线 作业在线 纸质考试
CourseGrading是什么? 概况 特色 质量 CourseGrading@北航 历史 定位 应用 与CourseGrading共同发展 高校用户 未来规划 免费使用
与CourseGrading共同发展 您的参与是CourseGrading发展的动力! 北京航空航天大学 国防科学技术大学 上海大学计算中心 北京交通大学计算机与信息技术学院 北方工业大学 南通大学 北京邮电大学 北京化工大学信息工程学院计算机系 中国传媒大学南广学院 中国石油大学(华东) 北京电子科技学院 首都经济贸易大学 解放军理工大学 武汉科技大学城市学院 内蒙古师范大学计算机与信息工程学院 福建省龙岩学院 黑龙江八一农垦大学计算机系 安庆师范学院 河北省华北科技学院计算机系 杭州电子科技大学 华北科技学院 黑龙江工程学院 北京信息科技大学计算中心 国家数字系统交换中心 淮海工学院计算机系 山东建筑大学 四川大学 沈阳航空航天大学计算机学院 广东药学院 电子科技大学信息与软件工程学院 ......
与CourseGrading共同发展 无期限的免费试用:www.cjudge.net 北航参观访问或者联合开发请联系: 邮箱:zch@buaa.edu.cn 微信: 加入CourseGrading QQ用户群: 214085215