1. 程式人生 > >在麻省理工讀計算機專業,看美國的計算機教育(轉載)

在麻省理工讀計算機專業,看美國的計算機教育(轉載)



從生源上講,美國沒有那個學校可以把全國各省的理科狀元和前十名大半收入囊中。MIT雖然始終在理工科方面獨佔鰲頭,但是加州理工學院、 Stanford、Berkeley等名校並不遜色太多。像Stanford更是以地處矽谷、生產楊致遠型的資本家而獨具吸引力。從優秀學生的聚集程度上講,大概MIT加上Stanford都不足以與清華一拼。


TOEFL和GRE畢竟沒白考,上課能聽懂百分之八九十。本來用於錄老師講課內容的單放機只帶了一次,也沒開錄,後來再也沒帶過。閱讀課文也沒有太多的困難(哪有GRE歪詞那麼多)。美國學生實在是基礎差,又不用功,一百分的作業得不到五十分的一般都是美國人。(日本、印尼等其他國家人的英文名字讀起來可沒有美國人的那麼順)。但是,這裡的課程負擔可實在是不輕鬆,一般來說,選三門課上是標準(不少人只敢選兩門);能上四門課的人堪稱不同凡響;五門課?最好不要想。


我在這裡的第一學期上了一門叫《計算機系統設計》得本科課程,其辛苦程度真實一言難盡。十五個星期內交了十次作業,作了六次課程設計。有的設計還分幾個部分,分開交設計報告。所以設計報告大概也交了有十次左右。最恐怖的是有一次,十天內要交六份作業或設計報告,而且當時正值其他幾門課正在期中考試。抱怨是沒有用的,老師說:"我很抱歉。但這門課很重要,請大家不停的工作。"學生從一般的邏輯時序電路開始設計(數電都已忘得差不多了);核心是自行設計"麻雀雖小五臟俱全"得ALU,單指令週期CPU(single cycle CPU);多指令CPU(Multi-cycle CPU);以直到最後實現流水線(pipe line)32位MIPS CPU和Cache。一門課下來,所有與計算機CPU有關的知識全部融會貫通。硬體設計水平也有了很大提高(就是太累)。


在清華的本科課程中實在找不到這樣一門如此實在的集理論實踐於一體的課程。計算機系的TEC-II型試驗計算機幾經是全國獨家了,但是試驗安排並沒有觸及核心(TEC-II機是微指令時的計算機)。缺乏動手設計環節是學生對CPU原理的瞭解比較膚淺。


當初我作微指令實驗時曾由茅塞頓開的感覺,但是現在才發現遠遠不夠。至於全校性選修課《微機原理》的水平就不用說了,至今我想起老師的一句話還有些心痛-- "學通了八位機,十六位機、三十二位機的原理是一樣的",MIPS怎麼可能和十六位CPU相提並論?在anford,本科生也有相似的計算機系統設計課程,但是要求學生用VHDL語言(當今IC設計標準語言)實現,清華的本科生由幾個會用VHDL?在清華曾上過《作業系統》這門課,要在 Linux基礎上作四個project,六個人一組,可以期末一起交。我在計算機系的同學直到期末前兩三週仍叫我不必驚慌,說最後一兩週內定會有牛人做出來,大家都可以搭車。我在這裡的情況則不同,也是四個project,三個人一組,每三週交一個project。


如相似之處過多,當即受到質詢,處罰辦法抄者被抄者各扣50分(滿分100),被罰者早有先例。交作業時間是某個週日晚11點59分59秒,網上交作業,半秒鐘也不許拖延,到時間傳輸停止工作,誰也交不成。所以大家只有坐下來勇敢的面對困難。


其實,三個星期短得不合理,因為第二個星期與Project相關的課程才講完。唯一的方法就是熬夜--第三個星期,從晚上九點到凌晨兩三點,公共機房的數十臺工作站前座無虛席,幾乎每個人都要連續熬夜;凌晨三點有人開始支撐不住,而熬到六七點的也不乏其人。教師在上第一節課時曾展示過一塊白布,上書"我宣佈投降"和幾十人的簽名。這份由敗在Project手下的學生贈送的禮物被老師懸掛在辦公室的牆上。而我對這門課的感覺只有一句:我開始明白操作在清華,計算機系的《作業系統》和《計算機原理》是體現了其應有的份量的。


再有像美國的VLSI設計課程在清華很難找到其應有的設計實踐效果。這裡的VLSI設計課程上到深處,學生就可以做出實實在在的ASIC晶片,然後拿著自己的設計去矽谷或別處工作面試,說:"這是我作的東西。"清華大概沒有真正的"企業級"積體電路設計試驗課程--這也不奇怪,全中國現在都在作板子而不是" 片子"。美國大學的教授對授課的認真程度有高下之分,但任何教授都不允許抄襲。這一點我在前面已經提到了一些。有一個教授的話很據代表性:"發現抄襲很難;但我會竭盡全力。"

