為什麼內地 CS 名校很少借鑒(照搬)國外名牌課程?
前幾日98上在討論學校cs課程老套,據己所知,內地除了清北復交部分借鑒國外高校課程,大部分的學校的課程內容還是那麼老套,那為什麼不是借鑒(甚至照搬)國外的一些課程,cmu的csapp,mit的linear algebra,os,berkeley 的 sicp(python版),stanford的compiler,這些課程的課程網站都相當成熟,課程內容都是cs的基礎,不是什麼學科前沿,直接借鑒,難度不大吧,那為什麼課程改革還是如此緩慢,是因為師資?管理者?利益相關?
本科在清華上過計算機組成原理,教材是csapp,講義也是cmu 15213的ppt。來cmu上了原版的15213,感覺即使借鑒了國外名校的教材和講義,差距仍然很大。原因有三點:
1. 作業設計有差距。thu的作業以書後習題為主,coding很少。cmu使用autolab系統自動判分,上傳代碼就可以直接看到自己程序的分數,然後根據分數調整策略或根據log修改bug。國內大部分高校或老師即使複製了ppt,也無法複製autolab平台和作業。感興趣的可以搜下15213 bomb lab,如果課程作業都設計的如此有趣,相信沒人會願意水作業或抄答案吧。
2. 助教的作用。cmu的TAs存在感極強,除了要配合老師設計作業,每周還要有固定的office hour和recitation,有的課程需要負責搭測試平台。相比之下,國內有熱情又有能力的助教鳳毛麟角。
3. 抄襲懲罰。cmu採用moss(Measure Of Software Similarity)系統判定抄襲,一定程度上保證了作業的質量。而國內,即使是清華,絕大部分coding作業也還是助教憑肉眼和記憶力和少部分學生鬥智斗勇。
所以如果國內高校想設計一門好課,除了copy經典教材和講義,有想法的老師,給力的助教,高質量的作業相輔相成,缺一不可。
p.s. 感謝幾位小朋友的提醒,目前thu的計算機組成原理已經移植了15213的作業,特此更正。給thu的老師助教們贊一個~照搬課程哪有那麼容易,首先這個老師得自己把所有的課件和上課視頻都看一遍。只看課件根本不知道課是怎麼講的,所以想照搬必須花時間看上課視頻。這樣一來這個老師至少要花掉幾十個小時的時間才能搞清楚別人是怎麼講的,然後還要花更多的時間才能把整個講課過程複製過來。
另一方面,如果選一本知名教材,選幾個淺顯的章節上課時照著教材念一念,需要花的備課功夫則少很多。
願意花時間研究其他人的教學的老師,往往都很有責任心,這些老師往往自己也會有些教學想法。因此最多只是參考,而不是照搬別人的課程。由於有一些爭議性的內容,我還是先把答案隱藏一下過一陣子再恢復吧
就這麼複述一下當年復旦軟院院長,計院副院長,現在跑去交大的老大的話吧:當年我引進ICS(csapp)的時候,整個院除了我沒人會講,這幾年年輕的上來了,情況才好一些。
復旦本科有門神課叫計算機體系結構實驗,是借鑒mit的課程,從指令集開始到完成一個可以運行程序的機器。首先,我覺得老師其實自己也不是特別懂,加上每次課程都可以拿到以前的代碼,所以主觀方面偷懶很嚴重。但其他方面呢,就我所知國外cs一學期三四門課,這樣同學們才有足夠的時間。而反觀我們,一學期20學分8,9門課很常見!加上這門課5學分的工作量但實際只有1學分!你說說是你會3分的課的時間勻出來給它么?借鑒課程是一方面,但模式,時間,學分設置等都要考慮,這不是開一門課那麼容易的,要完善的地方還有很多啊!
如果想照搬,需要教師真懂,也需要教師投入精力。
你們以為普通985高校教師是什麼水平?連篇NIPS都發不出的人能把統計機器學習講明白?自己能不能看明白還是個大問題。
中國高校教學對教師績效考核幾乎沒有影響。教師認真講課的純屬個人良知。大多數人做一套ppt是打算講一輩子的,他們哪裡來的動力去改進課程?謝邀 @abing,校友聞98粗。
首先浙大的課程安排有個很大的問題是,由於大類培養分專業晚,大量專業課被壓縮進了大三一年。像CS這樣不水的專業,大家的課程壓力其實是很大的。同樣是半年30左右的學分,國外三四門課,而浙大是7,8門專業課,如果照搬國外課程的工作量的話,大部分人都吃不消的。
話說回來,其實浙大CS的課已經很先進了,說沒有借鑒國外課程打死我也不信。
絕大部分課使用業界權威的影印版教材(大名鼎鼎的如龍書、Tanenbaum 大叔的OS和網路,Hennessy/Patterson 的計組+體系,PRML 等等),基本全英文的課件/材料/考試,以及部分老師的全英文授課(比如姥姥)。高年級有研討課(類似國外的 seminar),何導、昆哥、老鮑等大牛,以及國外的老師會出來給大家講他們領域前沿的東西,然後看大量論文,做實現、改進等。系裡針對行業趨勢也不斷地對課程做調整,比如人工智慧課砍掉了老土的搜索、路徑規劃等內容,全部講機器學習,登叔開了兩三年的數據挖掘課每年都有新花樣,2013年新加進來的GPGPU課、網路安全等。(還有一點我很喜歡,浙大CS不用學數電模電。。。必修的硬體課自成一體系,邏輯+計組+體系,玩 FPGA 寫幾回硬體代碼(Verilog),兩年下來,體系課最後得到一個帶流水線、分支預測等等的 MIPS 指令集 CPU。)上課是一個良心活,國內學校的相當一部分老師的心思是放在賺錢上面,而不是上好課。讓他們花上幾十個小時去看國外的慕客視頻,再認真備課,有點難。
主要是課程都是活的,而且教材和教授也是活的。比如我至今都不知道我們基礎課和核心課程有多少套 Past-Hour Exam,TA 也不知道,教授恐怕都不清楚%……%因為學校開這門課程的時間長,而且新課程也會有老課程的教程參與,教授們還在自己編寫教材。林林總總材料夠多,就像是進了一家公司,每一個程序都寫了非常長的 Readme 和技術文檔等等。
前幾天上Intro to Computing System,出來的時候遇到一個印度老頭*(S.J.Patel)在門口走過去,然後有人認出來「咦這不是我們教材的作者嗎?」。後來我就不知道了,其實被認出來也是很困擾的一件事,一是因為教材都幾百刀一本,大家的心情大致相當於見了欠你錢的人,然後又會有一大堆人跟上去問問題。
問題多了之後教授會自己寫新的講義和教材給你,然後恭喜你明年又出新版書啦:)有沒有借鑒過我不知道,但有引進過。
06年左右有幾個學校引進了CMU的SSD (Software System Development) 系列課程,當然這幾個學校也算不上CS名校。引進這個課程據聽說花了上萬百萬美元的費用,這也是我們大三大四學費高達一萬多的部分原因。SSD有十門課:
SSD1 信息系統導論 (Introduction to Information Systems)
SSD2 計算機系統導論 (Introduction to Computer Systems)SSD3 面向對象編程 (Object-Oriented Programming Design)SSD4 以用戶為中心的設計與測試 (User-Centered Design Testing)SSD5 數據結構與演算法 (Data Structures Algorithms)
SSD6 系統級編程 (System-Level Programming)SSD7 資料庫系統 (Database Systems)SSD8 網路與分散式編程 (Networks Distributed Programming)SSD9 軟體規範、測試與維護 (Software Specification, Test and Maintenance)SSD10 軟體項目組織與管理 (Software Project Organization Management)我們用CMU的在線學習系統,上面有英文的課件、練習題等學習資源,平時考試也在系統上來。
這套課程是英文的,看上去高大上,但其實以我們的英文水平根據搞不定。我們大部分人都沒有閱讀大段英文的經驗,更別說很多人剛上大學時對CS也是一點概念都沒有,要通過英文學這些東西更是難上加難。所以就算是SSD課程提供了一些PPT,有些老師也是用他們自己做的中文的來講課。
每學習一個章節都會有相應的練習題與考試,我們都是開著金山詞霸一邊查單詞一邊看題目的。後來很多同學都學精了,因為這套課程每年變化不大,就有人在網上搜往年練習題目的答案,很多同學就ctrl c加ctrl f加ctrl v考試的。願意學的人得花時間攻克英語,一開始收效很慢,不願意學的就隨便搜搜答案應付了事。
其實老師對這些情況也都心知肚明,但花了大價錢買了課程,沒效果也說不過去,就撐著,於是乎,我們就被這課程綁架了,好像是後來12年左右就沒再引進了。
不談借鑒和照搬國外名校的課程,我感覺引進這種形式會有以下問題:
1.語言是一大關,知乎上很多牛人英文文檔毫無壓力,但肯定不是所有人都這樣。
2.國情不太相同,有些低年級的課程引進的時候要注意。我們入學的時候沒怎麼摸過電腦的人大有人在,而國外很多大一的課程都比較難,跟連操作系統都不知道是啥的人講SICP估計直接歇菜。主要是利益,不展開說了,大家都是成年人
名校師資方面其實不可能有問題,只不過不是你水平高就有話語權,這點你懂。。。
另外,計算機本科哪來什麼前沿技術,都是3、40年前的老古董了,核心課程不超過10門,有心的還是自學吧本科這些課是照抄國外的:
計組(berkeley),編譯大作業(虎書),操作系統大作業(berkeley的nachos)。這些課用的教材是國外的,講的內容感覺也差不多:Linear Algebra(Gilbert Strang),Abstract Algebra(Michael Artin),Combinatorics(J. H. van Lint, Richard Michael Wilson),Database(Raghu Ramakrishnan and Johannes Gehrke)。某些課的難度也不比國外差:
資料庫從頭搞一個出來,支持sql的一個subset(雖然我感覺基本上我能寫出來的sql都支持了)。完了還有一堆坑爹數據坑你,得加一堆index優化,不過最後還是坑出一個能過掉數據的(面向測試數據編程)。上完之後的感覺:現在在北美某校讀phd,上某些跟自己方向無關的必修課,基本上就是喝涼水,因為都是學過的東西。說的我真的好傷心。日。下輩子一定選cs
推薦一下南大今年課改的ics課程,課程內容和前幾個lab借鑒的csapp,但還設計了一個PA,完成一個模擬器,助教已經跑起仙劍了。
還有操作系統的實驗課程也是神課。但其實上面的課程改革只是少數老師和幾個有熱情有想法的畢業生做的,並沒有影響到其它課程的水。所以基本就是老師們大多以科研為主,對教學不怎麼care,我從生物和計算機兩個專業的課程情況總結髮現,好課的帶頭老師都是教學為主的,其它水課大多是科研為主的。所以和評教授的標準關係大大的,各位其實心知肚明,所以只能期待可以遇到看重教學的老師了。
話說回來,自己學效果好得多啊。不是碼農能答么?我讀碩士的學院,幾乎所有老師都是年輕的海歸博士,因此幾乎所有老師都是複製他們讀博士期間的課程,我們用一樣的書,有時候用一樣的 problem set 一樣的考試卷子,有些老師直接拿出自己當學生時候的筆記給我們講課。我讀本科的地方,使用國外的課程內容什麼的比較少,聽說一個師兄去普林斯頓交流之後,他老闆的課程 PPT 就換成普林斯頓用的那一套了。大概大部分學校的老師沒那麼多海外背景吧。尤其是一些稍微差一點的學校,或者稍微傳統一點的學科,老師的英文水平都是問題。
首先,使用 CMU 的課程體系來衡量中國的課程體系是不公平的,網上能拿到的公開課程往往是頂級的教師完成的,這個在中國就沒有借鑒意義。大多數教師都是平庸之人。第二,教師這個職位在中國給予人的印象是,工作輕鬆又有寒暑假。國人給予這個職業定位就意味著大量的高等人才的流失。就算是有借鑒的材料,也沒有能力完成國外頂級課程,更往往沒有責任心去做這件事情。第三,很多知友已經說了,國內的教學是在考評體系之外的東西,國內的學校的課程是很難經過精心合理地設計的。第四,國內本科生在本科生涯中需要選修的課程太多,使用國外的課程體系意味著學生根本沒有時間完成它們。
第五,國內研究生質量太差,大量讀研的CS都是不明白自己想要做什麼的人,本科中優秀的人才恆流失於工業界或出國深造,何來助教幫助老師分擔教學任務。如果有人慾辯解國內研究生質量問題,我希望你認識到要開設這樣的課程需要年復一年地找到有能力夠擔任助教一職務的學生,這個是非常難的。
從某互聯網之王「名校」的經驗來說。
老師要照顧學生的水平,保證絕大部分人能順利及格結業。
曾經有學生當面炮轟老師的情況出現,射了一臉。沒少借鑒,問題不在課程上課的部分,而在作業。
我武大國軟css的課沒少上,教材/英語授課全面跟隨卡耐基梅隆,但是就是少了海外大學裡最關鍵的那個每個人自己做作業,ta批改,作業還要查抄襲的過程。
真是服了貴院了,在98十大還不夠,還要跑到知乎來問
會借鑒,照搬的東西會好嗎
推薦閱讀:
※在中國為什麼男女分校不流行?
※作為教師如何阻止學生因為丑/胖被欺負?
※為什麼學生時代女生的家長對她們花錢都特別闊綽,而男生的家長通常比較摳門?
※MOOC 課堂能取代傳統課堂嗎?如何實現師生互動?