

1、美國斯坦福大學(xué)計(jì)算機(jī)專業(yè)
斯坦福大學(xué)擁有獨(dú)立的計(jì)算機(jī)科學(xué)系。瀏覽該校的教學(xué)手冊(cè),最具特色的恐怕要算多門科普性計(jì)算機(jī)知識(shí)講座了,一般有兩到三個(gè)單元,涉及面非常之廣,從量子計(jì)算到數(shù)字演員,從計(jì)算科學(xué)的偉大思想到網(wǎng)絡(luò)安全,從網(wǎng)上拍賣到使用元編譯發(fā)現(xiàn)大型開放源代碼軟件中的大量錯(cuò)誤,其中還不乏對(duì)技術(shù)烏托邦、斯諾“兩種文化”、計(jì)算機(jī)面臨的困境以及迅速發(fā)展所帶來的諸多問題的思考。開課的老師陣容強(qiáng)大,基本上都是響當(dāng)當(dāng)?shù)拿淌?,甚至包括圖靈獎(jiǎng)得主John McCarthy。
用這種講座代替計(jì)算機(jī)科學(xué)導(dǎo)論性質(zhì)的專門課程,可以充分展示計(jì)算機(jī)科學(xué)的豐富內(nèi)涵,使學(xué)生較早地了解學(xué)科的輪廓和脈絡(luò),對(duì)于開闊學(xué)生視野,啟發(fā)學(xué)生的學(xué)習(xí)興趣也大有好處。由于美國大學(xué)中專業(yè)的選擇非常靈活,而近年來計(jì)算機(jī)學(xué)科招生受行業(yè)影響流失嚴(yán)重(這種情況甚至驚動(dòng)了比爾?蓋茨,2004年微軟到各大高校招兵買馬時(shí),他每站必到,利用自己的明星效應(yīng),大講計(jì)算機(jī)學(xué)科的美妙前景),可以想象,這種講座同樣也肩負(fù)著吸引學(xué)生選擇計(jì)算機(jī)專業(yè)的重大使命。
2、美國加州大學(xué)伯克利分校計(jì)算機(jī)專業(yè)
伯克利的課程設(shè)置也有很多獨(dú)樹一幟的地方,尤其是在專業(yè)基礎(chǔ)課方面,除了有專業(yè)導(dǎo)引課程“計(jì)算機(jī)科學(xué)專題”之外,對(duì)于沒有編程經(jīng)驗(yàn)的學(xué)生,第一門編程課是符號(hào)編程入門,采用LISP語言。有一定編程經(jīng)驗(yàn)或者有自學(xué)能力的學(xué)生,可以選擇多種語言和環(huán)境的自主學(xué)習(xí)(Self-paced)課程,包括C、Fortran、C++、Java,以及UNIX的使用等,這種多元化與伯克利計(jì)算機(jī)科學(xué)與電子電氣工程同系有關(guān)。但是所有學(xué)生在第二學(xué)期都要學(xué)習(xí)一組獨(dú)特的基礎(chǔ)課:61A“計(jì)算機(jī)程序的結(jié)構(gòu)與解釋”,采用MIT Abelson等編著的同名教材;61B“數(shù)據(jù)結(jié)構(gòu)”(教材采用自編講義);61C“計(jì)算機(jī)結(jié)構(gòu)”(Machine Structures),采用Hennessy的《計(jì)算機(jī)組織與設(shè)計(jì)》。這項(xiàng)規(guī)定就是轉(zhuǎn)校生也不例外,可見其中蘊(yùn)涵了伯克利多年的教學(xué)經(jīng)驗(yàn)結(jié)晶。
伯克利其他比較有特點(diǎn)的課程還有:將離散數(shù)學(xué)和概率論結(jié)合講授的CS70,主講是名教授Christos Papadimitriou;CS98-1 編程練習(xí)課,以主要大學(xué)生編程競(jìng)賽中的賽題為授課素材;CS 169 軟件工程直接用Kent Beck的《極限編程》作為教材,非常超前,但是既然連Pressman的《軟件工程:實(shí)踐者方法》新版中敏捷方法都已經(jīng)成為重頭戲,既然IEEE都已經(jīng)開始制定敏捷方法相關(guān)標(biāo)準(zhǔn),這種課程選材也就不顯得那么駭世驚俗了。除了軟件工程課程常見內(nèi)容外,教學(xué)側(cè)重實(shí)際,貫穿了極限編程的思想,涵蓋UML、JUnit單元測(cè)試、軟件架構(gòu)、設(shè)計(jì)模式和反模式、重構(gòu)、CVS版本控制、系統(tǒng)和集成測(cè)試,最后要求完成一個(gè)實(shí)際產(chǎn)品,并進(jìn)行演示。
3、美國UIUC(伊利諾依大學(xué)厄班納-香檳分校)計(jì)算機(jī)專業(yè)
UIUC的計(jì)算機(jī)科學(xué)專業(yè)創(chuàng)建于1972年,到1986年基本定型,十多年來幾乎沒有什么變化。其中,數(shù)值分析方向課程中,Math225為矩陣論,CS257為數(shù)值方法,CS35x代表數(shù)值分析導(dǎo)論、常微分?jǐn)?shù)值方法、偏微分與數(shù)值逼近和數(shù)值線性代數(shù);
理論方向課程中,CS173為離散結(jié)構(gòu),CS273為計(jì)算理論,CS37x包括算法、形式方法、程序驗(yàn)證;
人工智能方向課程中,CS348為人工智能導(dǎo)論,CS34x包括機(jī)器人、機(jī)器學(xué)習(xí)與模式識(shí)別;
軟件方向,CS125為計(jì)算機(jī)科學(xué)導(dǎo)論,CS225為數(shù)據(jù)結(jié)構(gòu)與軟件工程原理,CS31x包括數(shù)據(jù)庫、圖形學(xué)、多媒體,CS32x包括軟件工程、操作系統(tǒng)設(shè)計(jì)、分布式系統(tǒng)、編程語言與編譯器、并行計(jì)算、實(shí)時(shí)系統(tǒng)、編譯器構(gòu)造、編程語言設(shè)計(jì);
硬件方向課程中,CS231為計(jì)算機(jī)體系結(jié)構(gòu)I,CS232為計(jì)算機(jī)體系結(jié)構(gòu)II,CS33x包括計(jì)算機(jī)組成、VLSI系統(tǒng)與邏輯設(shè)計(jì)、VLSI系統(tǒng)設(shè)計(jì)、通信網(wǎng)絡(luò)、嵌入式體系架構(gòu)與軟件。
4、美國CMU(卡內(nèi)基梅隆大學(xué))計(jì)算機(jī)專業(yè)
與MIT、伯克利等學(xué)校計(jì)算機(jī)科學(xué)仍然和電子與電氣工程同處一系不同,CMU的計(jì)算機(jī)科學(xué)系成立于1965年,是全美最早的,如今它已經(jīng)升格為計(jì)算機(jī)科學(xué)學(xué)院。其研究生項(xiàng)目中除了機(jī)器人方向與硬件關(guān)系較多之外,其他基本上都是純軟的。從這個(gè)意義上來說,CMU的教學(xué)體系對(duì)于偏軟的計(jì)算機(jī)科學(xué)系應(yīng)該有較大的借鑒意義。
CMU的教學(xué)手冊(cè)上沒有從傳統(tǒng)意義上針對(duì)計(jì)算機(jī)科學(xué)專業(yè)學(xué)生的導(dǎo)論課,雖然有名為“計(jì)算機(jī)科學(xué)偉大思想”的兩學(xué)期課程,但是從內(nèi)容上看應(yīng)該是離散數(shù)學(xué)的替代,因?yàn)榇送釩MU并沒有其他離散數(shù)學(xué)方面的課程。此課程沒有教材,內(nèi)容比傳統(tǒng)離散數(shù)學(xué)要靈活得多,涉及概率、代數(shù)、算法、加密理論、復(fù)雜性理論、博弈論等,非常注重學(xué)習(xí)的趣味性和實(shí)用性。
與其他名校相同,CMU對(duì)程序設(shè)計(jì)的重視也給人留下很深印象:本土新生的第一堂課就是“初中級(jí)程序設(shè)計(jì)”,直接講授Java。然后是中高級(jí)程序設(shè)計(jì)(Java)、C語言編程技巧、高級(jí)編程實(shí)踐(Java)、程序設(shè)計(jì)原理(用SML語言講授)。
目前計(jì)算機(jī)科學(xué)專業(yè)教學(xué)計(jì)劃中的一個(gè)難點(diǎn),是硬件課程的設(shè)置問題。硬件知識(shí)體系本身非常豐富,但是硬件課程多了,又削弱了計(jì)算機(jī)科學(xué)專業(yè)的特色。CMU在這一問題上是怎樣處理的呢?計(jì)算機(jī)科學(xué)學(xué)院的現(xiàn)任院長Randal E. Bryant 親自給出了回答,他用15~213“計(jì)算機(jī)系統(tǒng)導(dǎo)論”一門課(12個(gè)單元)完成了硬件知識(shí)的教學(xué)。這項(xiàng)教學(xué)改革的成果就是一本厚達(dá)900多頁的書:《Computer Systems: A Programmer's Perspective》。他在該書的序言中說:
“本課程的宗旨是用一種不同的方式向?qū)W生介紹計(jì)算機(jī)。因?yàn)椋覀兊膶W(xué)生中幾乎沒有人有機(jī)會(huì)構(gòu)造計(jì)算機(jī)系統(tǒng)。而大多數(shù)學(xué)生,甚至是計(jì)算機(jī)工程師,也要求能日常使用計(jì)算機(jī)和編寫計(jì)算機(jī)程序。所以我們決定從程序員的角度來講解系統(tǒng),并采用這樣的過濾方法:我們只討論那些影響用戶級(jí)C程序的性能、正確性或?qū)嵱眯缘闹黝}。
比如,我們排除了諸如硬件加法器和總線設(shè)計(jì)這樣的主題。雖然我們談及了機(jī)器語言,但是不關(guān)注如何編寫匯編語言,而是關(guān)心編譯器怎樣翻譯C的各種構(gòu)造,比如指針、循環(huán)、過程調(diào)用和返回,以及switch語句。更進(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é)生來講既實(shí)用、具體,又能實(shí)踐,同時(shí)也非常利于調(diào)動(dòng)學(xué)生的積極性?!?/p>
5、美國MIT(麻省理工學(xué)院)計(jì)算機(jī)專業(yè)
MIT的課程設(shè)置,只能用其學(xué)生起點(diǎn)高來解釋。該校沒有典型意義上的計(jì)算機(jī)科學(xué)專業(yè),偏軟的只有理論計(jì)算機(jī)科學(xué)和人工智能及其應(yīng)用兩個(gè)專業(yè)。因此沒有類似于其他學(xué)校的導(dǎo)論課程。
在MIT的電子電氣工程與計(jì)算機(jī)科學(xué)系中,所有學(xué)生都要參加如下四門課程: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ì)等。此外有兩門專業(yè)基礎(chǔ)數(shù)學(xué)課:“概率系統(tǒng)分析”和“計(jì)算機(jī)科學(xué)數(shù)學(xué)”,后者的教材是國外院校普遍采用的Rosen所著《離散數(shù)學(xué)及其應(yīng)用》。
對(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)。此外,無論何種專業(yè),都有軟件工程實(shí)驗(yàn)課。值得注意的是,本科生各專業(yè)的必修課程中并沒有軟件工程課程。也就是說,軟件工程的內(nèi)容都在實(shí)踐中完成了。