Beta 阶段发布公告
功能与特性
概览
整个课程平台分为学生端和管理端两个平台,在这里介绍下 Beta 版本的新增的功能。
在学生端,增加了下面的功能。
在提交评测界面将学生情况界面和任务列表界面合并到一块,前者使用方块的形式展示个人完成情况,后者则详细展示了任务列表的信息。
增加了讨论区功能,学生可以在讨论区发布帖子、点赞和取消点赞、订阅帖子,教师和助教可以置顶需要的帖子。
增加了教程模块,用于展示 markdown 格式的教程,在教程中可以插入选择题、填空题。
个人信息界面中增加了上传图片修改个人头像的方法。
增加了通知提醒模块,可以提醒用户还未读取的通知。
在教师端,增加了下面的功能。
导航栏增加了全局管理,将用户管理、课程管理、题目管理、评测节点和令牌管理这五个有关全局的配置合并到了一块。
增加查看评测节点功能,教师和助教可以实时查看评测机的心跳情况,及时发现出现问题的评测机。
增加令牌管理界面,教师和助教可以在前端申请评测机令牌,并用于评测机上。
增加了通知管理,对于发送的通知和通知内容进行管理。
增加了统计分析功能,教师和助教可以非常直观和美观的查看考试的通过情况,各个老师班级的通过情况,学生的通过情况和提交统计信息。
增加了考试配置模块,可以对参加考试的同学进行配置,可以对个人和筛选列表进行考试延时,查看考试的异常 IP 地址。
评测管理部分增加重评,可以重评测试记录或一个测试记录列表,增加了评测记录导出功能方便课程去归档。
修复的 Alpha 版本的缺陷
- Alpha 存在的缺陷:
- 前端“0 分”显示“未提交”:“未提交”与“0分”有本质区别,在教学上应该区分
- 后端 IP 记录有误:IP 记录错误,无法跟踪学生登陆的 IP,不利于考试监控
- 后端筛选器结果为空时报错:无结果也是正确的情况,不应该报错
- 评测端 http 请求的 client 引发 goroutine 泄漏
- 这些缺陷都直接通过 debug 方式来解决,目前:
- 前端“0 分”显示“0 分”
- 后端 IP 记录正确
- 后端筛选器结果为空时返回 200
- 修复 goroutine 泄漏
效益
- 增加了实时通知功能,管理端发布通知后,登陆状态的学生端将直接弹出通知。在之前的系统中,通知往往依靠老师和助教人工完成,新系统可以帮助老师和助教节省时间与精力。
- 增加了头像显示,并在上传头像前提供了简单的旋转、缩放等功能,用户可以自定义自己的头像。
- 优化了教程支持,教程页面更加美观与现代化,同时教程与教程内的小题使用 Markdown 编写,使用 Git 管理并通过 CI 自动部署。在之前的系统中,教程使用富文本或 Html 编写且集成在 edx 中,小题通过 edx 的 UI 配置,新系统在带来更好的用户体验的同时,有更好的可维护性与可扩展性。
- 优化了讨论区支持,新讨论区采用贴吧式渲染、提供了搜索功能、完整的 Markdown 支持,并面向操作系统课程提供了点赞、订阅、置顶、关闭、认证等功能,且在关注的帖子收到回复后支持通知提醒。在之前的系统中,讨论区的 Markdown 支持不完善,且不支持置顶、认证等功能,新系统的讨论区功能更加完善也更好的适应了操作系统课程的需要。
- 增加了针对分布式评测机的结点管理,支持创建和删除评测令牌,支持查看评测结点的心跳。
- 增加了批量重测功能。在之前的系统中,重测需要由助教写脚本完成。
- 增加了考试配置功能,且支持对一部分同学延时,支持检测异常 IP。在之前的系统中,需要由助教手动开关考试题目的评测,会在 Git 中留下大量打开/关闭评测的记录,且容易发生遗漏,新系统可以自动完成评测的开放与关闭,以免出现考试结束,同学仍可以看题/提交。
- 优化了权限管理,实现了精确到 API 的权限控制,且可以通过权限模板快速配置一个用户的权限。在之前的系统中,存在且仅存在学生与管理员两个角色,两个角色的权限固定,新系统更精确的权限控制更便于用户管理。
- 优化了统计分析,将统计分析功能集成到管理端,支持多种图表,支持延迟加载,且支持根据语法树/自定义 js 语句进行筛选。在之前的系统中,使用了一个单独的前端进行统计分析,不支持语法树/自定义 js 等高级筛选,且一次性传输全部原始数据到前端,由前端完成解析与渲染,存在卡顿问题。
场景
-
场景 1:
-
姓名:夜捉人
-
身份:OS 课程助教
-
时间:课上考试期间
-
需求:发布考试中实时通知
-
本平台满足需求的场景:
在上机考试过程中,夜捉人助教发现有一道题目需要进一步解释。他登录管理端,编辑了一则通知,对题目的内容进行详细说明,并在检查无误后发布。很快,所有正在参加考试的同学都在页面的右上角看到了这一则通知。
-
-
场景 2:
-
姓名:小红
-
身份:OS 课程学生
-
时间:完成课下实验时
-
需求:讨论区发帖
-
本平台满足需求的场景:
小红完成了本次课下任务,对任务中涉及到的知识点有非常深的感触和理解。她打开讨论区,采用 Markdown 发布了一篇关于这次实验的心得体会和可能的注意事项。很快,她的帖子收到了其他几位同学的点赞和回复,还收到了助教的认证。
-
-
场景 3:
-
姓名:小蓝
-
身份:OS 课程学生
-
时间:完成课下实验时
-
需求:查看讨论区
-
本平台满足需求的场景:
小蓝在完成课下任务时遇到了困难。他打开讨论区,搜索实验中遇到问题的关键词,很快就找到了一篇获得助教认证的帖子。他按照帖子中的内容进行了修改,很快就通过了课下测试。他给主题帖点了赞,并订阅该帖子,以便随时获得帖子和更新。
-
-
场景 4:
-
姓名:吴老师
-
身份:OS 课程教师
-
时间:新助教上任时
-
需求:配置助教权限
-
本平台满足需求的场景:
吴老师为新招的助教船舰了账号。每一位助教的只能和权限不尽相同:有的助教负责更新教程部分,有的助教负责管理题目,有的管理考试等。老师直接采用已经按照职能分配好权限的模板为新助教的账号授权,很快就完成了助教权限分配的工作。
-
-
场景 5:
-
姓名:吴老师
-
身份:OS 课程教师
-
时间:课上测试后
-
需求:查看学生成绩
-
本平台满足需求的场景:
课上考试结束了。吴老师很关心班上的学生的考试情况,他打开管理端,调出本次考试的成绩。统计图很直观地展示了学生的成绩分布。他为了进一步了解具体的细节统计信息,输入了自定义的要求进行查询。系统解析了查询语法树后精准反馈了查询结果。
-
-
场景 6:
-
姓名:辰囸添
-
身份:OS 课程助教
-
时间:课上测试后
-
需求:考试其他需求
-
本平台满足需求的场景:
新北地下机房在考试中发生了断网的情况,助教为了保证考试的公平,为这个机房内所有的学生延长了相应的考试时间。一部分同学提前交卷离场了,但是原先的测试脚本存在 bug,辰囸添对这部分同学的提交采用新的脚本进行了批量重测。
-
运行环境要求
支持的浏览器版本
- Chrome 98+
- Edge 99+
- Firefox 98+
- Opera 82+
- Safari 15.2+
已测试的浏览器版本
- Chromium 80
- Chrome 100, 101
- Edge 101
- Firefox 94, 99, 100
- Safari 537, 605
安装与使用方法
所有账号由课程管理员(老师或助教)创建,不允许自行注册。
联系课程组可获取正式账号或开发账号,用于登录正式版本或内测版本;联系开发团队只能获取开发账号,用于登录内测版本。
申请账号后即可登录并按照上面展示的方法使用系统。
系统已知问题
- 教师端 CSV 批量导入功能不能识别 GBK 编码:
- 需要自行转换编码为 UTF-8。
系统已知限制
- 由于校内网络环境的特殊性,暂时无法提供 HTTPS 服务:
- 使用时请配置浏览器使用 HTTP 访问系统。
- 暂无系统内反馈机制:
- 使用问卷星外链暂时提供反馈渠道。