写点什么

用 C++ 手撸雨课堂,清华自动化系大一作业引热议

  • 2020-04-22
  • 本文字数:1480 字

    阅读完需:约 5 分钟

用C++手撸雨课堂,清华自动化系大一作业引热议

事件回溯

近日,知乎上一篇名为《如何看待清华大学自动化系 2020 年大一 c++大作业是写一个功能更强大的雨课堂(雷课堂)》的帖子引来了诸多关注和讨论:


https://www.zhihu.com/question/389457315


注:雨课堂是学堂在线与清华大学在线教育办公室共同研发的智慧教学工具,目的是全面提升课堂教学体验,让师生互动更多、教学更为便捷。教师可以将带有 MOOC 视频、习题、语音的课前预习课件推送到学生手机,师生沟通及时反馈;课堂上实时答题、弹幕互动。


帖文中披露了清华大学自动化系 2020 年大一 C++作业要求的 PDF 文章,从 PDF 中可以看出,之所以会布置这样一份作业,是因为疫情期间学校推延了开学日期,学校采用了以“雨课堂”为主,腾讯会议和 Zoom 等网络会议软件为辅的线上教学模式。在使用这些软件时发现,软件虽然可以实现 PPT 展示、在线答题、随机点名等功能,但却缺乏教学信息的统计功能。在这学期 C++课程开始前的系统测试中,有同学建议自主开发一款集合雨课堂和网络会议优点于一体的网络教学软件任课老师和助教经过多番讨论后,决定采纳这一想法,于是便布置了题为“雷课堂 Thunder Class)的作业安排。


没想到,这份作业安排被曝光之后,引发了各界人士的高度关注,并纷纷表示:实现难度太高了。

实现难度

那么,这个作业到底有多难呢?有人在回复里用了这样一张图来直观地说明:



玩笑归玩笑,在认真看过这一项作业的要求后,很多网友表示:这确实不是大一学生能做到的。


先从功能实现上来说,作业的要求是这样的:


首先要有用户登录功能,要求用户名密码登录,三次密码错误自动退出,账号可根据教师/学生不同身份进行切换,且必须有一个管理员账户,可用于教师及学生帐号的增删改——这一功能似乎没什么异议,毕竟大部分系统都有这样的要求,但是接下来的一些功能恐怕真的不是一般学生能做到的。


除了基础的登录功能外,作业还要求系统实现:语音设备的切换功能、共享屏幕功能、语音直播功能、随机语音提问、在线发题/答题、签到、注意力监控(软件处于焦点窗口的时长与学生在线时长的百分比)、麦克风管制


不知道读者中是否有大神对于这些功能的实现表示不屑,但是在此话题下,各路答主、包括认证显示为清华本校生的答主都表示:大一学生做这个作业,真的是有些过于困难了。抛开完成作业所需的时长不说(有人预计约 200 小时以上),实现上述各项功能所需的技术恐怕也并非大一学生能接触到的。


另外,除了常规的代码规范要求以外,作业还要求:不可使用任何非开源的第三方类库



这一要求也引发了不小的争议,有网友说:本身功能实现就够困难了,还不允许使用库,这就是让徒手造轮子啊?

各方反应

即便是对于清华大学这样门槛很高的院校的大一新生来说,这种作业的难度也十分惊人。此事一出,网友纷纷评论表示:


能遇到需求如此明确的甲方,也是人间值得了,啥也别多说了,我就想问问谁能救救孩子?

现在有理由怀疑纽约原油价格暴跌是清华某个系的作业要求了;

能完成这种大作业的“00 后”真是后生可畏,不说了,我去写代码了,我怕被拍在沙滩上;


但在帖子的回复中,也有网友提供了已经石锤的该课程任课老师的最新回复:


前面肯定不是坦途,但绝对不是悬崖。题目设计初衷上,重点本来就不再数据库、语音、截屏、网络通信,因为 C++就是一门面向对象的语言。


甚至一位从清华大学毕业多年,获得硕士学位的校友表示:


