天风天瑞两只基金已完成募资设立,总规模达2.5亿元,
06-18
你以为上了大学就再也不用为作业发愁了吗?并不真地。
近日,有知乎网友提问:“你觉得清华大学自动化系新生C++作业,就是写一个更强大的雨课堂(雷课堂)怎么样?”网上讨论很热烈。
雷锋网的编辑也看了这个作业,表示连题都看不懂,哭了……为什么要设计这样的作业呢?首先我们先来了解一下本次工作设计的整体背景。
受疫情影响,在线教育成为这段时间学生和家长的常态。
教育部数据显示,截至4月初,已有11.8亿学生参加在线课程,1万名教师参与在线教学。
清华大学春季学期共多门课程实施了在线教学,以“雨课堂”为主,腾讯会议、ZOOM等在线会议软件为辅。
“雨课堂”利用Office插件实现一对多PPT演示、在线答疑、弹幕、随机点名等互动教学,还可以总结关键词、听懂/听懂、签到等、在线时间、集中程度、答疑表现等团体和个人统计数据。
但网络会议软件在多方语音交互、快速屏幕/窗口共享切换等方面具有突出特点,但缺乏教学信息统计功能。
因此,在本学期C++课程开课前的系统测试中,有同学建议自主开发一款结合了雨课堂和在线会议优点的在线教学软件。
经过讨论,清华大学采用“雷电课堂”为题,设计了本学期的主要作业。
堪称史上最难作业:清华大学自动化系年度C++作业。
那么,这次作业的主要内容是什么?作业主要分为四个部分,即基本功能需求;系统设计要求;代码和发布要求;和报告要求。
雷锋网截取了部分作业要求。
我们来看看为什么这个作业是史上最难的作业。
1、基本功能要求(*代表教师用户功能) 1.1 用户登录:根据用户名和密码登录软件。
如果密码输入错误3次,雷课堂软件将自动退出。
根据账户类型(教师/学生)自动切换功能。
它必须包含一个管理员帐户,帐户名为 Admin,密码为 Admin。
该账户只能用于管理教师和学生账户的添加、删除和修改。
(添加、删除、更改用户和密码后,无需考虑如何通知账户持有者,毕竟我们有微信) 1.2 语音设备选择和切换:教师开始上课前/学生入班前,应能够独立选择语音输入和播放设备;并且可以在课程中随时切换语音设备。
1.3 共享屏幕*:上课时,老师可以将整个屏幕或某个窗口的内容共享给所有学生(包括但不限于PPT、代码编辑器);老师可以随时切换共享源、停止或重新开始共享屏幕。
1.4 实时语音播报*:上课开始时,语音采集将自动启动,并通过网络实时传输给所有连接到班级的学生。
1.5 随机语音问题*:老师可以一键(单击鼠标或单个快捷键)从所有在线学生中随机选择一个。
所选学生的麦克风将自动打开并发送给老师和所有其他学生。
老师可以一键再次结束语音问题。
1.6 在线发题*:教师可以在课堂上多次动态编辑单选题/多选题发送给所有学生,并统计选择每个选项的人数、选择每个选项的学生列表以及实时回答每个学生所花费的时间。

