选题和需求说明

选题说明——编译课程平台

编译课程是计算机学院、软件学院的核心专业课,每年有着400+的学生用户量。现有的编译课程平台使用judge平台开发,在UI布局、实验指导书、评测反馈、评测功能、讨论区设计等方面存在问题。

我们希望设计一个集成学生端和管理端的编译课程平台。

Need 需求

学生用户

学生用户在该产品中占比最高,是课程的主要参与者,主要活动为进行课下学习、讨论交流、完成作业和期中期末考试等。具体需求分析如下:

接收通知

  • 学生用户应当可以接收老师或助教发布的通知,涉及作业题面修改、课程进度公告、考试等,类似下图。
     oo通知界面

查看指导书

  • 学生用户需要查看实验教程,教程需要有检索功能便于定位,类似下图。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvbeYwvk-1680012039587)(%E9%80%89%E9%A2%98%E8%AF%B4%E6%98%8E%E2%80%94%E2%80%94%E7%BC%96%E8%AF%91%E8%AF%BE%E7%A8%8B%E5%B9%B3%E5%8F%B0%2070525954db234a829e4c867ba2894803/Untitled.png)]
  • 学生用户可能需要一个GPT辅助阅读指导书,进行对话式辅助学习、快速答疑等。
    在这里插入图片描述

查看和提交作业

  • 学生用户需要查看每次作业的要求和截至时间。
    在这里插入图片描述

  • 学生用户可以选择完成不同难度的实验,分别对应三种目标代码。学生用户需要选择自己提交的目标代码版本(llvm、mips或者pcode)

查看评测反馈

  • 学生用户需要查看提交作业的得分情况和具体的反馈信息,类似下图。
    在这里插入图片描述

  • 对开放测试的的评测结果,学生用户需要对比自己答案和正确答案,类似下图。
    在这里插入图片描述

性能排序(针对最后一次作业)

编译课程在实验的最后阶段有需要性能排序的竞速作业。

学生用户的需求为:

  • 查看最近一次提交的作业性能在总榜单中的情况,分析优化空间。如下图。
    在这里插入图片描述

  • 查看最近历次提交在各个测试点中的性能变化情况,分析优化效果。如下图。(由于需要看对比,学生需要确定自己当前提交的名称)
    在这里插入图片描述

讨论区

  • 学生用户可以在讨论区发帖、查看已有帖子、将帖子按tag分组筛选等,类似下图。
    在这里插入图片描述

管理员

本部分主要阐述助教/教师用户(下文统称为管理员)的需求,由于学生用户和管理员共用一套前端,管理员用户应当能看到学生看到的内容,并额外拥有删改权限。

发布通知

  • 管理员需要发布通知,涉及作业题面修改、课程进度公告、考试等。

用户管理

  • 管理员需要批量导入学生信息
  • 需要课程管理功能,区分不同年份的课程,以便平台持续使用

教程管理

  • 管理员需要新增、修改、删除、查看教程

作业/考试管理

作业与考试需求一致不做区分,统称为作业。管理员需求如下:

  • 增删改作业,包括增删改题面、测验题目、评测点、起始截止时间
  • 应对特殊情况,对特定的学生用户修改起始截止时间
  • 修改评测分数,文档类作业评测结果默认100,其他评测结果按公式计算,管理员有权修改评测得分。
  • 对于竞速作业,管理员应当有权设置排序规则

统计数据

  • 管理员需要查看学生用户的作业进度,作业情况,成绩分布
  • 支持画图等统计方法直观展示,并支持导出

评测管理(成绩管理)

  • 管理员用户需要查看学生用户的提交记录,若出现评测问题可以及时溯源,类似下图。
    在这里插入图片描述

讨论区

  • 管理员需要对讨论区的内容进行审核与管理
  • 管理员需要将指定帖子加精或加助教认证
  • 管理员需要置顶某些重要帖子

评测功能

  • 平台需要对学生用户的提交进行评测并给予反馈
  • 需要较高的评测效率,需要较强的承压能力

Approach 方法

通知

一个可以分类筛选不同通知的版块,学生有查看权限,管理员有查看和修改权限
在这里插入图片描述

指导书

具有章节索引和目录,以及搜索功能。使用markdown编写,前端渲染。

右侧可以添加训练好的编译bot,使用ChatGPT API,提供交流对话的方式学习,同时对教程中不清晰之处进行简要快速的答疑。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作业

