2003年,在工程院院長(zhǎng)david daniel的倡導(dǎo)下,計(jì)算機(jī)系對(duì)教學(xué)計(jì)劃進(jìn)行了改革,以反映目前社會(huì)、行業(yè)和技術(shù)的發(fā)展趨勢(shì)。主要的變化有:
* 在必修要求中增加了兩門(mén)編程課:cs241 系統(tǒng)編程,采用gary nutt的《操作系統(tǒng)》作為主教材,stevens的《unix環(huán)境高級(jí)編程》作為編程教材;cs242 程序設(shè)計(jì)實(shí)驗(yàn)(programming studio),教學(xué)大綱基本上以kernighan的《程序設(shè)計(jì)實(shí)踐》為藍(lán)本(以上教材機(jī)械工業(yè)出版社均出版了中譯本和影印版)。
* 必修要求中增加了一年的高級(jí)項(xiàng)目,強(qiáng)調(diào)團(tuán)隊(duì)合作和軟件工程實(shí)踐,包括文檔寫(xiě)作、口頭表達(dá)、項(xiàng)目規(guī)劃與管理等,實(shí)際上是在實(shí)踐中學(xué)習(xí)軟件工程。這門(mén)課也可以用兩學(xué)期的軟件工程或者一年的高級(jí)論文代替。仍然充分保留了靈活性,有利于因材施教。
* 增加了cs173 離散結(jié)構(gòu)的學(xué)時(shí),部分原cs273的內(nèi)容移到這里,同時(shí)cs273又新增了原cs375的內(nèi)容。這實(shí)際上是提高了對(duì)計(jì)算機(jī)理論的要求。
* 在專(zhuān)業(yè)課程中增加了數(shù)據(jù)挖掘、信息檢索和高級(jí)圖形學(xué)。
cmu(卡內(nèi)基梅隆大學(xué))
與mit、伯克利等學(xué)校計(jì)算機(jī)科學(xué)仍然和電子與電氣工程同處一系不同,cmu的計(jì)算機(jī)科學(xué)系成立于1965年,是全美最早的,如今它已經(jīng)升格為計(jì)算機(jī)科學(xué)學(xué)院。其研究生項(xiàng)目中除了機(jī)器人方向與硬件關(guān)系較多之外,其他基本上都是純軟的。從這個(gè)意義上來(lái)說(shuō),cmu的教學(xué)體系對(duì)于偏軟的計(jì)算機(jī)科學(xué)系應(yīng)該有較大的借鑒意義。
cmu的教學(xué)手冊(cè)上沒(méi)有從傳統(tǒng)意義上針對(duì)計(jì)算機(jī)科學(xué)專(zhuān)業(yè)學(xué)生的導(dǎo)論課,雖然有名為“計(jì)算機(jī)科學(xué)偉大思想”的兩學(xué)期課程,但是從內(nèi)容上看應(yīng)該是離散數(shù)學(xué)的替代,因?yàn)榇送鈉mu并沒(méi)有其他離散數(shù)學(xué)方面的課程。此課程沒(méi)有教材,內(nèi)容比傳統(tǒng)離散數(shù)學(xué)要靈活得多,涉及概率、代數(shù)、算法、加密理論、復(fù)雜性理論、博弈論等,非常注重學(xué)習(xí)的趣味性和實(shí)用性。
與其他名校相同,cmu對(duì)程序設(shè)計(jì)的重視也給人留下很深印象:本土新生的第一堂課就是“初中級(jí)程序設(shè)計(jì)”,直接講授java。然后是中高級(jí)程序設(shè)計(jì)(java)、c語(yǔ)言編程技巧、高級(jí)編程實(shí)踐(java)、程序設(shè)計(jì)原理(用sml語(yǔ)言講授)。
目前計(jì)算機(jī)科學(xué)專(zhuān)業(yè)教學(xué)計(jì)劃中的一個(gè)難點(diǎn),是硬件課程的設(shè)置問(wèn)題。硬件知識(shí)體系本身非常豐富,但是硬件課程多了,又削弱了計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的特色。cmu在這一問(wèn)題上是怎樣處理的呢?計(jì)算機(jī)科學(xué)學(xué)院的現(xiàn)任院長(zhǎng)randal e. bryant 親自給出了回答,他用15~213“計(jì)算機(jī)系統(tǒng)導(dǎo)論”一門(mén)課(12個(gè)單元)完成了硬件知識(shí)的教學(xué)。這項(xiàng)教學(xué)改革的成果就是一本厚達(dá)900多頁(yè)的書(shū):《computer systems: a programmer's perspective》(中譯本《深入理解計(jì)算機(jī)系統(tǒng)》已經(jīng)由中國(guó)電力出版社出版)一書(shū)。他在該書(shū)的序言中說(shuō):
“本課程的宗旨是用一種不同的方式向?qū)W生介紹計(jì)算機(jī)。因?yàn),我們的學(xué)生中幾乎沒(méi)有人有機(jī)會(huì)構(gòu)造計(jì)算機(jī)系統(tǒng)。而大多數(shù)學(xué)生,甚至是計(jì)算機(jī)工程師,也要求能日常使用計(jì)算機(jī)和編寫(xiě)計(jì)算機(jī)程序。所以我們決定從程序員的角度來(lái)講解系統(tǒng),并采用這樣的過(guò)濾方法:我們只討論那些影響用戶(hù)級(jí)c程序的性能、正確性或?qū)嵱眯缘闹黝}。
比如,我們排除了諸如硬件加法器和總線(xiàn)設(shè)計(jì)這樣的主題。雖然我們談及了機(jī)器語(yǔ)言,但是不關(guān)注如何編寫(xiě)匯編語(yǔ)言,而是關(guān)心編譯器怎樣翻譯c的各種構(gòu)造,比如指針、循環(huán)、過(guò)程調(diào)用和返回,以及switch語(yǔ)句。更進(jìn)一步,我們將更廣泛和現(xiàn)實(shí)地看待系統(tǒng),包括硬件和系統(tǒng)軟件,討論鏈接、加載、進(jìn)程、信號(hào)、性能優(yōu)化、評(píng)估、i/o以及網(wǎng)絡(luò)與并發(fā)編程。
這種做法使得我們講授本課程的方式對(duì)學(xué)生來(lái)講既實(shí)用、具體,又能實(shí)踐,同時(shí)也非常利于調(diào)動(dòng)學(xué)生的積極性。”
網(wǎng)站上的一些隨書(shū)配套實(shí)驗(yàn),也獨(dú)具匠心。因此此書(shū)的成功是水到渠成的。根據(jù)配套網(wǎng)站上的列表,它已經(jīng)被全球80多所院校采用作為教材。
mit(麻省理工學(xué)院)
mit的課程設(shè)置,只能用其學(xué)生起點(diǎn)高來(lái)解釋。該校沒(méi)有典型意義上的計(jì)算機(jī)科學(xué)專(zhuān)業(yè),偏軟的只有理論計(jì)算機(jī)科學(xué)和人工智能及其應(yīng)用兩個(gè)專(zhuān)業(yè)。因此沒(méi)有類(lèi)似于其他學(xué)校的導(dǎo)論課程。
在mit的電子電氣工程與計(jì)算機(jī)科學(xué)系中,所有學(xué)生都要參加如下四門(mén)課程:6.001“計(jì)算機(jī)程序的結(jié)構(gòu)與解釋”,當(dāng)然與伯克利相同,采用的是abelson等編著的同名教材;6.002“電路與電子學(xué)”;6.003“信號(hào)與系統(tǒng)”(自編講義);6.004 “計(jì)算結(jié)構(gòu)”(computation structures),與伯克利的61c“計(jì)算機(jī)結(jié)構(gòu)”對(duì)等(教材是自編課件)。此外有兩門(mén)專(zhuān)業(yè)基礎(chǔ)數(shù)學(xué)課:“概率系統(tǒng)分析”(教授自編教材)和“計(jì)算機(jī)科學(xué)數(shù)學(xué)”,后者的教材是國(guó)外院校普遍采用的rosen所著《離散數(shù)學(xué)及其應(yīng)用》(中文版由機(jī)械工業(yè)出版社出版)。
對(duì)mit的學(xué)生而言,實(shí)驗(yàn)課程有多種選擇:電氣工程和計(jì)算機(jī)科學(xué)實(shí)驗(yàn),模擬電子實(shí)驗(yàn),數(shù)字系統(tǒng)實(shí)驗(yàn),微機(jī)項(xiàng)目實(shí)驗(yàn),半導(dǎo)體設(shè)備項(xiàng)目實(shí)驗(yàn)。此外,無(wú)論何種專(zhuān)業(yè),都有軟件工程實(shí)驗(yàn)課。值得注意的是,本科生各專(zhuān)業(yè)的必修課程中并沒(méi)有軟件工程課程。也就是說(shuō),軟件工程的內(nèi)容都在實(shí)踐中完成了。帶軟件工程實(shí)驗(yàn)課的是因?yàn)樘岢鰈iskov替換原則而知名的女教授barbara liskov,她剛剛獲得了2004年度的馮·諾依曼獎(jiǎng)。作為美國(guó)工程院和藝術(shù)科學(xué)院的雙院士,她幾十年在軟件開(kāi)發(fā)研究方面的經(jīng)驗(yàn),將有力地保證這門(mén)實(shí)驗(yàn)課程的質(zhì)量。
分析與總結(jié)
由上面的材料可以看出,各個(gè)學(xué)校的教學(xué)體系之間還是有不小差異的。這首先得歸因于歷史沿革形成的專(zhuān)業(yè)側(cè)重、機(jī)構(gòu)設(shè)置上的不同。其中mit算是一極,由于和電子電氣專(zhuān)業(yè)深深地融合,計(jì)算機(jī)專(zhuān)業(yè)帶有很強(qiáng)的“硬派”色彩。而cmu可以算作另一極,計(jì)算機(jī)科學(xué)有自己的獨(dú)立學(xué)院,非常罕見(jiàn),因此它的課程設(shè)置“軟化嚴(yán)重”——與硬件相關(guān)的只用一門(mén)課就解決了。uiuc和斯坦福由于都擁有獨(dú)立的科系,所以可以歸入后一陣營(yíng)。伯克利可以認(rèn)為處于兩極中間,但是仔細(xì)分析起來(lái),它的計(jì)算機(jī)科學(xué)專(zhuān)業(yè)目前雖然仍屬于電子電氣和計(jì)算機(jī)科學(xué)系,但是有相當(dāng)大的獨(dú)立性,1973年創(chuàng)立以來(lái),一直有自己的主席和教學(xué)安排,所以離后者更近一些。
此外,各校在專(zhuān)業(yè)導(dǎo)入課程的設(shè)置上差別也非常明顯;旧峡梢苑譃槿(lèi)。按ieee-acm《computer curricula 2001》(以下簡(jiǎn)稱(chēng)cc2001)的分法,斯坦福屬于廣度優(yōu)先(有明確的注重廣度的導(dǎo)引課程),mit的屬于函數(shù)為先(采用函數(shù)式語(yǔ)言),cmu和uiuc屬于對(duì)象為先(直接采用java)。伯克利有些特殊,它有導(dǎo)引課,但是廣度稍差,緊接著又采用函數(shù)語(yǔ)言,同時(shí)開(kāi)設(shè)學(xué)生自學(xué)為主可以任選的多種語(yǔ)言課程,屬于混合多元型。應(yīng)該說(shuō)各個(gè)學(xué)校在剛?cè)腴T(mén)時(shí)如何調(diào)動(dòng)學(xué)生積極性,培養(yǎng)對(duì)專(zhuān)業(yè)的感情上都有自己的思考。無(wú)論哪種類(lèi)型,將課堂變得有趣,能夠容納更多計(jì)算機(jī)科學(xué)的方面,都已經(jīng)成為一種趨勢(shì)。
無(wú)論如何,各校存在的差異并不妨礙各自培養(yǎng)出同樣優(yōu)秀的人才,這也給我們提供了一種有益的啟示,辦學(xué)思路和方法應(yīng)該是因地制宜的。
當(dāng)然,總的來(lái)說(shuō),各學(xué)校之間的共性還是主要的。歸納起來(lái),有這么幾個(gè)特點(diǎn),值得我們思考:
1. 硬件課程整體在減少
偏軟類(lèi)的三所院校中,cmu最為徹底,硬件課程只有一門(mén)課,而uiuc也只有兩門(mén)必修(兩門(mén)體系結(jié)構(gòu)),斯坦福也是兩門(mén)(電子學(xué)、體系結(jié)構(gòu)或數(shù)字系統(tǒng))。其中的原因,前面引述的randal e. bryant所言作出了解釋?zhuān)吘褂?jì)算機(jī)科學(xué)需要關(guān)注的在計(jì)算機(jī)系統(tǒng)層次中已經(jīng)越來(lái)越高,底層越來(lái)越變得透明了。事實(shí)上,cc2001中制定的硬件課程也只有一門(mén)。而國(guó)內(nèi)目前一般還開(kāi)設(shè)數(shù)字邏輯、微機(jī)原理、計(jì)算機(jī)組成與結(jié)構(gòu)、微機(jī)實(shí)驗(yàn)等硬件類(lèi)課程。
2. 程序設(shè)計(jì)日益重視
在cmu,uiuc和斯坦福,必修的程序設(shè)計(jì)類(lèi)課程往往在四五門(mén)左右。伯克利加起來(lái)也有四門(mén)。mit雖然沒(méi)有大量前導(dǎo)性的編程課程,但是由于在后面計(jì)算機(jī)系統(tǒng)工程、計(jì)算機(jī)語(yǔ)言工程、軟件工程實(shí)驗(yàn)、web軟件工程諸課程都有實(shí)際的項(xiàng)目要完成,所以實(shí)際學(xué)時(shí)也很多,uiuc的改革更說(shuō)明了這一點(diǎn)。同時(shí),還出現(xiàn)了強(qiáng)調(diào)提高程序設(shè)計(jì)技巧,與軟件工程環(huán)境和工具相結(jié)合,提倡團(tuán)隊(duì)合作,高級(jí)程序設(shè)計(jì)課程與數(shù)據(jù)結(jié)構(gòu)、算法課融合的趨勢(shì)。這方面的代表有斯坦福。該校副系主任eric roberts曾執(zhí)教入門(mén)類(lèi)課程多年,總結(jié)了一套在語(yǔ)言教學(xué)中融入軟件工程和現(xiàn)代程序設(shè)計(jì)觀(guān)念,結(jié)合算法和數(shù)據(jù)結(jié)構(gòu)教學(xué)的經(jīng)驗(yàn)。其成果就是《c語(yǔ)言的科學(xué)和藝術(shù)》和《c程序設(shè)計(jì)的抽象思維》兩本書(shū)(影印版已由機(jī)械工業(yè)出版社出版)。作為cc2001工作組兩位主席之一,他在c語(yǔ)言教學(xué)中強(qiáng)調(diào)庫(kù)與接口設(shè)計(jì)、編程風(fēng)格的重要性,并進(jìn)而介紹抽象、封裝的概念,產(chǎn)生了很大影響。反觀(guān)國(guó)內(nèi)目前很多學(xué)校的語(yǔ)言教學(xué)和程序設(shè)計(jì)教學(xué),不僅學(xué)時(shí)偏少,與其他課程孤立,而且脫離實(shí)際,造成語(yǔ)言學(xué)習(xí)和相關(guān)專(zhuān)業(yè)課學(xué)習(xí)都變得非?菰铮焕谡{(diào)動(dòng)學(xué)生的積極性。
應(yīng)該說(shuō),這些名校的教學(xué)體系、教材和經(jīng)驗(yàn)都是豐富的寶藏,值得好好挖掘,比如每門(mén)核心課程的教學(xué)法,實(shí)驗(yàn)課程的安排,各門(mén)課程的銜接,大型項(xiàng)目的選材等。