國內的本科 CS 教學和國外相比有什麼優劣?
相關問題:國內的本科數學專業教學和國外相比有什麼優劣? - 教育
國內的本科物理專業教學和國外相比有什麼優劣? - 教育
看到這麼多令人喪氣的答案……來給母校打個廣(tu)告(cao)吧。廣東某老牌 985 的軟體學院,坐標大學城,不是輪子上學的地方,應該很好猜……不過據說很快 CS 相關專業就會合併成一個新的學院了……
因為是軟體學院所以嚴重偏工程,就CS的S的水平來說……嗯你懂……好處大概就是比較接地氣不愁就業吧……(當然自己不能太水否則沒有卵用)UPDATE: 不要來問我中大研究生怎麼考啊以下全是本科生的情況,至於中大研究生如何歡迎圍觀評論 OTZ 另外中大的 CS 相關專業都合併到新數計院了所以現在沒有軟院了……
值得表揚的地方大概有:
- 規定使用英文教材,試卷使用英語,連帶著大部分課件也乾脆英文(不過小部分老師不太遵守),教材的選擇上還是不錯的,各種經典輪著上,所以不用太擔心教材坑爹的問題。
- 大一的 C/C++ 目前是放在自家寫的 OJ 上,要跑 cpplint(以Google C++ Style Guide為準,請允許我吐槽一下還在學 C 的時候用 C++ 的 Style Guide 檢查是鬧哪樣),valgrind 和 gtest 寫的單元測試。一些老師要求 Linux 下操作,一般要會 vim/emcas 和手寫簡單 Makefile。教材 C How to Program (豆瓣)。另外我院有某次期中(刷OJ)無人及格的傳說(上了南都hhhh)。
- 我那屆大一的 C++(某老師的)和實訓是有寫單元測試的要求的,現在似乎沒了,不過都是 Linux 下 C++ 擼個 XX 管理系統,涉及簡單的設計模式和 C++11,加分項有 socket 和 GUI/TUI 什麼的(用個clang都有加分然而沒人用我會亂說嗎),單元測試打分,moss 查代碼相似度。大二實訓用 Java 擼米國高中 APCS 的 Case study(此處省略槽點若干)、一個 BMP loader 和色彩通道提取,A* 和 BFS 走迷宮,要上 Ant 構建/Snoar 代碼質量管理/JUnit 單元測試。
- 某些老師的 OS 讓大家做 PINTOS,教材恐龍書。
- 編譯原理就是寫個簡單的編譯器/解釋器,教材龍書(此處省略槽點若干),某老師的考試照搬斯坦福的試卷(又是槽點若干)。人工智慧寫寫神經網路決策樹模擬退火什麼的,教材Artificial Intelligence: A modern approach (豆瓣)。數據結構和演算法課(兩門)偏向 ACM,OJ刷起來(不過也要看老師)。資料庫擼個資料庫引擎,教材 Database Management Systems (豆瓣) ,以前有擼 B 樹的,我們擼的列存儲(看老師),還有技能點點歪的 Hadoop 大作業。這堆貌似不能說有啥特色不過相對於其他答主抱怨的似乎挺好了……
- 小學期有 Haskell。貌似今年沒了?(小學期的課全是外教所以排課不太穩定)
- 各種選修課,Web 啦 Android 啦 Win8 應用啦……基本都是一堆代碼的節奏,請不要擔心沒得寫~ Web 是用 Python+Tornado/MongoDB/jQuery,Android 用 Android Studio,Win8 最後做的作品要放到應用商店,下載量是評分依據……
- 數字圖像處理代碼作業量大(實現各種演算法比如快速傅里葉和五花八門的濾波)+ 考試有一定難度,大作業實現一遍 CVPR 09 best paper,很爽。
- 請允許我吐槽一下機器學習相關課程真是多,一個神經網路寫了 n 門課都能用。還有分散式應用的課程(hadoop/spark 什麼的)。數據挖掘在 kaggle 開比賽當作業,教的從Logistic Regression/Linear Regression 到各種神經網路/SVM/隨機森林一類(DM秒變ML,省略槽點若干)。
- 人人必選的 Web 安全(課容量巨大+3學分),作業五花八門,從實現 MD5 到緩衝區溢出攻擊實踐到架設 VPN 應有盡有。
- 計算機圖形學若干作業代碼量適中,自由度極高發(nao)揮(dong)空間極大,Project 包括實現 Virtual Trackball/Bresenham畫圓/用盡自己會的一切技巧寫一個3D世界但不準用任何引擎/導入顯示各種模型並實現各種Subdivision。不過還在教 fixed pipeline(槽點若干)雖然貌似也不限制用 shader
- 多門課程要求 GitHub 提交作業/大作業用 GitHub 表明小組成員貢獻率。
- 有外教的論文寫作課,教你從 Word 轉到 LaTeX 以及正確的科技論文寫作姿勢(IEEE transaction style),可以學到大量針對科技工程類專業的寫作和演講技巧,教材包括著名的The Elements of Style (豆瓣) 和 How to Write and Publish a Scientific Paper (豆瓣)。其實這門課真正的名字叫 Technical Communication 所以是說和寫一半一半,期末作業是挑自己喜歡的領域寫一篇 review(隔一周在原來的基礎上加一頁,最後面5頁,打分標準包括格式和行文風格)和做一個介紹自己的 review 的脫稿 talk(印象里大概8分鐘?也是隔一周做一次不斷延長和改進,而且當然是英文的hhhh 小組坐成半徑&<2m的一圈圍著你看,外教還會晃來晃去檢查,亞歷山大),相當於訓練你做一個 oral paper 了。另外除開這門課,好像挺多人交作業報告喜歡用 LaTeX 啊……(需要引參考文獻的時候我也喜歡用……)。
- 某老師的軟體過程改進各種花式 Node.js/CSS3/CoffeeScript/LiveScript/Sass/Meteor 什麼的前端同學可以自由玩耍(ES6黨如我有時會有淡淡的憂傷就是了),不過老師吹捧前端和Node大法好的時候請別太當真……
- 計算機視覺從相機角度校正(Canny + Hough)到全景圖(SIFT+RANSAC)到 MNIST 檢測與識別(Adaboost + SVM)不愁沒代碼寫……
- 聽說師弟師妹們大一的導論課有Construct 2擼遊戲+擼樹莓派加分+Python/C擼貪吃蛇還要讀黑客與畫家和浪潮之巔什麼的
- 虛擬現實我看到了很多以本科生水平來講很炸天的作品,大部分人用 Unity 3D 做的,我用的 Three.js 也沒啥大礙。老師有點鬼畜……
- Python 黨表示很多課都可以用 Python,就算是寫C++很多TA也接受(鼓勵)C++11。到了大三很多選修課的作業是不限語言或者有多種選擇的,只統一一下目錄結構方便批改,不過這個主要看改作業的TA。曾經遇到一位神級TA什麼都能跑,只要符合作業的造輪子而不是用輪子的要求,Lua/R/Matlab/C++/Python/VB/C#/JavaScript在任意OS需要任意第三方依賴都行……不過這種TA也是少數,一般還是會加一定的限制方便批改。個人喜歡使用 Premake 解決跨平台問題一般也都能接受……
- 只要選課得當+必修碰上某些老師一個學期代碼量上萬不難,大量修羅場(請叫我自虐小能手)。像我一樣選課+RP不要太差的話,個人經驗四年下來光課程作業+實訓十萬代碼量還是有的(而且我還只有實訓的時候寫過 Java 其他時間都是 C++11/Python/JavaScript 為主)。雖然代碼行數不是很好的評判標準,不過起碼能說明在這裡有心學的話不至於大學四年無所事事。壞處大概就是你沒太多時間擼自己的代碼了……
- 選課得當的話也不缺 paper 讀,有志科研的最晚大二也可以開始準備了,大三湧出來的大量選修課可以提供跟老師套磁的機會,不少課程的大作業就是看 paper 寫代碼,某些課平時也有些讀 paper 的訓練啥的,再選個外教的論文寫作課大概進門還是挺快的
- 暫時想不起其他的了有空再補……
比起國外似乎亮點也不算多,大概也不能算國內頂尖,不過自從知道國內還有辣么多不靠譜的CS之後突然覺得我院很多老師簡直業界良心了,而且因為自己經常Google到其他國外學校的課程網站去,平心而論只要選課得當我院和歐美非Top大學的CS還是有得一比的。本來我也很喜歡吐槽自家學院的一比我就不再黑了……然而我院似乎還不如某些更加坑爹的985 CS有名,何況我院分數線在985里也不算高(對於廣東人來說),上不了清北交浙or不想出省(我就是= =)的同學可以試試我院。隔壁 CS 據說也不錯但是似乎偏理論,工程類的東西沒那麼多,喜歡搞工程的來我院也無妨,喜歡ACM和科研的去隔壁院資源更多,雖然似乎很快我們就要合併了hhhh
其他槽點還是有的,比如:- 花五分鐘讚美VS語法高亮的老師A
- 高功率PPT復讀機老師B
- 文檔/實驗報告大過天老師若干
- 還在教 intel 8086 彙編 + DOS 的老師C,實驗課教的東西得開奇怪的虛擬機才能跑
- 進程線程傻傻分不清楚的老師D(據說現在懂了)
- 我比較怨念的是居然沒有用CSAPP的課,幾門重要的基礎課程就這門日了狗了,大概是我運氣不好沒碰上合適的老師……
- 我的計網和OS被上成文科課了,不過自己實踐比較多,而且因為教材的緣故起碼課程內容不算過時也不硬塞錯誤知識給你,所以沒怎麼在意(這個時候教材的重要性就體現出來了……)。
- 雖說我們是軟體學院吧,但硬體課程也不能渣成這樣啊……隔壁信科好多了……
- 個人凡事喜歡Google不喜歡問人所以不太清楚和老師交流方不方便,不過感覺學生和老師的溝通交流還有待加強……
所以如果想度過一個有乾貨的大學四年,就不要選公認的水課/祈禱必修課能輪上靠譜的老師……
認真備課認真教學的老師還是很多的,比如某大法師和某常駐外教,不過也有現場從百度文庫下載PPT開講的老師就是了……另外老師水平和老師RP沒有必然聯繫,涉及畢設/去當廉價勞動力這種事需要極其慎重。好的老師一般打分是很嚴的,考勤(學院強制要求至少10%)小作業大作業期中期末什麼的列個表格清清楚楚,加起來多少就是多少,沒得操作,而且那種TA寫腳本打分的就更沒得改了。我院多名老師掛科率安定的三分之一,當年抄個作業查出來都能開除現在抄個作業查出來最多就掛科吧(某些師弟師妹已經開始有抄代碼沒什麼大不了的心態了這讓我有點淡淡的憂傷),多次因為掛人太多上南都/差點上南都(雖然南都內部有大量校友……)。還有就是我院課程的TA很重要,一些課程的出作業改作業甚至出試卷都由TA負責。TA一般精選大一屆的師兄師姐/老師手下的學生擔任,喜歡水群/閃電回復郵件+認真負責的TA能讓你的學習效果有質的飛躍,喜歡划水/經常漏發東西/作業需求永遠定不下來或者有bug的TA會讓你痛苦加倍。
哦還有選了我校就不要想假期這種東西了,我校俗稱孫逸仙不放假魔法學院/大山不放假中學。
Update: 好像有人誤解了我們學院都是這樣的課……強調一下上面說的很多是選修啊選修!不想這麼 push
的話也有很多神似「通識課」的選修的,也有很多課內容水不水得看老師。總之修夠分數就可以了,只不過我院好歹有選擇自虐的餘地……另外因為生源比較雜,有很多人是調劑進來的又轉不走,所以差距很大,比如整體地看抄襲現象恐怕不比其他學校好到哪去,到了大三還嚴重缺乏編程常識的人也不是沒有。只能說如果你願意努力學習 CS
知識的話,起碼這裡能夠提供相當的資源和環境,不怕找不到志同道合的小夥伴,不愁沒有乾貨學,很少會強制拖你後腿,而且大多數時候努力是能夠得到相應的回報的。
=====================================================
上個鎚子的話,這是我宿舍目前留下來的書……一些沒什麼用的就處理掉了,一些四五厘米厚的兇器搬回家了(實在放不下……),大三的選修課基本上沒有買紙質教材都看電子書去了所以大部分都是大一大二的書……非英文影印的基本都是自己課外買的
教材基本都是買的影印英文版……還有一些自己買的雜七雜八的書……0.0
前面不少答案是關於目前國內CS教學吐槽的,表示很幸運能在現在的學校學CS。也是有感於目前贊同數最多的答案,前來怒(an)答(li)一(yi)記(fa)。
我在新成立的上海科技大學讀大一,目前學校還沒有安排專業課,但這學期開了一門通識向的信息科學導論,面對每個本科生。這門課分為四個部分,編程、機器人、信號與系統和電路,每個部分一個月,各有16課時。把其中編程這部分的幾個亮點和大家分享一下。
1、拋棄中國大學傳統使用的C/C++,選用美國頂尖高校逐步採用、當前十分熱門且受到高度評價的Python作為教學語言;
2、全英文授課,從第一節課開始不講任何語法知識,直接講編程的有關思想;
3、不設教材,如果有的話,老師推薦的教材是Python3.3的官方文檔;
4、強制每名學生在Linux環境下編寫程序(這個和下面配合),原則上自行安裝Linux;
5、強制使用git提交作業;
6、評測用我們老師自己寫的gradebot系統,類似ACM等的OJ,自動評測,實時出分;
7、使用強大到變態的代碼查重系統(同樣是老師自己寫的),寧可出現誤判讓學生時候去證明獨立完成也要保證獨立完成,而且被判plagiarism代價巨大(輕則扣去本次作業的分數,重則整門課直接fail);
8、課程難度巨大,一個月內從零基礎講到漢諾塔、二分查找、演算法複雜度評估和面向對象,本人高中搞過NOIP當然不虛,可對之前沒學過編程的同學會感覺相當吃力。
大概就是以上這些,剛開學的時候看到這樣的課程安排全校吐槽聲一片,然而一個月後我可以說上科大學生的編程水平在全國同年級的信息專業學生里都是領先的。(據我所知某985學校照著書講函數的參數調用就講了一個月)
附上我們課程安排:
gradebot頁面:
開課老師的公開信:
教學與學生事務處
然後插一句,前兩天去上海科技大學的數據科學研討會(SSDS2015,網址:ShanghaiTech Symposium on Data Science)當志願者,聽到Stanford的Stephen Boyd教授在和外校某兩位研究生交談,Stephen說學CS要打幾個基礎,學會python語言、運用oop(面向對象)的思想、熟悉掌握linux系統的使用、運用github管理自己的代碼,而這些都是我們在短短一個月內接受到的。
最後,下學期開始信院就正式安排專業課了,先排的是數據結構,到時候看情況來更新。
利益相關:上海科技大學大一學生在某211,985教CS十餘年,說點想法和分析吧。
1、教材。確實有很多自編教材,因為編一本教材可以算工作量和科研成果,所以有一段時間,大家都是抄來抄去,「借鑒」國內外已有的教材,排列組合一下就成了自己「編著」的教材,如果是比較經典的課程,那基本上還八九不離十,而如果是比較新的內容和課程,那就真的是各種各樣的風格都有。換句話說,絕大多數的自編教材都是為了應付學校拿工作量的,其質量可想而知。
2、教師。現在高校的一個傾向就是重科研輕教學,就連那種二本學校都叫囂著要拿國家級項目省級課題,在211,985這樣的層次就更不用提了——學校以三年或四年或五年這樣的期限來進行考核,在這個期限內,必須有幾篇某某檔次的論文,有幾項國家項目,有幾項省級項目,教授、副教授、講師的要求各不相同,如果沒有達到要求,就要降職稱,甚至要求你離開教師崗位,不能站講台。從投入產出的方面來看,同樣的時間,投入到科研,寫寫論文,寫寫項目申報書,又得名又得利,而同樣的時間投入到教學,則沒有什麼產出,所以自然都會選擇去做科研,就算你不想科研,就是想把書教好,那麼你得先做科研,保住你的崗位再說!所以在近十年里,我們學院引進了許多的博士,甚至是海外名校的海歸,但教學效果卻並沒有明顯的提升,因為一位優秀的教師,一是需要經驗的積累,二是需要時間的投入,三是需要有足夠的能力,但往往都只是滿足第三點。
3、課程體系。中國計算機教育的課程體系,基本是借鑒了國外名校,所以從整體上來看,還是比較合理的。但是!中國計算機教育的學時嚴重不足!因為我們要學英語,這要佔去不少的時間,當然這也是可以理解的,但我們還有政治課,先不管這種課對於智商的損害,在時間方面占的不比英語少,這就導致我國的計算機本科教育中,基本上所有的課都是一帶而過,沒有辦法深入下去。美國大學計算機系的學生學專業課程時,《操作系統》的課程設計就是寫一個小操作系統的原型,《編譯原理》的課程設計就是寫一個C語言子集的編譯器,《資料庫原理》最後要做出資料庫各個模塊的原型,所以他們每個學期選三門專業課都要累成狗,而我們隨隨便便一個學期選七八門課,下課拷下PPT,考試前兩周突擊一下,拿個及格,教師學生皆大歡喜,然並卵。
4、反饋與交流問題。國外的大學,師生比都比較高,比如某某大學的某某專業課,選課的一共200人左右,一共有四名教師和7名助教,一個星期有14個時間段共25個小時左右的答疑時間(就是學生在這個時間段內可以隨時找到教師和助教),還可以隨時發郵件詢問,而國內的課程是什麼情況,大家自己也都知道。
5、教學的效果評價問題。教學的效果如何,這需要學校投入大量的時間和精力,從多個方面來進行評判,國外名校在這方面有很成熟的方案,特別是教授治校的理念,能夠確保每個教師的教學能得到公正公平的評價,而國內一般都是教務處的工作人員來進行,自然就只能採用量化的方式——遲到或早退5分鐘算教學事故,15分鐘算重大事故,超過15分鐘就是特大事故,如果一年內重大事故小於一次,就算合格;學生投票分數平均起來就算學生滿意度,這就逼得教師去討好學生,考試放水。
其實最根本的原因,還是在於大學教育的目的——你是需要培養聽話的技術奴才,還是想要培養思想自由精神獨立的技術人才?國外,特別是美國,是後一種,而我們,是前一種,所以各種怪現象,雖然不合理,但不得不硬著頭皮搞下去,至於教師的利益,學生的利益,中華民族的利益,那是啥東西……
我是北大信科智能科學系的大一學生,我說說我的看法。
1 不設教材 ,基本上看老師的課件,而有一些老師會推薦參考書目,一般都很權威,比如在學數據結構與演算法的時候會推薦演算法導論,在學習計算機系統的時候會推薦深入了解計算機系統這本書。
2 別的學校我不是很清楚,但是我們需要絕大部分老師非常負責任,我最印象深刻的就是一個公選課老師,那個老師是第一年開這門課,五十多歲的老爺爺,說話非常幽默詼諧。他為這門課付出了極其大量的精力,這門課一學期500多頁的講義全是他這學期編寫的,而且對我們的要求也很高,每周都要做一個小項目,我們選擇門課大部分是大一學生,基本上學了一學期之後就可以寫一個小型的教務管理系統,用python做後端,用web做前端。
3 課程量確實不多,但是所需要花費的時間很多,比如程序設計實習這門課,一學期要教cpp以及幾種基本的演算法(比如複雜的遞歸,枚舉 搜索,動態規劃,貪心),每門課如果想學好,一個星期至少要花費十個小時以上。
4 課程與社會逐步接軌。比如說我們這學期的某大一課程有兩個大作業,第一個大作業是用實現一個俄羅斯方塊的程序。第二個大作業是實現俄羅斯方塊的AI演算法,並且在botzone上進行天梯排名。實際上大家可以到botzone上看一看排名前幾的大佬的演算法都是很強的。
5 課程要求很嚴格。如我們下學期要學的ics計算機系統導論是從cmu借鑒而來的,但實際上課程難度啊比他們學校還要高。
暫時就想到這些,日後補充
瀉藥,沒在國外接受過 CS 教育,只說國(ben)內(xiao) CS 教育哪裡糟糕。
1. 喜歡選用垃(ben)圾(xiao)教材。不過這個在好轉,但有時會陷入 國外教材 == 好教材 的誤區。
2. 培養方案不合理。首先是毫無意義地把 CS 放進一個大類裡面,直接導致許多人到了大二連 CS 的門都沒跨進半步;其次課程編排有很多問題,有些先修課居然放在後面上,以及整體課程選擇看不到明確的思路,給人的感覺是從 CS 核心知識的主幹上向不同的方向延展。這並不好。
3. 有那麼一部分老師除了資歷較老以外講課毫無可取之處;還有那麼一部分老師資歷又淺水平又差,不知如何混進來的。
4. 大部分課程評分標準不合理,筆試成績佔比過重。這一點本來無可厚非,但首先很少能見到一套有水平的卷子,常見的出卷模式要不就是考背記概念要不就是過於考察細心,還有通過嚴苛的改捲來轉移出卷質量低沒有區分度的矛盾的,甚至還有把期末考試出成默寫課本的形式的;而且部分課程的 lab 和 project 量很大,在最後卻只佔 15%~20% 的分數,而與此同時連出勤都有 10% 的分數,怎麼想都有問題。
5. 由於第4點,很多人刻意地追求高 GPA 到了吃相難看的地步,課上老師講到什麼東西,一些人別的都不問,第一句就是 這個期末考不考 / 這個知識點會怎麼考。這就算了,畢竟觀念不一樣。但從來不見任何一個老師做出正面的引導。
6. 很多有 project 的課因為老師和助教自身姿勢水平不高,容易被一些不按照要求完成而只是做了一些表面上的炫技的學生牽著鼻子走;與此同時,與代碼相關的作業幾乎沒有抄襲檢測。
7. 由於以上1~6點,本科教育質量不怎麼樣,然後解決方案居然是鼓勵本科生搞科研。這個大概跟妄圖用所謂的高考改革來轉移教育資源分配不平等的矛盾有異曲同工之妙。
8. 扯遠一點,對內對外交流都太少。基本只有兩類活動:教授/研究生的學術報告,以及各類公司的分享會/宣講會。前者受眾太窄,通知也不及時;後者還是不錯的,比如FB、Google的講座,但更多的是一些公司(其中還有很多與CS並無相關的公司)的招聘會。當然這些內容也很重要,只是如果只有這些的話就給人感覺本末倒置了。應該多辦一些有生機和活力的活動,比如班級內部交流會(我們班倒是已經開始搞了)、邀請更多有乾貨的人來做講座和交流(比如之前邀請 @李阿玲 來)、Hackthon、CTF等。
總的來說,問題的根源大概是從院系領導到老師到學生,很大程度上都沒有把 CS 當 CS 去教/學。這個固然跟所在城市和所在學校有一定關係,在大學裡做跟專業不對口的事情也沒有什麼錯。但從教學角度來講,這樣一直放任下去絕對不是什麼好事,畢竟本分是不能忘記的。先上結論: 國外學的才是computer science,至於國內,能學出個software engineering就不錯了。
我來舉點例子吧:
CMU的第一年生活:製作一個1000+行的大項目,手寫解釋器,用20行搞定紅黑樹,寫過正則表達式的matcher,做過lambda演算的計算器,寫alpha-beta剪枝的ai,還要證明3SAT和NP-C的等價性,證明哥德爾不完備定理,作業里考過DNF和CNF的等價證明
國內的大一:
我旦: 文科生的VB我也是不想吐槽了。。。。感覺難度就和上海會考差不多,教材蠢得不行
交大: 「閱讀解釋器代碼並發表感想」。。。這大作業到底是什麼鬼嘛!平時一些小作業看起來也有不少是來湊數的
清北: 學生固然秒殺我等一個台階,然無論是教學進度還是深度上,國外的CS還是領先國內不少的。我們的教授就像摻了金坷垃一樣,一學期上了清北一兩年的內容╮(╯_╰)╭
至於像我們這種函數式編程啊,理論計算機科學啊,type theory啊國內懂得教授都不多,怎麼能指望大學能開得出這種課呢
//啊上面這段只是我自己的觀察,畢竟我能接觸到的只是我的大一同學們以及一部分的學長學姐的口述,所以對於這段的正確性我並不保證。我的意思只是說至少和同齡人相比,國外大學能給你更深刻的思想和更廣闊的視野
對比國內,我也不想多說了,只說三個字: 譚浩強
在國外一年最大的感受就是,國外的CS知識都是能織成網,形成一棵完整的技能樹的,而國內就是一條路走到黑,師資和資源上的匱乏導致無論是深度廣度還是視野都被國外完爆。
當然國內同學的素質還是很優秀的。。。比我們那不知道高到哪裡去了。求大神們輕虐。。畢竟畢業了一樣還是要搶飯碗的主要差距在於國內經常掛羊頭賣狗肉:
有的課明明是Introduction of XXX,實際上確是Introduction of the history of XXX
好吧……其實我在國外,國外也經常這樣……
我來吐槽幾句,複習離散累了。。
- 老師太少,或者說某幾個方向的老師有點少,研究網路的老師來教的OS和compiler這種事不少。雖然你說這都是基礎課但是至少得研究和這些搭點邊的老師來教吧?
- 老師重心全放在科研上,本科生教學不上心。不多說,全中國都是這樣的。
- TA隊伍差,沒什麼存在感,我覺得這點是被忽略的劣勢。反正上了那麼多課TA基本不知道長啥樣。
- 培養計劃落後。基電模電什麼的吐槽太多了。
- 選課不夠自由,全他媽是理論課,
- 作業、課程設計水,不多說。反正就沒好好設計過作業應該怎麼布置,應該給學生寫什麼代碼。
- 跟國際脫軌嚴重,怕改革,生怕出亂子,越搞越不不行。
- 亂七八糟的課要學的太多。對我就是在吐槽三大電,專業課的時間都被擠掉,越來越水。
- 明明英文講不好,我們好好用中文好么?
其他想到再補充。
高考季,推薦大家報考上海交通大學軟體學院,而不是電子信息與電氣工程學院計算機科學與技術系。下面的例子,來自某非211,非985。
1.教材嚴重落後。我們用的教材,基本都是國產的,大部分屬於清華出版社。這些書有一個很大的問題——講得稀巴爛,十來年TM的還從不更新。而且很多教材都是「編」、「編著」~呵呵
印象比較深刻的:
C語言用的是譚浩強的。(說明一下,不是譚浩強的問題,而是這本書已經不適應現在的時代了。)
計算機系統用的是清華出版社的,書已經扔了,記不清作者是誰。反正書渣~
2.大部分教師不重視教學,並且有點缺少實踐經驗。
有一次,在實驗室,聽到隔壁(因為是隔間,所以聽得很清楚)的老師在聊天,當時他們聊的基本都是工作、評職稱。當時聽得比較清楚的一句話是「你只教學,教得再好也沒法評職稱的。還是趕緊出幾篇論文吧。」
有一次,大三,上操作系統,那老師說什麼同一時刻只能有一個進程在運行……大家有疑問了,因為我們都是認識多核處理器的。所以就質疑了一下,她停頓了幾秒鐘,竟然略過,不解釋了(我勒個去)。不死心,追問,她答:「考試的時候,按我說的寫就可以!」(心裡好多草泥馬)
在一次檢查編碼作業的時候,我做的是一個單進程IO多路復用的伺服器(進程模型就像Nginx那樣)。結果,檢查的老師說我沒有用多線程,無法處理並發請求……
(當然我也遇到過小部分很好的老師,這些老師都有一個特點,有過大量的編碼經驗——大部分是工作過的。我大學四年遇到四五個這樣的老師,只有一個沒工作過。)
3.對學生要求極低。
除了程序設計語言、數據結構,其它課程的編碼任務基本為零。作業很多都是一些熟記型的題目——和考試相關。考試無關的基本不多講。
學校對學生要求低,大部分學生對自己的要求也就更低。得過且過,所以「平時不學習,考試靠抄襲」的現象挺嚴重的。
4.總結。
國內的計算機教學,個人覺得真的挺渣的。國外的不了解。
我來自非985211,教材學校發一本,自己買一本。自己理解。
某985,就事論事匿名答
主要有幾個問題:
1. 太輕代碼,大多數課說起來要寫代碼,但大多數都可以混過去,甚至把學長學姐的改改就能交;過於看重期末,佔比太大。不誇張的來說,你可以四年不寫一行代碼全年級第一的成績順利畢業
2. 大多數老師實踐水平太差,某著名實驗室幾乎一半老師埋頭寫vc6.0和mfc,各種用十幾年前的API,最新的標準見都沒見過,又怎麼交學生呢?看到樓上還有強制提交git,恐怕很多老師自己都沒用過git吧(笑)
3. 教學沒有設計,幾乎每門課都有失衡,特別是幾個核心課程。編譯原理總共講到lr1文法,後面優化,後端實現一句沒提,操作系統,微機原理基本上都是跳著講,很多很重要的甚至是核心的技術不知道為什麼就跳過去了。當時學完就感覺xxx不重要,後來才發現xxx才是這門課的核心。
4. 課程設計脫離實踐太遠。大多數人對於標準毫無概念,寫出來的大多數都是廢代碼。當然老師根本不care這種問題,甚至我估計我們交上去的代碼老師看都不看
5. 完全沒有逼人自學的課程。看到樓上還有課程設計要學Haskell的,甚是羨慕。如果想要的話,可以從頭到尾全程貫穿c++(比如我),完全不碰別的語言,也完全不用新的標準
補充一句,馬上出國讀master了,說實話我寫的那點代碼,做的所謂的畢設拿出去都覺得丟人,基本上就是國外一周的工作量……唉,希望能在國外好好乾,學點東西吧
國外默認是美國。
我來說說優勢:
國內的CS學費和書本費都很便宜,不吹不黑的說,你在國外就光是上學這一塊價格相差不止百倍。
比如我本科念書那會一學分八十,人民幣,課本最貴的也超不過一百,人民幣。
讀(授課)研的時候,一學分一千五,刀,課本最便宜的也得七十多,刀。
至於別的費用差距,比如你吃一頓在國內都不會吃的難吃盒飯會收你十幾,刀。
比如住宿費沒個幾百刀都下不來,然而實際的生活條件並不比國內的集體宿舍有多大提升。(除非你極端看重一個人獨處的空間),列印材料,理髮,通勤,洗衣,買東西(除了很貴的東西),都是國內要方便且便宜得多。尤其是能方便快捷地吃到好吃的中餐。
而且說實話,肉體脫離了自己所在的文化圈本身也是一個debuff。
我以前以為這些事都不重要,直到失去了以後……
然後再談談劣勢:
國內的師生比相較於國外低太多,這邊一門課一個班的註冊學生不能超過三十個人,一個老師一門課一學期貌似只能開兩班?我的三哥老師貌似一節課已經能把人認得七七八八了,這在國內的話,很少出現這種小規模班,老師也顧不過來學生。 這個問題目前在國內也是個沒有辦法的事。
國內課業太松,管理太混亂, 原因同上。
網路問題,其實對本專業來說影響挺大的,這個原因大家也都知道,暫時也沒有看到解決的希望。
不過我還是想說,谷歌及谷歌學術之前是可以用的,直到我包登基後的某一天。如果說別人蛋逼中國事務上有一個東西讓我完全挺不直腰杆子,那可能就是網路問題了。(這是個現實問題,因為有些雜碎跑到你面前來扯中國的短長的,目的其實是來貶低或者噁心你本人的,真不是盼你好,別以為這種事情不存在。)
國外學校機房用的軟體都是正版,並且也會給學生提供課堂所需要的軟體安裝(也沒那麼美好,有些商用軟體只允許你在學校網路下使用),我常常會想起國內專業課的第一件事是告訴大家怎麼對付破解軟體。
不過說實話,你在國內買正版軟體也行啊。總比這邊學費便宜。我倒寧願少交些錢,需要的軟體讓我自己去買吧。
就醬
時至今日還在用VC6教MFC的水平
我也讀過一些國外的教材(如演算法導論等),上網看過某些大學的教學視頻。總的來說,排除老師因為賺錢教學生寫一些垃圾教材然後強行發給你們讀以外,其實我國教學水平也沒有差到哪裡去(因為都很差,而且國外的老師們夾帶的私貨排山倒海,還不如我國老師自吹自擂好)。國外很多好的學校的老師代碼也是寫得一塌糊塗,然而他們有一個優點:
就是如果你學不會,就絕對不讓你畢業。
要是我國也可以做到這一點,那所有本來能畢業的人,都會被逼成牛逼的人,而那些本來就不能畢業的人,就還是讓他們拿著高中文憑找工作好了。總的來說比現在的狀況要強得多。之前旁聽了人大信院的一些課,大概說一下:
大一上的C語言,我16年下半年聽的時候好像還是譚浩強,但是老師講課的時候似乎會脫離課本來講,然後從截圖上來看,IDE基本上都換成Code::blocks和Dev-Cpp了;
大一下數據結構暫時用的嚴蔚敏(今年可能換了),其中一門上課的老師是我未來的導師——他16年好像是第一次上課,坦白地講最初幾節課還是有些生澀,但是後來就講得順暢多了。
大二離散數學以前用的是我校自己編的書,16年換成了北大版離散數學原理——總算是比之前好些了,然而依然給我的複習帶來了巨大的痛苦……
面向對象用的清華鄭莉的C++書,這本書在我看來非常出色,然後有同學也會自己看學堂在線上的MOOC,機房的開發環境用的是VS2012,用來學習不涉及大部分C++11的部分也是足夠的(一般寫個auto它也認)。
大二下半學期操作系統以前用的湯子瀛,從今年開始改成《 Operating Systems: Internals and Design Principles 》,實驗的話我就見過幾個,有shell編程,有練習使用Linux系統調用,最近還有要求自己模擬實現一個文件系統……
然後編譯原理……我就不說啥了。我之前跟一個未來同組的同學一起吃飯,他說他們當年編譯原理也是強刷作業題,考完試就扔……
大三的課只聽過一個演算法設計與分析,教材現在改成演算法導論了,其他的不評價
國內
優點:不掛學生,都讓畢業
缺點:不掛學生,都讓畢業
PS, 第一名所說的PRML, 教授本科生還真是扯犢子, 別管人老師能不能擼完。
還有什麼CISC、RISC不教, 笑笑就完了, 都是通識課, 何必什麼東西都整那麼新呢, 不是什麼東西都是在課上學過才算學過的。說一下我交軟院作為參考吧。
1. 沒有導論課。反正大一的寒假是沒有任何作業的,自己讀《黑客與畫家》或者《浪潮之巔》就好了。
2. 大一的課設是擼遊戲,大二是web和移動任選其一。比賽和實習(大三及以後)可以充當小學期的課設。
3. 大二的cse以及暑期課設強制使用git。git是個好東西,不僅僅體現在social coding上面,等你電腦壞了就知道了。
4. web開發是必修的,放在資料庫的課裡面作為大作業。除此之外,資料庫的課本是帆船書,考試考sql編寫、範式和隔離級別。(據說現在這兩門課已經拆開了)
5. 系統相關的專業基礎課(ics12、cse)以及限選課(os、分散式)都是照搬cmu或者mit的課程,不僅僅是教材、ppt,還有網站也是。一條龍服務。
6. 我就沒碰到過幾門課的幻燈片是中文寫的。書的話基本是華章那套,有譯本也有原版可供選擇。我一般是考前看譯本,考後有時間了再看原版。
7. 需要用到java的課很多。不是課程硬性要求,我想用c#,但是苦於找不到相關的庫。
8. 全學院的課,不需要寫代碼的,應該只有軟體工程、信息系統工程和工作流的那門課。
9. 課設非常重視文檔和測試,甚至有交叉測試,這跟企業裡面的環境是一致的。
10. 數據挖掘也是拿比賽當大作業。我這屆是emc杯。
11. 演算法平時的作業是刷OJ,難度級別是A級,也就是懂得相應模型就能做的題目。工程向的難度,沒有到競賽難度。但是面試前還是要刷leetcode的,這次校招我就碰到過不少原題。
12. 專門講編程語言的課程只有大一的程序設計。其他課程無論用到什麼語言,都默認你學過。
13. 雖然某boss一直強調資料庫是最實用的課程。但我還是覺得ics1更好玩一點,學了這個就能入門破解了。話說回來我在很早之前就會玩破解了。
14. csapp(ics12用到的書)裡面的pipeline部分很坑,如果講課的時候能換成量化研究方法里的mips會好很多。--某學長如是說。
15. 數據結構參考自斯坦福的cs106b,到我們這邊變成了se106。這門課在斯坦福只有小作業+考試,到我們這邊變成了小作業+lab+大作業+考試。四位一體的課應該只有這門了。(然而據說大作業在14級的時候已經沒有了。)
16. 很少有課程上課簽到。很少有課程的作業比重低於40%。所以說平時好好做作業,要掛很難。
17. 國內的話,課程還是挺多的,除了專業課之外,還有通識課21學分,任選課20學分(據說我們下一級降到10了),還有體育(4)和兩課(22),和不算在任選課里的英語(8)。國外的話,別看哈佛它們的通識一共45學分,但這個是包含體育和英語的。它們除了通識課就是專業課,除了專業課就是通識課。通識課在國內已經。。。怎麼說呢,為了設置而設置。
18. 在國外的同學跟我說,國內的se是國外的cs,國內的cs是國外的ce。不過都比自動化這個「大雜燴」要好得多。沒有優,只有劣
感覺兩邊課都是教個大概,考試考個大概。CS大部分知識要靠自己學。
唯一不同的是國內就期末考一次,考勤記分,平時作業啥的不記分。期末一把決GPA。
美帝這平時考好幾次,作業佔分不少。考試可以帶cheating sheet。平時跟老師處得好本科就能在老人家手下做research(翻成中文就是幹活)。
)優勢就是
國內讀大學輕鬆
國內讀大學輕鬆
國內讀大學輕鬆
沒在國內上過大學 讀完高二出的國 國內大學具體啥情況不知道 不評論 國外其他大學也不了解 不評論 怕被噴 說說我們大學的情況 樓主可以跟國內的情況比較一下
我現在在滑鐵盧大學讀CS 加拿大大學 不在歐洲 不在歐洲 不在歐洲 加拿大cs排第一 世界cs排第18(沒清華排的高 沒啥值得炫耀的 我覺得國內上一本的英語好點都能上我們校)加拿大成長最快的大學(50幾年歷史) 加拿大作業最多的大學 加拿大唯一一個女生比男生少的大學(苦逼吧)一年3個學期 每學期將近4個月 學期之間有兩周休息
讀這大學的感覺就是累啊 太nm累了 身心憔悴啊 我不是學霸 只能勉強應付學業 每周的日常就是 寫作業 寫作業 準備期中考試 寫作業 寫作業 準備期末 基本就是這樣的 為了寫作業一兩天不睡也是常有的 國內的同學長長吐槽我為啥要做學校留的作業 作業分是跟期末分掛鉤的 專業平均分低於60分你就滾蛋了 所以畢業是有難度的
至於講課嘛 教授也有好有差啦 好教授我們就好好聽課 碰著渣的就去youtube上聽斯坦福 MIT的公開課總之網上什麼都有 不聽課也一樣 所以師資力量不是個問題
老師自然有NB的 例如
有個教授把c++一大本書的內容濃縮到一學期的量 而且講的通透
演算法課講的演算法就有我們教授發明的演算法
操作系統課是哈佛編出的系統 我們校在那基礎上改的
彙編課的編譯器是我校自己編的
線程課的語言是一個教授自己編的 所以只有他自己能教那課
但是這些東西網上都有 願意學自己上網搜
還有好多朋友說教材問題 我很負責任的告訴你 我上到大三一本關於cs的書都沒買過 一本書100多刀 買不起啊 而且全是字 誰看的下去 開學教授會推薦幾本相關的書 圖書館都有 你可以去看 但是我是學渣 沒看過 教授講的東西都是從書里提練出來的 因為一本書那麼長 一個學期是不可能講完的 基本都是你學一種東西里最基本的 和最重要的 學校會把老師講課的ppt印出來你可以去買 這就是所謂的教材了
這些網上也都有
推薦閱讀:
※在學校門口賣鐵板魷魚的大二女生,以後會有什麼發展?
※八歲開始刷知乎,刷到二十歲時,知識量能達到什麼水平?
※為什麼出身至上論的黑童話《醜小鴨》會被人們不斷講給孩子聽?
※美國如何開展愛國主義教育?
※《爸爸去哪兒》第一季中哪位爸爸在教育上的表現最好?
TAG:教育 | 大學教育 | 計算機科學 | 國內國外 | 普通高校本科層次(大學本科) |