一个显眼的选择框来确认提交语言为mips/llvm/pcode,避免学生用户错交。提交界面UI清晰。

页面设置导航栏,可以在介绍、测验、评测间切换查看,类似下图。
在这里插入图片描述
在这里插入图片描述

作业反馈

评测首先应当反映评测分数构成、评分方法与原则、晚交扣分机制、提交的文档也应当将分数进行反馈。

提供开放测试点的编译命令,测试结果,标准答案,学生答案的下载。减少前端评测结果比对显示量,防止浏览器卡死
在这里插入图片描述

竞速作业

提供两个视图:

  • 第一个是所有用户最新提交排名,用于和其他人进行逐case对比(不给出具体testfile的rank, 只提供排序)
    在这里插入图片描述

  • 第二个显示该用户近5次提交testfile记录,全部的提供下载为csv文件(由于需要看对比,学生需要设置自己每次提交的名称)
    在这里插入图片描述

讨论区

学生端管理端看到的一样,权限不同。

支持讨论区加精、发帖次数统计、看到往届讨论区、置顶讨论区(参考oo),支持讨论区分类、搜索功能
在这里插入图片描述

成绩分析

普通用户可以查看自己历次成绩并统计绘图。

管理员用户可以统计所有/指定学生成绩,并导出为csv等常见表格格式。管理员用户还应当可以查看题目通过率、测试点通过率等。
在这里插入图片描述

评测及管理

我们希望通过Go实现高并发,并使用docker容器保证安全性,最终实现一个分布式可扩容的评测机。

Benefit 好处

管理员用户

  • 管理:对各部分的管理(通知、讨论区、作业题目等)更合直觉、更容易统计使用不同开发语言、使用mips/llvm/pcode的人数比例
  • 统计:学生成绩、测试通过率可以绘图直观统计
  • 迭代:提供了迭代学生届数的功能,保存了多届学生的讨论区及成绩数据

学生用户

  • 通知:通知形式更加直观且便于分类查看
  • 指导书:比起pdf指导书,网页版提供了更好的检索定位功能;提供了GPT对话交流,指导书阅读更方便。
  • 讨论区:使用md编辑器,比富文本编辑器更加方便
  • 作业:deadline更明显、模块划分更清晰、可以直接从作业进入对应的讨论区更方便讨论,更容易选择自己的使用语言及中间代码
  • 评测:评测速度更快
  • 评测结果反馈:评测结果展示更加合理清晰

Competitors 竞争

唯一竞品就是编译judge平台,在上述需求场景下都有较大问题,会被我们的平台爆杀。以下以对比的形式给出judge平台和本平台在学生用户需求场景下的实现对比。

接收通知

  • judge
    无通知功能,依靠微信课程群通知

  • 本平台
    消息可以按tag筛选、折叠、分页
    在这里插入图片描述

查看指导书

  • judge
    指导书只能以pdf方式下载,下载位置很刁钻。同时pdf不易定位检索。
    在这里插入图片描述

  • 本平台
    指导书提供pdf下载与网页浏览两种方式,网页浏览可以检索定位,同时有GPT辅助学习、快速答疑。
    在这里插入图片描述
    在这里插入图片描述

查看和提交作业

  • judge
    题面和评测信息混杂,题干要求不集中,阅读体验差
    在这里插入图片描述

  • 本平台
    作业题面、测验、评测分栏展示,功能解耦
    在这里插入图片描述

查看评测反馈

  • judge
    评测界面反馈较长、不直观,体验较差
    在这里插入图片描述

  • 本平台
    清晰看到评测得分、时间、各个评测点的正确性,点开还能进一步和正确结果进行比较。
    在这里插入图片描述
    在这里插入图片描述

性能排序

  • judge
    besttestfile无意义
    在这里插入图片描述

  • 本平台
    删除judge无意义的besttestfilex、新增了个人历次提交的性能变化视图
    在这里插入图片描述

讨论区

  • judge
    没有检索分类分页功能、没有加精认证等功能。UI布局不好看。发帖只能使用富文本编辑器。
    其优点在于可以查看到往年的讨论帖。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 本平台
    可以从每次作业或者左侧sidebar进入讨论区,讨论区提供不同tag供筛选,助教可以加精认证。
    在这里插入图片描述
    在这里插入图片描述

