對世界和中國來說,人才培養是非常重要的使命。而對大學來說,這是一個最重要的任務,因為培養人才、培養高級人才是大學最重要的基本任務。胡錦濤總書記在清華大學百年校慶的慶祝大會上特別指示我們,全面提高高等教育質量,必須要大力提升人才培養水準,高等教育的根本任務是人才培養。吳邦國不久前訪問清華大學時做了重要講話,他指出,一流大學應該成為匯聚優秀創新人才的重要平臺,成為培養創新人才的重要基地。所以,在中國,從最高領導人到每一位教師,大家都深切感受到培養人才是大學教師最重要的任務。
近三十年來,我們中國在計算機科學的研究和教育領域都有驚人的進步。回想三十年前,二十世紀八十年代時,我在斯坦福大學教書,第一次見到國內派出學習高級技術的教師。他們對世界上計算機科學的研究重點都不清楚,而二十多年后我們再次相見時,他們已經成為院士,對中國計算機科研和教育水平的提升起到了重要作用。現在,無論是在清華大學還是在其他學校,我們和世界的接軌和交流已經變成非常平常的事情。我們的學生有很多機會和國際學者交流,清楚地了解到世界上計算機科學研究的重點和方向。如果基礎水平很好,現在在中國做研究和在世界任何地方作研究的差別并不是很大,所以我認為現在的研究環境有了很大改變。
現在最好的國際會議和雜志上都有很多我國教師和學生的成果發表,所以,我國這三十年的進步是非常驚人的。在座的各位教師在大學從事培養人才,提高研究水平的工作,確實都值得祝賀。這是一件光榮而艱巨的工作,在世界歷史上也是一件空前的事情。我國在過去三十年培養的計算機科學人才,在信息時代的工業、管理、社會等領域都擔當了非常重要的職務,履行自己的職責。從這方面講,中國大學承擔了相應的歷史使命,做出了杰出貢獻。
但我們不能感到自滿。因為我們現在雖然經過三十年的經濟增長,但經濟水平還需要再增長十年,才能跨入先進水平行列。以后的增長,不能只依靠廉價的人工成本和組織能力,更要依靠知識產權、高技術科技成果,爭取競爭的優勢。所以,我們的任務不僅是了解和參加世界計算機科學的研究,同時必須爭取領導的地位。本科生、研究生教育必須加強,我感到整個教育鏈和研究鏈是不能脫節的。我2004年到清華,想招收幾個研究生從事研究,但發現本科生的基礎不夠,很多應學的知識他們不知道。所以,要訓練好的研究生,必須從本科生做起,培養一流的本科生,才能培養一流的博士生和一流的研究人員。要創造良好的環境,讓學生從大學學習開始,一直到做教授,都有最好的研究環境,做一流的工作。
如何做好這幾件事呢?培養一流的博士生和創造一流的環境,這與一個國家的整體水平相關聯。想要科技發展,必須要在經濟、制度上達到相當高的整體水平,才可能培養出一流博士生。因為如果沒有一流科學家在尖端做研究,我們怎么能希望研究生超越老師?我們的目標是能夠指導一流博士生,給研究人員一流的環境,但這需要至少10年的漫長時間。
但要培養一流本科生,沒有培養一流博士生和研究人員那么困難。在3~5年的時間內,我們經過努力,可以讓我國院校的本科生達到世界一流水平。國家非常關注本科教育,最近教育部和中組部提出培養頂尖人才計劃,在中國十個大學的基礎科學領域(包括計算機科學)開展這項計劃,特別支持拔尖人才培養。
如何在計算機科學領域培養拔尖本科生?歷史上很多組織和機構都討論過這個問題。大家都了解到,培養一流人才不只一種方式。世界上好大學的培養方式并不一樣,每個學校都有特別的校風和培養理念,但他們都能夠殊途同歸,都能夠成功。因此,人才培養有不同模式。IEEE和ACM曾經多次組織大規模討論,研究人才培養問題,提出3~4個不同的可能模式,如有些學校計算機本科生的基本進度是一樣的,但是在某些不同的時刻,針對不同的現象加以疏導,培育;有些學校開始就看學生的學習傾向,是想做應用還是想做系統,還是想做理念研究,根據不同的需要設計不同的課程和進度,這些在文獻中可以查到。對任何一個教育研究者來說,我們有充分的經驗選擇和討論某種模式。如果每個學校認真做這件事,都可以有深刻的反思,選擇一種適合本校學生和特點的模式。
我今天主要談一談我過去六年在清華辦計算機科學本科教育的經驗。我們采取的是一種特別的、適合清華學生的模式,希望對大家能有參考價值。
清華大學計算機科學實驗班于2005年開始招生,去年中組部和教育部的拔尖人才培養計劃開展后,我們叫做“清華學堂人才培養計劃”。這個計劃有6個班,包括數學、物理、生物班等,也包括計算機班,我們的目標是培養最好的、有創新潛力的計算機科學本科人才。
要培養最先進的計算機科學人才,我們認為我國的學生仍有些問題需要解決。問題不僅是本科生缺乏本研究領域的深入理念,而是所有計算機科學優秀人才應該具備的知識,我們中國的學生有欠缺。仔細思考國內計算機本科教育,優點是中國學生的工程能力很強,因為在計算機科學和技術方面,我國比較偏重技術層面,這和中國這個學科的歷史有關系,所以我們認為計算機學科要培養程序員,進各種公司,從事服務性工作。但是計算機科學在近四五十年來發展成自己的系統,有與眾不同的理論思考和實踐、研究方式,因此中國對計算機科學的研究基礎是比較欠缺的。而在國外,計算機科學與技術系在有些地方屬于管理學院,有些地方屬于工程學院,但其科學和工程兩方面的重要性是大家公認的。第二個方面,本科生教育沿襲了從中學開始就注重知識傳遞的教學方式,這是老式的不合時宜的方式,好處是只有基本能力很強,但我們的深度思考訓練不夠。教師無論備課,講課,出習題,出考題,除了讓學生記憶基本事實和公式以外,還要培養他們必須具備自主思考的能力。一個很好的科學和工程人才,他受到過良好的教育,你問他一個問題,即使不是他的專業或本行,他必須有一定的思考能力,和你產生一個積極的對話——這是我們的教學中比較欠缺的方面。所以我在國外遇到我們的學生,他們讀研究生的時候,一方面是有些問題他們不知道,他們要多修2~3門課程,才能達到和國外學生相同的水平。另一方面,他們使用以前教育獲取的思考方式,因此在新的課程中不能適應,學起來很困難,需要相當長的適應過程。所以我們的教育必須改進。而以上這種問題和缺點,不僅涉及學生學習的問題,如果我們國家想要產生經濟上的高科技創新,能夠擁有知識產權,這是致命的缺點。
如何解決以上問題?我們必須明確中國、清華現有的優勢,利用我們的優勢彌補這些缺點。和其他發展中國家相比,我國有特別的優勢,我們必須要了解、運用這些優勢,不能只想著我們要像美國一樣,畢竟我們有自己的國情。我1976年到1986年在斯坦福大學和加州大學伯克利分校的計算機系任教,當時普林斯頓大學的計算機系很保守,他們花費十多年的時間討論計算機科學是否能成為一個獨立的學科。一直到1985年,他們把當時的電機系分成電機系和計算機科學系,新的計算機科學系只有七八個教授,在這之前這個系完全沒有地位。1986年我過去,計算機系剛開始建。建系后,如何使其成為世界一流的計算機系?普林斯頓大學有底子,只要有人投資,領導有方,廣納賢才,大家都愿意到普林斯頓。從1985年到1993年,短短幾年時間,該系就成為美國NRC報告(調查全美大學教學研究水平的權威報告)中計算機專業的第六名。
我國的國情和美國不同。對我們來說,資源很重要,是必要條件,但這還不夠,如何吸引到人才,這才是關鍵。下面我談一談我們的理念。
第一,課程要跟上時代。學生該學的一定要學到,要能夠學到最精品的課程。對核心的觀念和知識,他們要學得非常精通,就像在數學系把微積分和線性代數真正學好一樣,這樣就會打下堅實的基礎。那些認為學得好就是能夠知道很多名詞,背很多定義的做法應該摒棄。
第二,上課的目的要能引發學生興趣。中國的學程很長,清華有18周課時,其中16周上課,2周考試。這對于傳授知識當然很好,但事實上不一定要這么長,上課的目的是讓學生知道這門課是怎么回事,知道本課的核心問題是什么,為什么這么精彩,這么有用,他就會主動學習,主動閱讀課外書,就會涌現出一些好的學生。完全按部就班,聽老師上課的學生絕對不會是最好的學生。作業的目的是激發好學生的想象力,而不能是體力活。中國的學生做作業做得很辛苦,很用功。較好學生和較差學生的感覺都差不多。因此不應該用大量作業占用學生的時間。應該讓好學生學得更多,讓作業有難的、中等的、簡單的,讓最差的學生能學習到基本知識,將來也能為社會作貢獻。即使針對好的學生,他都會覺得整個作業完成得不容易,即使最好的學生,都有題做不出來,這無關緊要。
第三,培養學生要有討論的能力。我認為中國學生有這個能力。清華有些學生的膽子很大,譬如我很喜歡的一種學生,我提出問題,一個學生從課堂后面舉手,我問他是否知道如何做,他說不知道怎么做,但走到前面就知道怎么做了。教師要培養學生的膽量,即使不知道怎么做,到黑板上講一講,大家討論一下,就能夠有所收獲,這就讓學生在課堂上有展示的機會和舞臺。我的課至少有一個小時給學生討論,學生很高興,有機會參與意見。這可以培養他們的合作能力。下面我舉個例子。
例如我在講大一下學期的Mathematics for Computer Science這門課時,有一年和學生討論一個問題,即拜占庭將軍問題(The Byzantine Generals Problem)。有一個元帥和三個將軍,他們各帶一支隊伍在城邊駐扎,明早可能攻城,也可能不攻。在軍事上應講究一致,要攻一起攻,不攻就各自待命。元帥傳達命令時沒有電話,只能騎馬傳遞消息。最簡單的方法就是元帥告訴他們三個人一起攻城。但這里有一個問題,拜占庭帝國情況復雜,各種種族斗爭激烈,這4人里可能有一個是叛徒,但并不知道是哪一個,因此我們不知道他們每個人講真話還是講假話。問題就是,用何種方法傳達命令,達到以下效果:如果元帥是個好人,其他所有人都服從他的命令。如果元帥是個叛徒,所有其他人都要做同樣的事情。
這個問題是計算機系統中非常著名的問題。如果實施探月計劃,搞不清楚3個計算機中哪個壞了,使用4個計算機就可以搞定。在最精確的計算機控制中,要預防最壞的情況,只需要4個計算機即可。我上課時告訴學生有4個計算機,其中1個可能壞了,請學生討論一下如何知道哪個壞了。如果有7個計算機,有2個可能壞了,討論如何解決這個問題。學生用1個小時,討論了3個可能方案,但結果都是正確的,雖然中間錯誤很多,但討論過程很精彩。設計這個問題的人說,這是他所遇到的最復雜的問題。所以我們的學生非常優秀,我們要給他們一些問題,帶領他們解決問題。
另一個理念是給本科生提供參與研究的機會。世界上最好的本科生,在三、四年級的時候,都有研究和發表論文的經驗。國際交流很重要,我們要讓學生見到世界一流的科學家和學生,習慣于與國際一流的教授和學生交流,這樣每個人的水平都會提高。我們為該班設計16門核心課程,包含最核心領域的課程,全部采用英語教學。除了核心課程,還有很多別的課程供學生選修。我們采用階梯式培養方式。一般工程系的第一年都是講授平臺課程,學生對計算機科學沒有新的了解,但我們要求他們畢業時的專業基礎很好,因此我們在第一年和第二年基本上把學校三年的課程教完,從第三年開始,讓學生有多一些的選修機會,讓他們去發現探索,是對基礎研究有興趣,還是對系統應用有興趣。他們可以選擇他們想要的核心課。三年級下學期,學生開始分組,他們和不同的老師做初步研究工作。第四年基本沒有任何課程,全部學生參加研究團隊,有些在研究所,有些在系里,我們希望他們作些研究,寫出些論文。我們對本科生有一個培養計劃,希望有些好的本科生參加我們的研究團隊,給他們更好的培養。
我們的師資中有18位教授,其中8位是外籍教授。我并不是想說我們的師資有多么堅強,而是想表現出這個計劃的師資并不是很多,但這樣一個團隊完全可以成為一個很好的本科培養團隊。今年伊始,我們派出學生和MIT的本科生一起生活和交流。今年去的2位學生都和研究生一起工作,他們認為同班本科學生的水平遠不如清華計算機科學實驗班。但他們班有1~2個特別杰出的優秀學生,這種培養系統給有天分的學生很好的平臺。
從第1屆學生開始,我們這個培養計劃已經招收了7屆學生,其中3屆學生已經畢業。他們都是在信息科學和數學奧賽中賦有天分的優秀學生。已畢業的學生中,有42%的學生留在清華讀研究生,50%多的學生出國留學,少數進入企業工作。今年即將畢業的學生也有很多申請出國留學。我們這個培養計劃培養的學生在國外樹立了良好品牌,本科生達到了國際水準,后面留學的學生也更加容易申請。
另一方面,我們還有很大的空間可以改進。
首先,我們的教授人數少,精品課程數量不夠。國外一個班中最好的美國學生不是我們能培養出來的,因為他們的基礎條件特別好,一個系有四五十個教授,每年開設不同的課程,本科生可以選擇自己最喜歡的課程,跟老師去學習,由老師啟發學生學習。我們沒有這種條件。所以我們要想實現人盡其才,讓最好的學生充分發揮能力,就需要更多的課程,更多的老師,承擔更多的事情。
第二,我們要花心思研究基礎課。國外一個老師教基礎課,尤其是開始的入門課,要花很多時間和精力。而我們的教師覺得基礎課不是很重要,花費的心思和精力都很有限。這就制約了學生的基礎。我們的學生能力強,基礎好,十分聰明,可以自學,但自學和教師教的效果完全不同。
第三,我們教師要更多地接觸和了解學生,深入了解他們的需要,和他們有精神上的溝通和交流,尤其是好的學生。
總之,在培養一流本科生方面,我們做了很多工作,但也有很大的改進空間。我們可以更上一層樓,不僅要培養與國際一流大學一樣的本科生,而且要培養比他們的學生更優秀的本科生。