将此内容布置为这门课的大作业,已经达到了教学事故的程度,因此,恳请校领导督促教师整改,并处理责任人。这不是一个普通大一学生在一个学期内能够完成的课程作业。我认为,如果同样的需求交给我公司的同事,需要 3 至 5 人团队几个月的时间才可能做到。


2020-04-22 12:438414

评论 3 条评论

发布
用户头像
虽然项目比较有争议,但是写文章还是中肯一点的好,”不可使用任何非开源的第三方类库“,跟”还不允许使用库“,这能是一回事么?实际上这个作业里面绝大多数功能都不需要学生自己去实现,有各种开源项目提供了类似的功能可以集成,这也是老师所推荐和要求的做法。
2020-05-17 05:26
回复
用户头像
看来此作业已获得A轮风险投资
2020-04-26 09:23
回复
用户头像
原来咱们大学的水平都那么高了,很是欣慰
2020-04-22 12:58
回复
没有更多了
发现更多内容

文件的使用详解

lovevivi

c 文件 10月月更

SpringCloud-03 Netflix Ribbon学习笔记

游坦之

10月月更

4:数据操作-MySQL

Yeats_Liao

数据库 后端 10月月更

8:单表查询-MySQL

Yeats_Liao

数据库 后端 10月月更

6:列属性完整性-MySQL

Yeats_Liao

数据库 后端 10月月更

基于OneNet平台设计的多节点温度采集系统-有人云4G模块+STM32

DS小龙哥

10月月更

你是如何使用React高阶组件的?

beifeng1996

React

【c++图论例题学习】【口袋的天空】【部落划分】

贤鱼很忙

c++ 图论 10月月更

ARM64架构下,OpenJDK的官方Docker镜像为何没有8版本?

程序员欣宸

Java Docker jdk 10月月更

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

非父子组件之间的通信方式与mitt库🔥

渔戈

前端 Vue3 10月月更

你真的了解过插槽Slot吗🔥

渔戈

前端 Vue3 10月月更

鸿蒙开发实例 | ArkUI JS飞机大战游戏开发

TiAmo

华为 鸿蒙 10月月更

力扣刷题训练

lovevivi

c 数据结构 10月月更

最近美团前端面试题目整理

loveX001

JavaScript

【web 开发基础】PHP 的流程控制之双向条件分支结构 -PHP 快速入门 (13)

迷彩

10月月更 web开发基础 PHP基础 分支结构 双向条件分支结构

7:数据库设计思维-MySQL

Yeats_Liao

数据库 后端 10月月更

final、finally、 finalize 有什么不同?

共饮一杯无

Java final 10月月更

OKR之剑·理念篇04:让OKR轻松上阵

vivo互联网技术

团队管理 OKR

【c++图论例题学习】洛谷p1991 无线通讯网-思路详解

贤鱼很忙

c++ 图论 10月月更

SpringCloud-02 Eureka学习笔记

游坦之

10月月更

5:数据类型-MySQL

Yeats_Liao

数据库 后端 10月月更

动态组件、异步组件以及生命周期和v-model🔥

渔戈

前端 Vue3 10月月更

数据湖(十一):Iceberg表数据组织与查询

Lansonli

数据湖 10月月更

【c++算法篇】--图论之克鲁斯卡尔

贤鱼很忙

c++ 图论 10月月更 克鲁斯卡尔

Hash Map源码分析(八)

知识浅谈

hashmap 10月月更

前端react面试题(边面边更)

beifeng1996

React

从这两道题重新理解,JS的this、作用域、闭包、对象

loveX001

JavaScript

面试官:谈谈你知道的DOM常见的操作

CoderBin

JavaScript 面试 前端 DOM 10月月更

手写一个Redux,深入理解其原理-面试进阶

beifeng1996

React

React源码分析8-状态更新的优先级机制

goClient1992

React

用C++手撸雨课堂,清华自动化系大一作业引热议_文化 & 方法_李冬梅_InfoQ精选文章