另一個共同特點是他們上課一般不會沉悶的讓你想睡覺。它們的幽默雖不像新東方的宋昊那麼多,但是往往恰到好處:比如一個教授說"有的黑客只是看一看,就像女人逛商場";有一個教授每當學生回答出一個較難的問題時就贈送一美元;一次課堂上學生回答問題時說"這要看實際情況(Itdepends) ",教授對大家說"怎麼像政客說的話"......總之,這裡你一般碰不到在清華常見的"面蘋果"老師。比較認真的教授的責任心是令人欽佩的。一個教授在學生課程最重的時候,把家中的電話留給學生,告訴學生說晚十點前可以打電話請教。我有一個同學修一門課,最後一個Project做到半夜三點時完工,大呼輕鬆之餘上網解悶,發現一封新的E-mail,原來授課老師也工作到半夜三點,有設計了一個新的Project叫學生作。


再比如說美國教職人員活著很不輕鬆,一般沒有國家投入這一說。如果自己不能做出成果拿到企業界的資助,處境就會相當艱難。助理教授(assistant professor)升副教授可不像國內這麼容易。在princeton,五年內拿不到終身職位(tensure)就請捲鋪蓋走人。Princeton 大多助理教授都是這種命運。我所在的學校化學系的一個教授就是被princeton轟出來的,現在已經是某個領域中的帶頭老大一級的人物了(天啊, princeton也太橫了)。像這種人,Princeton 又會利用其巨大的名望、優厚的待遇和良好的研究條件把人吸引回來。


前幾天和國內同學聯絡,聽說一個現在是直博生的本科同學一學期要修九門課,下學期則專門為老闆出差。另一個碩士生一學期中半學期曠課為導師出差。首先以美國的課程標準,這樣做大概死定了;其次,美國教授一般會讓自己的學生多參加研究工作而不是做重複性專案。美國的博士生一般有一個資格考試,在碩士期將近結束時進行。形式時提出一個新興課題,擺出方案,由五人評議小組稽核課題的新穎程度,意義和方案可行性等。通過資格考試,你才可以在這個課題上開始你的論文研究。如果評議期間有人就同一課題發表了階段性研究成果,你就必須修改課題甚至從頭再來(作一次要看遍所有相關論文,還要做準備性的研究,要半年多時間呢,全廢了可夠點背的)。準備資格考試過程中還要修課呢,誰有時間出差?好多教授都讓學生全心準備資格考試。

這種考試算輕鬆的, UCLA和加州理工學院的化學系博士資格考試有這麼一項:幾個教授從某篇新發表的文章中(博士生大概還讀不到或並不在專項領域內)提取課題,讓博士生在兩三天內提出解決方案(人家可是作了好幾個月才發表文章),以此測驗學生對前沿研究的敏銳程度。這種考試有時一個通過的也沒有。合格標準是十次中必須通過四到五次,過不了就對博士夢說永別吧。導師也許會幫助說話,但是像加州理工學院明確規定,百分之二十左右的博士生再優秀也拿不到博士,我可知道一個北大生物系的女生berkeley苦戰四年,最終落馬,現在矽谷某生物公司工作,年薪兩萬多(這點錢在物價飛漲的矽谷可不太好混)。


據說,加州理工學院六年博士畢業者就是天才,MIT有些博士生則耗時九年。清華的博士水平是很高的,但有時導師會讓學生不用參加自己開的課的考試,有時會在該做論文研究時讓你出差,然後再想辦法讓你的論文不戰而勝......作業系統》這門課的MIPS模擬平臺和基礎程式碼(不是Linux或 MINIX)是由berkeley的一位教授設計的,現在為多個大學採用。值得注意的是這是一個非盈利的專案,對於這位教授的升遷和獲取工業界的資助也沒有任何幫助,而且不知耗費這個教授多少可用來做專案賺錢的時間.本文寫到此處,我不禁懷疑自己太悲觀或是忘本,TG期間我也是靠課程輕鬆和抄兄弟們的作業才挺過來的。但我清楚,即使像VLSI這樣的硬體拋開不說,清華的課程管理決不能與MIT相比,也許六十年代是可以的。每一個清華人在海外都享受著清華兩字所帶來的榮耀,我衷心希望清華成為一個讓平庸者卻步,讓挑戰者興奮,讓優秀者更優秀的世界級學府;而不是隻靠名氣招攬人才卻只提供平庸的教育。這才是我寫本文的初衷。