這屆清華新生太難了吧!C++作業(yè)難到上熱搜,特獎都說做不了,大廠獵頭已密切關(guān)注
十三 魚羊 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號 QbitAI
本科大一,剛學(xué)了16周C++,能做個(gè)什么項(xiàng)目?
清華大學(xué)自動化系2020年的大一C++大作業(yè),是這樣要求的:
開發(fā)一款集合雨課堂和網(wǎng)絡(luò)會議優(yōu)點(diǎn)于一身的網(wǎng)絡(luò)教學(xué)軟件。
是的,你沒看錯(cuò),不是學(xué)生信息管理系統(tǒng),告別數(shù)據(jù)庫的增刪查改,而是——
比清華大學(xué)在疫情期間使用的直播教學(xué)工具,雨課堂,功能更強(qiáng)大的在線教學(xué)系統(tǒng),雷課堂。
消息一出,瞬間成為熱議焦點(diǎn),不僅清華同學(xué)們的朋友圈被刷屏,還火到了知乎「熱榜」第一!
驚掉下巴的我,不禁想起了一個(gè)段子:
已知 1+1=2,請求地球的半徑。
嗯…不愧是清華。
動手試試做個(gè)視頻會議軟件吧!
所以,雷課堂到底是怎樣一個(gè)大作業(yè)?
不妨一起來看看具體要求(部分簡寫):
1. 基本功能要求(*代表教師用戶具有的功能)
1.1 用戶登錄:涉及對用戶名密碼的存儲,以及數(shù)據(jù)庫增刪改。
1.2 語音設(shè)備選擇和切換:用戶進(jìn)入課堂,可自主選擇語音輸入和播放設(shè)備;并可在隨時(shí)切換。
1.3 共享屏幕*:教師可共享整個(gè)屏幕或某個(gè)窗口內(nèi)容給全體同學(xué);可隨時(shí)切換共享源、停止或再次開始共享屏幕。
1.4 語音直播*:實(shí)時(shí)音頻流傳輸。
1.5 隨機(jī)語音提問*:教師可一鍵隨機(jī)選擇一名同學(xué),被選中的同學(xué)的麥克風(fēng)將被自動打開,并發(fā)送給教師和其余全體同學(xué)。
1.6 在線發(fā)題*:可動態(tài)編輯、發(fā)送選擇題,實(shí)時(shí)統(tǒng)計(jì)選擇人數(shù)、名單、作答耗時(shí)。教師可隨時(shí)中斷發(fā)題,但仍需統(tǒng)計(jì)上述信息。
1.7 在線答題:學(xué)生收到試題時(shí)彈出置頂窗口,并計(jì)時(shí)。提交答案或教師中斷發(fā)題,才關(guān)閉窗口,并將答案和耗時(shí)反饋給教師。
1.8 學(xué)生簽到:進(jìn)入課堂時(shí)自動簽到。教師可收到合適學(xué)生簽到和推出課堂的信息。
1.9 注意力:“雷課堂軟件出于焦點(diǎn)窗口狀態(tài)的時(shí)長”,與學(xué)生在線時(shí)長的百分比。
1.10 上課/下課*
1.11 進(jìn)入課堂/退出課堂
1.12 麥克風(fēng)管制
2. 系統(tǒng)設(shè)計(jì)要求
2.1 除程序主函數(shù)和必要的友元函數(shù)外,不允許出現(xiàn)任何一個(gè)非類成員函數(shù)。
2.2 任何不改變對象狀態(tài)(不改寫自身對象數(shù)據(jù)成員值)的成員函數(shù)均需顯示標(biāo)注const。
2.3 全部類分為三大類:界面類、業(yè)務(wù)流程類、核心類。僅有界面類可以用開發(fā)環(huán)境自動生成代碼框架。僅有業(yè)務(wù)流程類可以包含開發(fā)環(huán)境提供類的指針。核心類只允許使用 C++11 支持的標(biāo)準(zhǔn)語法、STL、操作系統(tǒng)API。(此條為強(qiáng)烈建議,未實(shí)現(xiàn)界面類和核心類分離將嚴(yán)重影響成績)
2.4 全部語音、屏幕共享、網(wǎng)絡(luò)傳輸?shù)刃枋褂貌僮飨到y(tǒng)API的相關(guān)操作,均需封裝成類代碼,再被其他核心類使用。不允許其他核心類直接調(diào)用操作系統(tǒng)API。
2.5 除界面類外,任何第三方類庫的使用,只能處于源代碼級別,不可以來 lib/so/dylib文件(靜態(tài)庫也不可以)和 DLL 文件。
(完整版請戳文末鏈接)
看完所有要求,大家都被如此龐大的工作量驚呆了。
整整 3 頁需求,涉及語音獲取和網(wǎng)絡(luò)傳輸、視頻音頻處理、WinSocket 網(wǎng)絡(luò)編程、數(shù)據(jù)庫……
這要是甲方爸爸的需求列表,那寫的真是清晰無比,讓人不禁想點(diǎn)個(gè)贊。但作為初學(xué)者的大作業(yè)要求……
清華特獎直言:我也做不出
面對如此作業(yè),網(wǎng)友們也不淡定了,各路選手紛紛出面置評。
(PS:以下內(nèi)容均授權(quán)轉(zhuǎn)載)
首先登場的是清華大學(xué)核科學(xué)與技術(shù)碩士在讀生,表示其他院系也不能落后。
不愧是你清課堂,輕易做到了騰訊程序員做不到的事情。
其他院系也不能落后??!
工物系大作業(yè): 組裝一個(gè)托卡馬克裝置,要求實(shí)現(xiàn)氘氚聚變點(diǎn)火,并約束等離子體100秒。
航院大作業(yè): 設(shè)計(jì)一臺隱身戰(zhàn)機(jī),要求性能不輸于美國的F22。
微電子大作業(yè): 制造一顆CPU,性能超過線程撕裂者3990X。
電子系大作業(yè): 設(shè)計(jì)一款5G基帶,性能超過高通的X55外掛基帶(加分項(xiàng):將5G基帶集成進(jìn)手機(jī)Soc)。
生物大作業(yè): 研發(fā)新冠病毒疫苗,16周提交臨床實(shí)驗(yàn)數(shù)據(jù)。
數(shù)學(xué)系大作業(yè):證明哥德巴赫猜想,16周答辯。
物理系大作業(yè): 統(tǒng)一四種基本作用力。
能動系大作業(yè):設(shè)計(jì)制作H級燃?xì)廨啓C(jī)。
新聞學(xué)院大作業(yè):拍一部院線電影,要求豆瓣評分9.0以上,16周拿龍標(biāo),暑期黃金檔準(zhǔn)時(shí)上映。
生醫(yī)工程大作業(yè):實(shí)現(xiàn)腦機(jī)接口,可以輸出文字(加分項(xiàng):輸出語音)
這位王同學(xué),你太優(yōu)秀了,坐下!
清華特獎選手也登場,出面表示:這個(gè)我也做不出來。
我,大四,軟院,清華特獎,做不出這個(gè)大作業(yè)。
用C++寫socket編程,是我在大三的時(shí)候?qū)慒TP服務(wù)器用到的。
用C++寫web應(yīng)用,我不會。用Django+vue還勉強(qiáng)可以,是我在大三做軟工競賽平臺的時(shí)候用到的。
用C++處理圖像,得用OpenCV嗎?
如果自動化大一就達(dá)到了我大四的水平,我無話可說。長江后浪推前浪,00后是真的厲害。
救救孩子吧,我記得往年應(yīng)該只是個(gè)學(xué)生信息管理系統(tǒng)?
特獎這事一般不拿出來說,都是過去的事了。但是,為了拯救九字班,該派上用場的時(shí)候還是能拿出來用一用……
接下來登場的是留學(xué)生選手,帝國理工學(xué)院巖土工程學(xué)在讀博士生,一波回憶殺贏得了不少贊同。
清華老師特別喜歡干的一件事情就是搞一根很長的尺子,然后測測同學(xué)們水有多深。
他在布置作業(yè)的時(shí)候就知道同學(xué)們完成不了。但是有的人完成了1%,有的人完成了5%,他想看看“天才”會不會出現(xiàn)。
但是對于同學(xué)們來說,這是完全不同的一件事:大作業(yè)需要學(xué)生不斷地去博弈。咱們先不論大作業(yè)內(nèi)容是什么,清華學(xué)生在做之前,要先折騰清楚以下幾件事,并做出選擇:
1、要不要自己從頭開始認(rèn)真做,還是直接網(wǎng)上抄現(xiàn)有代碼?如果自己認(rèn)真做,然后做個(gè)漏洞百出的半成品拿了低分,別人抄現(xiàn)有代碼拿了高分怎么辦?
2、老師和助教們會認(rèn)真批改代碼嗎?還是僅僅看個(gè)框架?然后他們突然宣布:誒呀大作業(yè)么就是讓你們體驗(yàn)一下,重在參與,你們也太認(rèn)真了。最后張三的大作業(yè)糊弄了一下拿了90分,我花了好幾個(gè)禮拜認(rèn)真做拿了91分,這公平嗎?!
3、我花20小時(shí)做出來的東西很可能跟張三花2小時(shí)做出來的東西沒什么區(qū)別,那我努力有個(gè)屁用?
4、我都折騰這個(gè)大作業(yè)去了,那么我其他科目的學(xué)習(xí)時(shí)間要怎么安排?!
雖然專業(yè)不同,但是土木系也有類似的情況。一個(gè)三學(xué)分的混凝土結(jié)構(gòu)設(shè)計(jì)課,當(dāng)時(shí)大作業(yè)是要求我們設(shè)計(jì)一棟混凝土大樓出來(沒看錯(cuò),一個(gè)本科生搞一棟大樓出來)。這期間最消耗時(shí)間的就是樓層荷載的驗(yàn)算,需要對照超級冗雜的規(guī)范逐步查驗(yàn)。
我當(dāng)時(shí)埋頭苦干,花了大量精力反復(fù)驗(yàn)算,后來還遲交了,拿了低分。一問同學(xué)們,他們說他們的荷載都是編的,反正老師也不會查。
后來我去質(zhì)問老師,老師說這個(gè)課本來就是讓你們體驗(yàn)一下工程的設(shè)計(jì)過程,結(jié)果倒不是主要的……
尼瑪你怎么不早說?!故意的吧。
清華大學(xué)副教授劉知遠(yuǎn)也回復(fù)了這個(gè)問題,建議合理設(shè)計(jì)發(fā)展目標(biāo),不盲目攀比內(nèi)卷。
話說這學(xué)期我們OOP為了避免大一同學(xué)就內(nèi)卷、匹配2學(xué)分工作量,剛把大作業(yè)給砍掉了。
前年是開放選題的OOP大作業(yè),結(jié)果很多同學(xué)爭做酷炫界面、網(wǎng)絡(luò)通訊等模塊,脫離了OOP課程的學(xué)習(xí)目標(biāo)。所以,去年限制了大作業(yè)選題,設(shè)置了Bonus,本意是同學(xué)如果覺得考試不理想,可以通過做Bonus補(bǔ)償分?jǐn)?shù),結(jié)果是幾乎所有同學(xué)把所有Bonus都做了,讓為師嘆為觀止。
作為任課老師,我也是花了兩年時(shí)間才揣摩到同學(xué)心理,可以說,咱們同學(xué)實(shí)在太拼,為了多得幾分什么事都干得出!為了讓OOP回歸2學(xué)分的工作量,今年幾位合開老師和助教商量后就把大作業(yè)砍了,加強(qiáng)了日常作業(yè)進(jìn)行規(guī)定動作練習(xí),還是希望同學(xué)能夠回歸OOP課程本來的學(xué)習(xí)目標(biāo)、全面發(fā)展為好。
最后還是建議合理設(shè)計(jì)發(fā)展目標(biāo),不盲目攀比內(nèi)卷,從自己做起,從現(xiàn)在做起吧。
當(dāng)然,還有選手做出了溫馨提示:
同學(xué)們,現(xiàn)在退課還沒結(jié)束呢!
補(bǔ)充:大類分流也還沒結(jié)束呢!
布置作業(yè)的老師現(xiàn)身說法
輿論熱議之下,任課教師專門給同學(xué)們進(jìn)行了大作業(yè)講解。
清華信息科學(xué)技術(shù)學(xué)院本科生、知乎答主孫恒詳細(xì)分析了“雷課堂”大作業(yè)每一項(xiàng)要求的難點(diǎn)之后,綜合評價(jià)說:
實(shí)際上對比一下貴系軟工大作業(yè)的話,不難發(fā)現(xiàn)這個(gè)需求即使放在軟工里也是非常艱難的,況且軟工是一個(gè)貴系的、大三的、多人組隊(duì)的、可以任意調(diào)庫的大作業(yè)。
懷著疑問,他全程跟了一下大作業(yè)講解這堂課,并分享了答疑內(nèi)容。(原文鏈接見文末,未經(jīng)原作者授權(quán)不得轉(zhuǎn)載)
根據(jù)任課老師的解釋,作業(yè)的重點(diǎn)不在于實(shí)現(xiàn)功能,考查的重點(diǎn)是對類的設(shè)計(jì)。
并且,在老師的規(guī)劃里,這個(gè)作業(yè)占時(shí)在50~75小時(shí)。
但對此,孫恒等同學(xué)表示驚訝:
我們驚訝的是老師竟然認(rèn)為這個(gè)任務(wù)只需要 75 小時(shí)就足以完成;對于很多自九同學(xué)來說,他們驚訝的是 75 小時(shí)意味著剩下的日子里竟然每天都要用兩小時(shí)花在大作業(yè)上。
根據(jù)知乎答主王聿中,清華自動化系C++任課老師,針對如此熱議,給出了最新回復(fù):
△圖源:知乎答主“王聿中”
嗯,確實(shí)比清華學(xué)生作業(yè)更難的——是合理地給清華學(xué)生布置作業(yè)。
不過對于這個(gè)作業(yè),我們也悄悄問了國內(nèi)大廠的朋友,已經(jīng)涉足視頻會議的他們表示,不愿意對這個(gè)作業(yè)難度給出評價(jià)。
但是!如果這份作業(yè)做得好,他們那里絕對高薪以待——實(shí)習(xí)也行,一直等到你畢業(yè)。
真是作業(yè)做得好,offer不用愁。
One More Thing
最后,這次清華課堂大作業(yè)的討論之下,也有更多人回(tu)憶(cao)起遭遇過的令人頭大的大作業(yè)。
如果有些事你難以忘懷……
走過路過,歡迎留言區(qū)相互分享一下,搞不好難中更有難中手,不開心的經(jīng)歷,分享出來讓大家開心開心吧(誤)~
就醬,評論區(qū)見。
參考資料
知乎話題:
https://www.zhihu.com/question/389457315?from=timeline&isappinstalled=0&s_r=1&utm_medium=social&utm_oi=38561403371520&utm_source=wechat_session&s_s_i=j5RUy%2Fm7KU1JmlZgvw1Y2Gj1Uwut7xVAD2MnapkQa%2Fo%3D
“王偉”回答:
https://www.zhihu.com/question/389457315/answer/1169115892
“游凱超”回答:
https://www.zhihu.com/question/389457315/answer/1169070140
“鼎天立地”回答:
https://www.zhihu.com/question/389457315/answer/1169925324
“孫恒”回答:
https://www.zhihu.com/question/389457315/answer/1169611271
“zibuyu9”回答:
https://www.zhihu.com/question/389457315/answer/1169170194
“魚昆”回答:
https://www.zhihu.com/question/389457315/answer/1169080407
— 完 —