评测功能

  • judge
    现有的judge平台存在以下问题:
    - 服务器资源,由于北航有不少课程都选择judge平台,所以在进行大量评测的时候可能会导致平台崩溃,例如我们大一数据结构考试的时候遇到大规模查重,导致课程平台崩溃,2019级学生进行期中考试的时候有过一次提交需要等大量时间的情况
    - llvm版本不对。大部分同学在完成llvm生成时使用的都是llvm10以上的版本,而评测机的版本似乎是llvm6.0,导致有很多本地能过但是交上去评测不过的问题
    - 评测文件名的问题。现有的评测机批量上传测试点的时候只能从1开始,且中间不能有隔断的测试点
    - java和cpp的识别有问题,当cpp工程多压缩了一层文件夹之后会被识别错误
  • 本平台
    我们在解决以上问题的基础上,通过Go实现高并发进行提速,并使用docker容器保证安全性,最终实现一个分布式可扩容的评测机。

Delivery

可以通过部分20级学生体验功能进行对比、编译课程老师体验功能、开放部分21级学生提前感受课程平台等。预期规模可以达到100-200人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47808.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软开放 Bing Chat AI 访问

微软开放 Bing Chat 访问,用户不再需要等待。用户所需要是使用自己的微软账号登陆 Bing 或 Edge 浏览器。该功能目前不对中国大陆地区用户开放。微软还在升级 Bing Chat,将加入对插件的支持。微软是在从 2 月初开始提供 Bing Chat 的非公开预览&#xff…

微信小程序集成腾讯云即时通信IM

这里写自定义目录标题 腾讯云即时通信IM新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

常见即时通讯:网易IM 、腾讯IM、环信IM、融云IM、leancloud IM介绍

功能对比 功能网易云信环信融云leancloud云通信基础聊天支持支持支持支持支持群组聊天最多2000人最多2000人最多3000人最多500人最多10000聊天室支持最多5000人支持建议最多5000人支持图片消息支持支持支持支持支持视频消息支持支持不支持支持支持微视频音频消息支持支持支持支…

大数据-数仓-数据采集-业务数据(一):全量同步(DataX、Sqoop) v.s. 增量同步(Maxwell、Canal)

一、全量同步策略 解释:每日全量,就是每天都将业务数据库中的全部数据同步一份到数据仓库,是保证两侧数据同步的最简单的方式适用:表数据量不大,且每天即会有新数据插入,也会有旧的数据修改例如&#xff1…

国际短信平台短信路由搭建后台软件定制-移讯云短信系统

国际短信平台短信路由搭建后台软件定制-移讯云短信系统 什么是短信路由 短信路由是指当短信发送时,不通的关键字内容,不同的地区进行线路分流。实现压缩成本速度和质量保证。 新的客户端客户登录后发送短信时可自行选择用哪个通道来进行发送短信。每个通…

2023爱分析·云原生智能运维中台市场厂商评估报告:秒云(miaoyun.io)

目录 1. 研究范围定义 2. 云原生智能运维中台市场定义 3. 厂商评估:秒云(miaoyun.io) 4. 入选证书 1. 研究范围定义 数字化时代,应用成为企业开展各项业务的落脚点。随着业务的快速发展,应用的功能迭代变得越…

腾讯云即时通信 IM 服务端 SDK for PHP

安装 $ composer require hedeqiang/ten-im -vvv 配置 使用本扩展前需要登录 即时通信 IM 控制台 创建应用&#xff0c;配置管理员、获取 app_id、Key 等关键信息 更多请查看并熟读 即时通信 IM 服务端API REST API 接口列表 使用 获取用户在线状态 <?phprequire __DIR__ .…

Uni-app 小程序使用腾讯云IM实时通讯

// IM 小程序 SDK npm install tim-wx-sdk --save // 发送图片、文件等消息需要的 COS SDK 如果不需要发送图片等文件不需要下载 在APP.vue中配置好你的腾讯云配置 我测试了一下如果直接引入&#xff1a;import TIM from tim-wx-sdk的话在添加好友的地方会有错误 所以我…

产品更新 | 数据物流引擎 DTExpress 新增算力市场及跨云传输

1 月初&#xff0c;星汉未来开放内测了海量数据快速低成本传输 SaaS 产品 DTExpress&#xff0c;受到了业界广泛关注。截至目前&#xff0c;作为星汉未来云原生基础引擎系列的数据物流引擎 DTExpress 内测申请仍在持续开放中&#xff0c;并新增阿里云和华为云跨云异地传输功能以…

Intel 助力移动云百万 IOPS 云硬盘,打造极速云存储体验