小时。
教师也可以随时停止提问,但仍需要收集上述信息。
1.7 在线答题:当学生收到试题时,会弹出顶部窗口,显示问题和选项,并开始计时。
直到学生提交答案或老师中断提问环节后,窗口才会关闭,答案和所用时间会反馈给老师。
1.8 学生签到:进入班级自动签到。
当学生签到和下课时,教师可以收到信息。
(需记录多次签到和退出) 1.9 注意:上课期间,学生签到后,“雷课堂软件处于焦点窗口状态的时长”与上课时间的百分比学生在线情况将在课程结束时反馈给老师进行记录。
1.10 上课/下课*:上课期间,教师端随时开始接收用户登录请求,根据用户名和密码自动判断是否允许学生端连接。
一旦允许连接,后续的语音、屏幕共享、语音问题和在线解答信息将发送给学生。
当老师下课时,在与学生端断开连接之前,应接收到所有在线学生的注意力数据,然后自动生成所有班级统计信息,以文件的形式存储,并显示在老师端界面。
1.11 进/退课:输入教师的IP地址(或IP和端口号)后,连接教师,实现进教室功能并开始网络数据通信。
如果30秒内无法连接到老师,则会弹出提示。
当主动退出课堂或直接关闭软件时,应将注意力数据发送给老师,然后断开与老师的网络连接。
(不用考虑如何获取老师的IP和端口号,毕竟我们有课程微信群) 1.12 麦克风控制:除非收到老师的语音提问,否则麦克风将始终静音。
2、系统设计要求 2.1 除了程序的主函数(广义的主函数,可以是WinMain或其他)和必要的友元函数(每个友元函数的不可替代性必须在报告和程序中额外说明:为什么必须除了使用友元元素之外),不允许使用非类成员函数。
2.2 任何不改变对象状态(不重写自身对象数据成员的值)的成员函数必须显示注释const。
2.3 所有类分为三大类:界面类(开发环境提供的、与图形界面相关的类)、业务流程类(只有一个,用于与界面耦合)、核心类(所有其他类) 。
只有接口类才能利用开发环境自动生成代码框架。
只有业务流程类可以包含指向开发环境提供的类的指针。
核心类只允许使用C+支持的标准语法、STL和操作系统API。
(这是强烈建议,不实现接口类和核心类的分离会严重影响你的性能) 2.4 所有需要使用操作系统API的语音、屏幕共享、网络传输等相关操作都需要封装成类代码,然后由其他核心类使用。
类使用。
其他核心类不允许直接调用操作系统API。
2.5 除接口类外,任何第三方类库都只能在源代码级别使用,不能依赖lib/so/dylib文件(静态库也不允许)和DLL文件。
所有第三方图书馆必须在报告和程序中包含来源和版权信息。
3. 代码及发布要求 3.1 通过开发环境自动生成的接口类代码,在声明类时必须对所有数据成员和成员函数进行注解,并且对函数体内必要的步骤进行注解。
3.2 所有其他类代码的数据成员和成员函数的声明和实现都必须注释,并且必须注释成员函数的必要步骤。
3.3 其他编码标准必须符合学校颁布的编码标准。
3.4 发布的程序必须是可以在Win10/Mac os 10.14操作系统下运行的32位或64位Release版本:不依赖于特定开发环境的依赖库,不依赖于操作系统驱动或功能模块配置,并且只能由软件本身执行。
文件和必要的数据库库文件(如果使用数据库)。
当不可避免地依赖数据库驱动时,应提供自动化安装包:运行安装包会自动安装和配置数据库驱动、安装软件本身的可执行文件以及数据库库文件。
特别是:只要可执行文件和数据库库文件的相对路径保持不变,数据库驱动程序、可执行文件和数据库库文件安装的绝对路径一定不能影响软件的正常运行。
(Mac os 只能用 C++ 编程,不能用 Object-C、Swift 等语言编程。
) 看完雷锋网的作业要求,我只想问:“这个作业可以完成吗?”打开网友的评论后,我发现我不是唯一一个……@ATP合成酶:不只是图像,直播需要实时采集,压缩成H,然后使用RTSP/RTMP推送出去。
光靠直播太难了。
@读书:按照这个发展速度,10年后,人均就有院士了。
@只想改个名字:震惊!清华软件学院高级特等奖获得者的编程水平还不如自动化一年级的学生。
[捂脸][捂脸][捂脸][捂脸]@learnslag不配拥有网名:哈哈哈,救救孩子吧。
@木菜Kina2:还有C++写一个跨平台的图形界面……我无法想象有多难……@一个傻比:建议直接加入BAT!但总的来说,有两点让大家感到困难:第一,工作量巨大,即使是程序员也需要两年的时间才能完成,第二,难度极高。
最后,我想弱弱地抱怨一下,那就是清华大学敢给这个作业,学生也敢接受。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-18
06-18
06-17
最新文章
Android旗舰之王的过去与未来
智能手表不被开发、AR眼镜被推迟,Meta的产品经历了一波三折
为什么Cybertruck是特斯拉史上最难造的车?
更新鸿蒙3后,文杰允许你在车里做PPT了
新起亚K3试驾体验:追求“性价比”,韩系汽车仍不想放弃
阿维塔15登场!汽车配备了增程动力,理想情况下会迎来新的对手吗?
马斯克宣布创建 ChatGPT 竞争对手! OpenAI的CEO给他泼了冷水, GPT-5可能会发生巨大变化
骁龙无处不在,是平台也是生态