國內(nèi)高校計算機教育存在哪些問題?
[導讀]我在逛知乎的時候看到一個問題:隨手寫了個回答,沒想到很多讀者都表示說出了心聲,所以也同步發(fā)到公眾號。以下是原回答我自己是CS科班的,讀者里也有很多各大高校計算機的同學,覆蓋了上交、北郵、南郵、華科、川大、普通一本等等,根據(jù)他們反饋,總結(jié)了以下幾點:上課耽誤學習,不上課考勤扣分,拿...
我在逛知乎的時候看到一個問題:
隨手寫了個回答,沒想到很多讀者都表示說出了心聲,所以也同步發(fā)到公眾號。CS107 在我大學期間,只有一位數(shù)學老師堅持板書,大部分基本就是放 PPT 了事,下面的學生紛紛拿起手機拍照,或者直接下課去拷 PPT,這樣能學到多少呢?img 國內(nèi)是怎么教的?記住 TCP 三次握手、四次揮手、記住 DNS使用 UDP協(xié)議....國內(nèi)大作業(yè)是什么?有些是 Word 寫報告。。。有些是讓你用一下 socket api 寫個網(wǎng)絡程序。。。好吧,其實會用 socket 的也挺不錯的,最關鍵是有些直接讓你寫個爬蟲、HTTP 服務,就算是使用了網(wǎng)絡協(xié)議了。。。這是計算機網(wǎng)絡原理嗎?國外是如何教 操作系統(tǒng)的?比如 MIT 6.828,現(xiàn)在改名了。直接讓你基于一個 xv6 去實現(xiàn)一些模塊,比如文件系統(tǒng)、多線程。國內(nèi)是如何教的?記住進程和線程區(qū)別、記住虛擬內(nèi)存的各種組關聯(lián)....當然也有一些學校會有實驗,比如清華 ucore、哈工大 linux0.11、川大也有引入 nachos這就是為什么美國高校有很強的編碼能力、造輪子的能力,因為他們的CS學生成長環(huán)境就是這樣的。大多數(shù)高校老師升職不靠教學,所以大家都沒把心思放在教學上,做“研究”發(fā)論文,不香么。設計這么多麻煩的實驗不是給自己找麻煩么弄個 PPT、Word 多爽呀這個現(xiàn)象我估計還會一直持續(xù)下去,老實說,跟著學校的路線走,學計算機,大概率畢業(yè)即失業(yè)。給大家列舉一個我做過的國外老師設計的實驗吧:模擬實現(xiàn) TCP 可靠傳輸?shù)?/strong>人家老外老師就是給力,直接做了一個網(wǎng)站,這個網(wǎng)站你可以通過 TCP 連接上去,然后你需要創(chuàng)建幾個節(jié)點,互相發(fā)消息。他們之間的消息都會經(jīng)過老師的網(wǎng)站所以通過網(wǎng)站上是可以控制丟包率的,也能控制節(jié)點的拓撲結(jié)構,要求就是讓你基于這種不可靠的信道,做出可靠數(shù)據(jù)傳輸!這簡直就是翻版 TCP 嘛,超時重傳、ACK、滑動窗口啥的都給我安排上!就是像下面圖中一樣,圓圈就表示你可達的范圍,不同節(jié)點形成各種網(wǎng)絡拓撲,可以調(diào)節(jié)網(wǎng)絡 丟包率 Loss chance。 設計這些東西、實驗系統(tǒng)、自動化測試評分系統(tǒng),肯定需要花費老師大量時間精力,但是有沒有帶來多少升職上的產(chǎn)出,當然沒動力去搞啰。反正吧,學計算機最好不要全部去跟著學校學,除非你學校很好,不然大概率畢業(yè)即失業(yè)。當然,說了這么多問題,也是有長處的,這里引用知乎一位答主邦彥的總結(jié): 最后,附上這個回答下的一些評論:
以下是原回答
我自己是 CS 科班的,讀者里也有很多各大高校計算機的同學,覆蓋了上交、北郵、南郵、華科、川大、普通一本等等,根據(jù)他們反饋,總結(jié)了以下幾點:- 上課耽誤學習,不上課考勤扣分,拿不了高績點,耽誤保研出國。不多說,懂的都懂哈哈。
- 課程設置不合理,實驗課多,作業(yè)多,并且大多是寫 Word 報告,實驗報告就像這種(迪杰克斯拉算法):
- 占了很多時間,但是效果卻不如自學,上課基本是放 PPT,考試內(nèi)容全在 PPT 上,看書的同學沒有背 PPT 的分數(shù)考得高,沒有人愿意去啃那些大厚書,因為“性價比”太低。
- 都 2021年了,估計沒有幾個學校提交代碼是用 Git、Gitlab 這些工具吧,評分也沒有搞自動化測試。做悉大、MIT這些學校的 labs,都是直接去網(wǎng)站提交代碼,跑 test case,馬上就能知道哪些 case 沒有過,再去 debug。
- 教材大部分使用自己編的,水平如何就不多說了,懂的都懂。很多書上還是用 VC 6.0 來寫的 C,為什么不換用更加優(yōu)秀經(jīng)典的教材呢?順便貼一個匿名回答:
不過值得表揚的是,我們學校教材基本都是使用全英文黑皮書,比如《計算機網(wǎng)絡:自頂向下》、《深入理解計算機系統(tǒng)》等,這樣的學校我知道有 15 所以上,希望會越來越多~對于計算機的學生,最好的資料和書籍是美帝那邊的,因為計算機就是發(fā)源自美帝。 - 講課全程 PPT,放 PPT 就算了吧,很多 PPT 還是十幾年都沒更新那種(C語言 PPT 上用的還是 VC6.0....),什么 C 語言 main 函數(shù)返回值 void。
- 代碼量太少,很多同學到畢業(yè)估計幾萬行都沒寫到,但是真正想鍛煉出極強的編程能力沒有 10w 很難,這方面作為學生我們也要多反思,為什么平時沒有寫到這么多代碼。
- 很多學校就是孤立的學了一堆 操作系統(tǒng)、計組、體系結(jié)構、編譯原理、C、匯編,但是很少有同學能把這些課程連起來形成 CS 體系,這方面 CMU 的神書神課《CSAPP》又要提下了,幸好我們學校開設了系統(tǒng)編程的課程,教材就是 CSAPP,其它沒有開設這門課的學校建議學弟學妹們自學。
- 課程設置雜亂,學了一堆的數(shù)電、模電、大學物理..... 想起大一被大物實驗支配的恐懼,時間都費在這些上面了,說實話把這些課程壓縮,上一些函數(shù)式編程、或者比較前沿的 CS 方向,我覺得對計算機專業(yè)更好!
- 核心課程上的太晚!我們學校大二下、大三才開始計網(wǎng)、操作系統(tǒng)、數(shù)據(jù)庫原理等核心課程,太晚了,這些課程至少要在大三前完成,大三再開設圖形學、編譯原理等進階課程,大四直接就是實踐課程為主或者讓同學們自己出去找實習!
鄭重申明
本文非崇洋媚外,吐槽只針對部分高校的現(xiàn)象。像清華、哈工大、南大就有非常不錯的課程,也在積極像 MIT、Stanford 學習,畢業(yè)的時候已經(jīng)有自己造的編譯器、OS、數(shù)據(jù)庫等等,并且均使用 docker 和 gitlab CI 解決環(huán)境和自動化測試問題。-- 來自評論區(qū)但是這樣的學校有點少,希望國內(nèi)能有更多高校計算機教育模式能夠早日跟美帝等 CS 強校接軌。培養(yǎng)更多基礎扎實、編程能力強的學生,助力操作系統(tǒng)、數(shù)據(jù)庫等基礎軟件、工業(yè)軟件的發(fā)展。





