儘管學費昂貴,美國大學在學費管理上也有很人性化的一面。允許學生在一定的期限內註銷(withdraw)所註冊的課程。一般在該門課程開課的一個月之內。在此期限內,還有更詳細的劃分。比如,在開課一個星期之內註銷課程,學校會退還此課程的全部學費給學生本人,而且在成績單上不作任何記錄。如果在兩個星期後,最後期限之前做出註銷決定,則退還此課程學費的50%給學生本人,或將這筆款轉入學生名下,學生只能將這筆款用於支付學費。這個體制在美國大學中很普通,只是不同學校的具體政策不盡相同罷了。
3 q$ A+ x3 ^# a2 L! ~5 n& a 5 y6 a( r( }, v; s \
一般來說,當學生確定了選修的課程及繳付所有的費用後,就會立即在大學的註冊辦公室(Register Office) 得到一張Timetable。上面明確列出了本學期課程的詳細信息。例如:授課時間,授課教室等等。每門課程的第一節,教授會發給每個學生一份課程提綱 (Syllabus/Guideline),上面列出了該門課程所要求的教材及其它參考書目,必須完成的課後作業,多少次測驗(Quiz)及課堂演講(Presentation),有沒有團隊(Group)作業,期中和期末考試的安排,出勤率的考核,以及上述這些考核項目各佔總成績的比例,通過這門課程的最低標準等信息。通常,出勤率占總成績的5%-10%,期中考試占總成績的20%—25%,期末考試占30%-35%,其餘部分就由平時作業(獨立作業和團隊作業),測驗以及課堂演講組成。美國大學的評分標準跟國內不一樣。不採用100分制,而是採用A、B、C、D、F的等級制度。F就是前面提到過的Failed -- 不及格,A+,大致相當於國內的97-100分,A,93-96分。A-,90-92分。B、C、D的評分標準與此相似。, Q# |' {5 ]! i& q
2 ?; Y) W# R* I- U k# H有些教授不指定教材,而是採用自己的講義。有些教授雖然指定了教材,卻很少使用。筆者在讀《計算機分佈計算與並行計算》課程時,Syllabus上註明:教材一本,輔助教材三本。正在思考如何去讀這些書的時候,教授輕輕說了句,「我相信你們的能力。教材嘛,自己看就可以了,我將著重講解書上的重點和難點,以及最新的發展趨勢」。碰到這類教授,是一大幸事,因為可以學到很多這方面的知識。但要獲得理想的成績確實不易。8 {5 j$ ?* ^' T1 D
* K( A- |% e+ @. [某些計算機課程,例如,《數據結構》、《高級數據結構》、《算法》、《高級算法》及《軟件工程》等涉及到程序設計方面的課程,採用哪種計算機語言進行講解,並沒有明確的規定。基本上是由授課教授指定。目前上述核心課程採用的計算機語言最廣泛的是Java其次是C++,也有一些大學採用C#。
8 M7 u6 g' A+ e4 f : L- D5 U1 ]$ q
這裡簡單說說教材的問題。因計算機語言頻繁升級的緣故,美國大學計算機的教材更新速度很快,可能每年都會有新的版本出版。最典型的例子就是Java。教材的選定由授課教授決定,故此不同的教授即使教同一門課,教材也很難有統一的標準。但很多教授對以下兩部教材的選擇卻是相當的認可。筆者也認同不論是初學者還是高手,仔細閱讀這兩部書,應該會有些斬獲。這兩部書都是由Deitel & Associates公司出版,分別是:. H! o& s3 k9 [7 A5 |" P2 C% B
$ V0 ?, f* C4 A& {! E# u1. Java How to program
3 \$ k. g* B" o) D% d* _2. C++ How to program
% i8 c" [" _, ]9 y( L ; F z# U' W) u/ m1 m! _+ d; q
在教學方面,大部分教授都不建議學生使用可視化的開發工具。認為在學習基礎理論的時候,不應過分借助於這些可視化的開發工具。不過,學生如果堅持使用,教授也不反對。但是當教授拿著源程序提問時,學生要清晰理解源代碼的設計思路,實現方式以及程序流程。否則即便源代碼沒有任何問題,成績卻會令人很失望。
8 v. h1 e! W; M" A" O9 \ 0 V W( j& r9 Q2 K" s
關於團隊作業(通常3人一組),一般在商定後,每個人各自負責相應的部分,並規定好完成各自部分的最後期限。在團隊作業的進行中,每個成員都會盡力完成自己的任務,都不希望因為自己的工作而影響團隊的最終成績。但畢竟水平有差異,有時候不一定能順利完成。在這個時候,所有的成員就會聚集在一起討論解決的方案。此類的團隊作業,一般都要求在課堂上做演講。每個人負責講述自己所完成的那一部分。在演講期間,教授及其他學生可以隨時打斷話題,提出他們的問題或觀點。只要是與演講內容有關聯的問題,都可以發問。所以,課堂演講實際上是較難的學習內容。需要作出充分的準備。結構清晰,言簡意明,口語流暢,製作精美(一般採用MS的PowerPoint製作,也有學生採用Flash製作)的演講通常是可以獲得高分的。在國內大學,類似這樣的作業是比較少見的。其實國內大學在這方面應當大力加強,因為這不但可以鍛煉學生的表達與組織能力,同時也是培養學生分工協作,增強團隊精神的有效方法。
6 B4 D1 a% k- h1 m$ } $ Q0 N: x# j, k/ Y) {, B
成績評估
# R+ d6 I: a( V1 N9 M對於課後作業,教授通常規定了明確的最後期限 (Deadline/Due day),一旦超過這個期限,那麼該次作業的成績無效。一般同時以兩種形式上交作業:/ u" O0 G9 r T2 ]& a- Z- ^
# j, W0 p# Y8 O+ m/ ~' @ h1. 標準的A4打印件# | v2 Q6 v: B% c- z+ Z
2. 電子郵件0 @# P0 W& b4 X. n
) z0 y/ |% h. o- h5 L
教授會很快給予評定。並佔用一定的時間來講評作業。如果發現學生存在普通的問題,教授會再次講解。作業的成績不會當眾公佈。例如,分發試卷的時候,是由教授點名。被點名的學生走上講台,由教授親自分發試卷,標有分數的那一面試卷是朝下的。當然,教授也會向學生講評考試結果。比如,分數的分佈情況、最高分和最低分等等。還有常見的方法是,將學生的分數打印或者在網上發佈出來。但是不列出學生的姓名,取而代之的是學生的ID。5 I- ^$ S9 u1 U$ @# `9 I7 R
! r8 X* E# _( w+ y, s$ q
學生每門功課的最終成績,是依據一學期的總體表現,由授課教授評定。一旦學生認為教授評定的分數過低,可以同教授商談。但在沒有誤判的情況下話,是很難更改分數的。如果商談後對教授的最終評定結果仍不滿意,可以繼續向系主任投訴。不過,大部分是維持原判,因為系主任也沒有更改學生最終成績的權力。$ t9 O! D5 a2 m, p: w; n! H
畢業要求
3 f2 n. {: U+ X: U* i0 i- J% R 前面我們從表一及表二得知,要獲得紐約市立大學計算機科學系學士學位,就必須得完成120個學分時,而要獲得Bridgeport大學計算機科學系學士學位,則必須完成130個學分時。本科學生獲得學位的要求不是很高,每科成績不低於D即可。但如果希望本科畢業後繼續進入研究生院學習,那麼平均成績不得低於C是最低要求。如果希望申請著名大學的研究生院,則平均成績不應低於B+。當然,除了學習成績外,學生的其它素質也是錄取與否的因素,例如,是否具備獨立思考,善於發現問題的能力?是否具有該學科的專業研究能力?等諸如此類的個人因素在錄取中也占一定的比重。
6 X: a- y- |9 t( {: b9 e5 Q5 n4 D
0 P1 g/ `) e9 S) x+ j% i" D其它
9 ?& g8 W1 e' ?+ e 眾所周知,美國計算機的硬件軟件水平執全球之牛耳。計算機最重要的三大部分,微處理器、操作系統和數據庫幾乎被美國產品所壟斷。美國大學生在計算機的應用水平上也普遍高一些。國內大學生絕大部分熟悉的OS就是微軟的系列產品。而美國大學生是普遍使用兩種操作系統,Windows + Unix/Linux。
0 n$ U4 O& G( {0 y 以筆者為例,以前只熟悉Windows,會用Novell。但在美國留學期間,意識到必須學習UNIX的操作,原因是:0 o, `& g$ L# \
5 \# l, Y, e X+ Q% ^1 U: p1. 學校服務器是SUN OS 5.0,可以利用服務器強大的計算能力;
% }3 U4 n$ o8 Y/ S, f5 [; z3 w2. 服務器上安裝了C、C++、Java、Perl、Python等編譯環境;
1 F# f, {. J+ ~3. 服務器運行非常穩定,可以被當作一個穩定的網絡硬盤使用;
: Q7 |9 J X) U8 W8 q) Q4. 因為是計算機專業的學生,開放了個人網頁,可以實戰HTML編程;
1 U; W8 ^* J. W% y0 R1 F0 P& h5. 除Oracle外,還可以學習MySQL、PostgreSQL等數據庫;5 s# x& @/ h" e2 P1 M* _
6. UNIX的安全性是不用質疑的。源代碼存放在上面,非常安全;
A& S7 r7 n/ h: y8 c( w7. 避免有時把源代碼或作業忘記在家裡,通常可以複製一個備份存放在服務器上;
7 {) c' s# V. F7 z/ G. X8. 服務器上可以快速的傳輸文件。+ U* a l% C% e
2 M; J; |9 F5 j) y' D$ r! k# @美國大學的主機基本上都是UNIX系統。要使用學校的資源就必須學會使用UNIX。在這種情況下,筆者先從Windows 最基本的telnet 登錄開始學習,由於telnet是以明文的方式和服務器通訊,安全方面有很大的隱患,所以很快就放棄了telnet,改用ssh登錄學校的UNIX主機。接著,學習如何使用PINE(UNIX上的郵件收發程序)、VI(文本編輯器)、如何管理文件及設置權限、如何編寫腳本、如何運行腳本程序、如何在UNIX下實時交談, 以及如何安裝自己的應用程序。隨著使用UNIX的日益頻繁,筆者對UNIX的理解也越來越深,也越來越喜歡UNIX了。+ \$ U* A6 @ [$ F) z- e8 C
, B- C9 {4 v$ P( {) S3 s5 s& \總之,正是由於學習UNIX的這個經歷,令筆者在以後接觸Linux的時候,很快就上手了,並且能夠順利系統的學習並掌握了DNS、WWW、SENDMAIL、POP3/IMAP、IPCHAINS、ROUTE、IPCHAINS、DHCP等服務器的安裝和配置。
( Y% V& e- v5 _4 U' S 0 Z% ]8 g8 t* R6 Q
研究生
# R& h' G8 Q. c4 G% Q目前國內大學計算機系的傳統教學模式確實存在不少弊端。所幸的是已有越來越多的有識之士開始意識到這些問題,並積極探索改革的方向和出路。特別是針對計算機教育,國家已著手大力扶持,除強化計算機系的教學質量外,還批准開辦了多所不同層次的示範性軟件學院,一些高校也開始了改革教學的實際行動。; K5 H7 e& j7 L5 G6 O$ i; g0 x
3 E* Z: l# J {
在學位制度方面,國內高校基本上沒有嚴格的淘汰制。特別是對於研究生,能考進去基本上就可以獲得學位。而美國大學對學位的評定則是層層篩選,而且學位越高,淘汰的比例越大。這種對人才質量嚴格把關的機制,尤其值得我們倣傚。
. |+ w& i( \3 h) w, P
! V8 \4 E9 A: W1 D7 F1 T: Z研究生的適應能力以及創新能力在很大程度上取決於堅實的理論基礎和專業基礎知識,這是高質量研究生教育的重要特徵之一。在當今科學技術突飛猛進,專業知識日新月異的時代,只有紮實掌握專業的理論基礎和系統的專業知識,才有可能從事這個專業所進行的科研、教學和其他專業技術工作,才能打好進行創造性研究的基礎。因此課程的學習就顯得尤為重要。如果沒有合理的、科學的課程設置,沒有切實可行的教學計劃,課程教學就沒有可靠的科學依據。如果課程教學不是立足於本學科的前沿,不立足於提高研究生的學術水平和科研能力,那麼課程的教學質量就得不到保證。由於課程學習是實現研究生的培養目標、保證研究生質量的重要環節。課程設置將直接影響到研究生知識面的寬度和研究能力的高低,因此,研究生課程的設置是否合理、科學是非常重要的。
/ f% k3 _+ ]# B& G/ z6 P
, h( {- E, J3 T; I& K: ` }國內大學的研究生教育,專業課設置過於專業,例如,過去的物理化學專業是一個博士點,博士生上的課程全是物理化學。四大力學全是物理化學的內容;有機化學,學生修的全是有機化學,學術面過窄。而國外已經打破了二級學科的限制,甚至打破了一級學科。例如,國外化學系的博士生,有些課程是屬於生物學,有生物儀器分析、生物物理學等課程。這樣培養出來的學生適應能力和研究能力就相對較強。可以在學科的發展中間迅速調整自己的學科方向,跟上學科發展的潮流。我們過去培養的學生就非常專業,跳出自己的專業就一籌莫展。所以我們必須改變在很窄的專業學科範圍內培養研究生的這種局面,要打破二級學科的限制,甚至要在一級學科上做些交叉。
3 m* f7 Z7 F e: c9 Q. k
8 n) m. ~. b% W6 |4 B7 q, P 美國大學的研究生院、研究生教授協會和科系對研究生課程的設置極為重視。一般而言,本科生與研究生的根本區別在於研究生的「後勁」比本科生足。而後勁來源於寬厚、堅實的理論基礎。基於這種認識,國外大學科繫在碩士研究生新生入校後,要進行摸底考試。若考試成績不理想,則建議新生補課,並且只能在課程編號為600-699的範圍內確定相關的補課科目。倘若核心課程的成績達不到「B」,則失去獲得研究生學位的資格。目前在美國大學的研究生培養方案中,理工科研究生的數學和有關基礎理論學科的總學時仍呈上升趨勢。一些著名的學府,研究生新生在第一學年不學習本專業課程,而是學習數學、物理、化學或統計學等課程。在此基礎之上,從事本專業課程的學習。+ ^/ W3 |: r1 k1 y+ A% p; h0 ?# y
$ u) a) W& `- c" x) g9 y( I0 t
這裡再順便談談美國大學的博士生制度。美國大學博士生的培養尤其重視課程學習。其課程設置的範圍較廣,一般要求修16-20門課程,30-40個學分(文科要求修滿45個學分以上的課程,理工科側重實驗,一般要求修滿30個學分以上的課程)。基礎課程的學習時間為1-2年。課程設置通常分為5個專業領域,其中一個領域還要跨一級學科。要求寫大量的書評和課程論文。學習期間有多次考試,最後還要通過所修課程的全面性考核。各大學對博士生考試成績的要求不盡相同。有的大學要求在B級以上;有的大學規定要有2門課程的成績為A級,否則取消獲得博士學位資格。例如,柏克萊加州大學工學院,要求博士生主修領域的課程成績必須達到3.5,輔修領域的課程成績也必須達到3.0。, V8 n3 r' H: J6 p" O
8 y8 |. k7 Z l7 W$ V8 n7 ^現在看看美國大學計算機系研究生的課程設置及畢業要求。仍以紐約市立大學(CUNY) 為例:
# `, G& X7 @/ l( S* U6 }7 X8 R
( N5 _) `5 J/ U$ [" A 被錄取的研究生新生必須完成以下三門課程(不算學分)之後,才能真正開始攻讀研究生的課程:
, h1 D1 s% Y5 [6 r# l5 f9 n5 }- |
- w& T; Q2 ] j* W1. 數據結構(603. Data Structures) ; 4 a9 Z1 n" Q) h y: N, ~4 z
2. 彙編語言與計算機結構(642. Assembly Language and Computer Organization);9 h7 I* g! A1 b& T
3. 信息技術概覽(615. Survey of Information Technology);& |5 B. p7 R# c% {$ r& B
5 P! R( n" m$ o+ Y$ H$ g0 U在完成上述三門課的前提下,必須完成30個學分時,編號不低於700的課程,這些課程包括:' B/ |: Y# d3 N. [" E- ?
1. 算法1 (700. Algorithms I);
; h, I' Q$ Y) y( [2. 分佈計算(715 Distributed Computing);$ h* p/ ]" @" B6 o& m
3. 可計算性與複雜性(722 Computability and Complexity),主要講述計算模型,如圖靈機,隨機存取機器,時序電路等等;
) ~' C% u/ o7 B' N+ l4. 計算機體系結構與網絡(744. Computer Architecture and Networks);2 }( g) o# c3 b1 _
5. 軟件類,必須完成以下課程中的一門:* j" p0 e& d5 I6 ?2 [
l 軟件設計 (701. Software Design );# M3 T X6 j2 u# M$ e+ V
l 編譯器結構(707. Compiler Construction);
( |: a( G: X& a. u+ I0 wl 計算機圖形(718. Computer Graphics)
) F$ s/ \( f6 o1 y& l/ |% ^: n6. 硬件類,必須完成以下課程中的一門:
/ p2 n8 s5 A+ L2 @l 開關理論 (745. Switching Theory):這部分主要同電子電路有關;. C5 i% c5 E( t
l 計算機系統(746. Computer Systems):主要是指並行計算機結構、RISC及CISC處理器,並行計算的程序設計等;/ U! _ W R) ?& ]
l 計算機網絡(748. Computer Networks); s6 |1 A) G* a4 ^3 x
7. 應用數學及算法類;
* [* }& X- Y* S5 M. O: X% sl 算法2 (762 Algorithms II );
/ K6 ^( V# U) a* ^# V. [& i) o! dl 系統模擬(764. Topics in Systems Simulation);/ n0 U1 S" e9 ^! o# _
l 計算機系統概率模型(766. Probabilistic Models in Computer Systems)1 g4 S) n/ k, e% W: s& F" i) J4 U
8. 在獲得21個學分時後,每個學生還必須滿足或完成以下幾個畢業條件(Capstone Requirement)中的一種;
/ B2 S8 j. y4 P, {5 W* P& vl 軟件開發項目實習(731 Software Development Practicum);
1 Y5 _/ m. p( k/ p% `' |l 研究項目實習(732 Research Practicum);. B* j* n9 c# e. S6 q
l 碩士論文(733 Master's Thesis)
# {$ K" W( A# G9 |" G * {0 }" }. K; A
(註:附錄二列出了上述課程內容的簡要介紹)。; y: F; W4 y6 x7 Z4 }
+ Q/ F$ d( K: p# l
& k: |1 b" r, ~0 t8 s6 ^1 p前面提到美國大學研究生教育的一個明顯特點就是多學科交叉。這裡就以筆者研究生的課程為例,對此作進一步的闡述並以此結束本文。課程是關於手寫數字字符的識別問題。這門課程應該屬於電子工程、人工智能、智能識別、信號處理、自動化處理等學科的交叉學科。首先,這門課程沒有教材。全部閱讀材料由教授Dr.Ihsin Phillips提供。這些閱讀材料大部分是發表在IEEE刊物上的論文。這些論文都是講述如何進行手寫數字字符的識別。每篇論文采用的識別算法都不一樣,而且作者來自不同的國家。# ^1 ]* A! s( B7 c9 Y) U v
5 p t% L/ v s7 }. I
教學和考核的方法是,學生分成若干小組,每個小組負責自己的材料。小組成員將在課堂上講述自己對數字識別算法的理解以及自己的觀點。然後依據演講的情況來評定成績。但期末考試則不同,閱讀資料在期末演講前一個月分發下來,並且要求每個學生必須獨立完成所有的工作,例如:閱讀、理解、算法分析、算法擴展,幻燈片的製作、演講內容的準備,以及對可能被提及的相關問題的準備等等。
x9 }0 t& d9 C' t A$ u/ c. ] " `$ w' }2 c/ }- F: Y' d' D$ Z$ d
下面列出教授提供的部分學習資料。這些是來自不同國家不同大學的研究成果。有國內的清華大學,還有來自美國紐約州立大學布法羅分校、英國Essex大學,韓國以及巴西的一些大學。2 c2 ]+ | e+ i' O) ?7 e
) j: S: g \, h" B- o, O1. 一種新的分割手寫的非規範數字字符串的方法 (A New Method for Segmenting Unconstrained Handwritten Numeral String)
% w9 m. `$ W- d+ G作者:Bin Zhao, Hui Su and Shaowei Xia ' w+ Y* R& G$ B
Department of Automation# X, T# E) Q- ]3 G1 }
Tsinghua University, Beijing, 100084, P.R. China* t% m) g+ {1 @ U
; j: t8 k7 J1 F# V; X% A4 \2. 分割與識別完全非規範手寫數字字符的系統(A System for Segmentation and Recognition of Totally Unconstrained Handwritten Numeral Strings)# }+ }2 E9 h% z/ Z
作者:Z. Shi: S. N. Srihari, Y-C. Shin and V. Ramanaprasad
, S' a6 c$ t- L2 Q& V6 H/ K) FCenter of Excellence for Document Analysis and Recognition) f9 Y. q4 I/ V1 h) C8 |4 z
State University of New York at Buffalo: Buffalo, NY 14260, U.S.A." q. G2 q" m+ i" a) e9 G
3. 分割與識別手寫數字字符的新的範例(New Paradigm for Segmentation and Recognition of Handwritten Numeral String)
) O) r$ t% L$ R作者:Sungsoo Yoon, Gyeonghwan Kim, Yeongwoo Choi, Yillbyung Lee% E' B# F( b% m9 C# D
Dept. of Computer Science, Yonsei University, Seoul, Korea
! {9 \! E; S3 M8 `! dDept of Electronic Engineering, Sogang University, Seoul, Korea) v3 D% O+ A3 S Z; K4 k4 {
Dept of Computer Science, Sookmyung Women』s University, Seoul Korea
- u! p9 G+ |. b. m9 b3 k 6 ^" w" z/ E! r1 X9 Z9 M( V0 V
4. 面向對象的表單描述語言與表單手寫字符的處理方法(An object-oriented form description language and approach to handwritten form processing)
9 R& a, }( o" a) d+ ]作者:C. Cracknell, A.C.Downton, and L. Du+ d1 f% a# Z. N+ Y& r9 V
Department of Electronic Systems Engineering/ _, ?; m3 z# F# n. Z" B. G
University of Essex, Wivenhoe Park, Colchester CO4 3SQ, U.K.% w& e b% Z* p- G4 T
5 V0 y# p' U0 b( s; O) [* K
5. 分離手寫數字字符圖像的識別( Disconnected Handwritten Numeral Image Recognition)
" ?% Y3 o/ x/ t2 ~" O! b作者:Luan Ling Lee and Natanael Rodrigues Gomes
& S" U2 c! h" q" T y- F! eDecom-Feec-Unicamp
; P0 f H' [% h- W& lUniversidade Estadual de Campinas
4 @6 x1 m; z/ }( h% O0 {' F" Y 1 t& [; d6 {% N, k$ u- |' j
此外還有其它一些相關的學習材料,但筆者印象最深的就是這五篇論文。從閱讀資料的來源就可以看出教授Dr.Ihsin Phillips淵博的知識。通過這門課程的學習,可以擴展學生的思維,同時學生也更加深刻體會到交叉學科對本專業知識起到的一種補充和促進作用。! T" S/ H: G- c E5 B( U
3 Y$ J- m, U8 b: g* C' T
總結
' z2 _6 [9 \2 x0 l/ d筆者以自身的經歷從個人的視角來觀察分析美國大學計算機教育在本科和研究生階段的一些特點。如何盡快提高我國大學計算機的教育水平,以及如何提高大學計算機系學生的專業水平,需要你、我,大家的共同努力。
( `* Q. H" ~! U! c- C+ @ 5 O9 A" n1 X' I e3 z/ |, A
0 J1 b \1 E4 ^- t" H本文作者:鍾京馗 美國紐約市立大學計算機科學系助教 |