前言概述 物联网、人工智能、5G 等技术带动数据爆发式增长&#xff0c;企业超大规模数据的存储与治理成本与日俱增&#xff0c;且随着数据库、实时日志分析等关键业务上云&#xff0c;企业对存储系统的性能要求也随之提升&#xff0c;存储系统面临着管理海量数据和提供极致性能…

4G DTU设备数据上传阿里云微信小程序获取阿里云设备数据

以下文章从六个部分进行展开&#xff0c;分别为&#xff1a; 一、测试使用材料 二、设备接线 三、程序下载 四、阿里云物联网平台创建产品、设备 五、温湿度上传阿里云物联网平台 六、微信小程序获取阿里云物联网平台设备数据 一、测试使用材料 二、设备接线 2.1放置物联卡 在…

腾讯云-即时通讯 IM

https://console.cloud.tencent.com/im-detail 基本配置->账号管理 &#xff08;请进入帐号管理&#xff09;

近百万条数据、3 秒查询,TDengine 助力北微云平台的搭建

作者&#xff1a;朱永杰 小 T 导读&#xff1a;作为一家聚焦惯性传感技术领域的企业&#xff0c;北微传感致力于让物联世界更美好&#xff0c;其研发的数百种型号的倾角传感器、电子罗盘、航姿参考系统、惯性测量单元、光纤陀螺仪、组合导航等产品&#xff0c;在交通运输、工程…

2021最新 腾讯通信云服务端使用心得,腾讯云IM

腾讯通信云服务端使用心得 1.腾讯通信服务入口并创建应用 方便使用保留url地址 &#xff1a; https://cloud.tencent.com/product/im 注册账号腾讯云账号->通过审核->创建应用 * 创建应用完成后点击应用配置&#xff0c;帐号体系集成&#xff08;配置完毕之后就可以进…

英特尔助力腾讯云深度优化云硬盘CBS 产品,打造极速云存储体验

前言概述 在更多企业核心系统“云化”的今天&#xff0c;云存储系统作为业务数据的重要载体&#xff0c;其性能表现正 受到越来越多的关注。作为全球领先的云服务提供商之一&#xff0c;腾讯云通过先进的云硬盘 CBS (Cloud Block Storage) 产品为众多行业用户提供高效、可靠…

大众点评Cat实时应用监控平台服务端部署

关于cat服务端部署的相关文档地址如下&#xff1a; https://github.com/dianping/cat/wiki/readme_server 话不多说&#xff0c;接下来就按照官方文档流程走一遍&#xff0c;我这里是使用的Windows系统进行部署。 第一步确认环境&#xff1a; 我这边使用的是如下环境&#xff…

腾讯云数据库SaaS致力于构建数据库分布式云,为更多更广的用户提供服务

大数据时代&#xff0c;数据库 SaaS 是企业实现降本增效和业务创新的重要抓手。在腾讯全球数字生态大会数据库 SaaS 专场上&#xff0c;腾讯云发布了多项数据库 SaaS 产品能力升级&#xff0c;并重点分享了其在上云、日常运维、数据库迁移等多方面的实践应用&#xff0c;为广大…

腾讯云的云直播和即时通讯IM开发(全网最详细之一)

如果你也在面临做直播的 业务的时候迷茫的时候&#xff0c;来看看吧。 腾讯云–云直播 最近这几个项目也是在做直播相关的App开发&#xff0c;之前刚做的时候&#xff0c;自己也经历很多坑。 慢慢的爬过这些坑&#xff0c;做了几款直播软件以后&#xff0c;也算有了心得。更加…

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台

深入理解SeaTunnel&#xff1a;易用、高性能、支持实时流式和离线批处理的海量数据集成平台 一、认识SeaTunnel二、SeaTunnel 系统架构、工作流程与特性三、SeaTunnel工作架构四、部署SeaTunnel1.安装Java2.下载SeaTunnel3.安装连接器 五、快速启动作业1.添加作业配置文件以定义…

Tapdata Cloud 场景通关系列:将数据导入阿里云 Tablestore,获得毫秒级在线查询和检索能力

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata Cloud 自去年发布云版公测以来&#xff0c;吸引了近万名用户的注册使用。应社区用户上生产系统的要求&#xff0c;Tapdata Cloud 3.0 将正式推出商业版服务&#xff0c;提供对生产系统的 SLA 支撑。Tapdata 目前专注在实时数…