伊利諾伊大學是伊利諾伊州最好的研究型公立大學,2006年在校學生數接近7萬,全職教學員工(Faculty and staff)超過2.3萬人。伊利諾伊大學由三個分校組成:芝加哥分校(UIC)、厄本那-香檳分校(UIUC)和春田分校(UIS)。每個分校既是獨立的研究機構、有各自獨立的學校排名,又是伊利諾伊大學的組成部分,由一個校長及校董事會進行統一管理。伊利諾伊大學芝加哥分校成立于1965年,位于美國第三大城市——芝加哥。目前該校已擁有15個學院,2.5萬多名在校學生,每年的研究經費超過2.9億美元。
計算機科學系的歷史
伊利諾伊大學芝加哥分校計算機系是該校工程學院下屬的六個研究機構之一,經歷了從僅是一個專業發展到一個獨立的系的歷史。1980年伊利諾伊大學芝加哥分校在當時的信息工程系(IE)開設了計算機科學專業,從事計算機科學教育的教師只有7人。1982年信息工程系更名為電子工程與計算機科學系(EECS)。隨著計算機科學專業的不斷發展和豐富,到了2001年7月,電子工程和計算機科學兩個部分分離開來,獨立的計算機科學系誕生了。如今計算機科學系已擁有31名教師(Faculty),負責計算機科學領域的本科和研究生培養。在這31名教師中,有7名獲得過國家科學基金(NSF)職業獎,有4名是IEEE等專業協會的Fellow,有15名擁有期刊主編或者編委等頭銜,有3名獲得過教學杰出獎。該系每年的研究經費在800萬美元以上。2006年在讀本科生大約有350多人,在讀碩士生160多人,在讀博士生有70多人。目前,伊利諾伊大學芝加哥分校的計算機科學專業在全美計算機科學專業的排名位于50名左右。
計算機科學教育
1.本科課程設置
伊利諾伊大學芝加哥分校計算機系實施四年制本科教育。本科生在獲得學位前至少需要獲得128個學分??紤]到計算機科學內容的豐富和多樣性,該系在針對本科生的培養方向上設立了三個專業分支:一般的計算機科學專業、側重于培養計算機硬件人才的計算機系統專業和側重于培養計算機軟件人才的軟件工程專業。一般的計算機科學專業相當于計算機系統專業和軟件工程專業的折中,沿襲了傳統計算機科學專業的廣度,即兼顧計算機軟、硬件的學習,但是就具體硬件或者軟件而言,沒有其他兩個專業那樣的學習深度,其優點是為學生今后的專業方向提供了比較靈活的選擇空間。
伊利諾伊大學芝加哥分校計算機系的本科課程大致可分為五類:基礎必修課程、專業選修課程、數學限選課程、實驗/工程選修課程以及工程學院以外開設的課程。
(1)基礎必修課程包括數據結構、離散數學、算法、形式語言、計算機組織與體系結構、操作系統和編程。這些課程是學生在計算機科學領域學習、研究、工作的基礎,因此,所有計算機科學專業的本科學生,不論專業分支是什么都必須學習這些課程。
(2)專業選修課程是專業側重點的主要體現,不同專業分支的學生通過選修專業課程獲得專門領域的知識。例如計算機系統專業開設了電子學、數字系統設計等面向硬件的課程;軟件工程專業則開設了三門軟件工程課程-軟件工程I~III詳細學習軟件開發方法、風險管理、軟件成本評估等內容。
(3)數學限選課程根據專業分支不同而略微有所差異。每個專業分支設置了11~14門數學限選課程,提供給學生一定的選擇空間。線性代數是所有專業分支的必修課程,此外,高等數學、形式邏輯、數值分析、數論基礎、圖論和博弈論是三個專業分支共同的限選數學課程。
(4)實驗/工程選修課程涉及生物科學、化學、地球與環境科學、物理學方面的理論內容和實驗,學生至少需要選修兩門實驗/工程選修課程。由于計算機科學已滲透到各個研究領域,單純的計算機應用已越來越少,越來越多的是跨學科、幾個或者多個學科與計算機科學相結合的應用,開設實驗/工程選修課程有著特殊的意義和重要性,有利于學生今后在從事跨學科、交叉學科的研究工作或者與其他學科合作時實現良好溝通、提高協作效率,因此面向計算機專業的學生開設一些跨學科基礎課程這一培養思路對我國高校計算機專業的課程設置有一定借鑒價值。
(5)工程學院以外開設的課程包括高等數學的基礎課程-微積分I~III、英語寫作以及有關人類學、社會科學、藝術等方面的課程。這些課程和基礎必修課程一樣是所有學生必修學習的課程。微積分作為高等數學的基礎課程,是學習計算機科學的重要基礎和工具。寫作與其他人文、藝術方面的課程似乎與計算機科學本身無直接關系,但是這些課程對于個人修養,個人與集體、社會的和諧共處均能起到潛移默化的重要作用。我國許多高校也開設了有關人文、藝術、寫作等方面的課程,但是這些課程往往作為選修課程而不是必修課程開設,學生因為這些課程既不是專業課程又不是必修課程而不夠重視,通常不選或者只是為了學分而選。由于缺乏這些方面的培養和訓練,他們在需要作正式的書面表達(例如寫簡歷、撰寫畢業論文)時往往感覺力不從心,在邁出校園融入社會時常常感到手足無措。因此,除了計算機專業知識以外,我國高校計算機專業的課程設置中有必要選取一些這類課程作為必修課程,以強化學生的個人修養以及個人與社會的和諧關系。
2.課程分級
伊利諾伊大學芝加哥分校計算機系將開設的課程按照深淺程度分成5個等級,本科階段涉及1~4級的課程,研究生階段的課程為4~5級,即1~3級的課程面向本科生開設,4級課程為本科生和研究生的共選課程,5級課程一般僅面向研究生開設。在本科的四個學年中第一學年開設的課程為1級的入門課程,第二學年開設2級課程,一般在第二學年的第二學期加入第3級課程,第三學年的課程以3級課程為主,到了第四年開設第4級課程。對于研究生而言,4級課程為研究階段的基礎課程,5級課程為主要課程。
每門課程除了有明確的等級外,還明確規定了學生選修該門課程需要具備的前提條件(即選修資格)。例如課程CS474“面向對象的語言與環境”需要選修該門課程的學生已經修過CS340“軟件設計”這門課程,而CS340又以CS202“數據結構和離散數學II”為基礎。一些課程還對已修課程的成績提出明確要求,例如CS202需要學生已經學習過CS201“數據結構和離散數學I”,并且成績要達到C以上(即考試成績至少需要達到70分)方才有資格繼續選修CS202。
3.研究生培養
伊利諾伊大學芝加哥分校計算機系是該校重要的學術和研究機構,其研究方向涉及計算機科學的許多領域,設立的重點實驗室包括人工智能實驗室、虛擬現實實驗室、內核及網絡安全實驗室、數據庫及數據挖掘實驗室等等。此外,計算機系與生物工程系聯合設立了生物信息(Bioinformatics)專業,并且通過與該校醫學中心(Medical Center)合作,將計算機科學融入到生物和醫學研究中(伊利諾伊大學芝加哥分校的醫學中心是美國著名的醫學研究機構之一)。
計算機系的每一個研究生在第一學年由系里指定的一名臨時指導老師進行指導。學期開始時學生需要與指導老師討論本學期選修的課程,并且在獲得指導老師允許后才可以上課,但是第一學年的指導老師不一定就是以后指導研究工作的導師。許多研究生在第一學年會申請一份TA(Teacher Assistant)的工作(工作包括幫助授課老師給學生進行課后答疑、帶實驗課、批改作業等等)來減輕家庭或者自己的經濟壓力。對于研究生來說,尤其對于博士研究生來說,尋找到合適的RA(Research Assistant)才是整個研究生學習階段非常重要的環節,因為有了RA的工作不僅可以減輕經濟壓力,而且RA階段的工作影響到自身的學術研究方向、研究深度以及取得研究成果的可能性。研究生與導師之間的選擇是一個雙向選擇的過程,學生選擇合適的導師,導師挑選適合的學生,這一點與我國的研究生培養制度類似,不同的是一般情況下,我國的研究生在入學時指導老師就已經確定,然而對于伊利諾伊大學芝加哥分校計算機系的研究生來說,他們需要在學習過程中尋找合適的導師,并且相比之下,我國的研究生與導師的關系更傾向于學生與老師的教育關系,而在該校研究生與導師的關系更傾向于雇員同老板的雇傭關系,學生的緊迫感比較強,擔心因為表現不好不能繼續獲得導師給予的研究資助。
感受教與學
此次出訪伊利諾伊大學芝加哥分校計算機系,讓我感受頗深的是它的教學模式。我在訪問期間選修了3門計算機專業課程(其中1門4級課程,2門5級課程),通過觀察和親身體驗,總結出該系在教學模式上有以下幾個特點。
(1)授課與質疑相結合。授課老師非常鼓勵學生在聽課時質疑,學生可以在老師講課時隨時提問。老師們認為學生能在課堂上質疑是他們正在積極主動學習的最好體現;另外,質疑-解疑的過程不僅可以激發學生的創新思維,對老師自己也能起到相當的作用。一些討論的問題可能暫時還沒有明確的答案,但是探索問題答案的過程更加激發了學生進一步學習的熱情。
(2)非常重視學生課后的學習,因為課堂上的學習時間對于學生學習并掌握一門專業課程來說是遠遠不夠的。通常伊利諾伊大學芝加哥分校計算機系的每一次課的課堂時間只有75分鐘。對于每周授課兩次的一門課程,一學期的授課時間大約在15周左右。老師在課堂上的精講只是學生學習新內容的開始,每一次上課結束后學生往往需要用2~3倍,甚至更多的時間完成老師布置的閱讀作業。一門課程可能沒有指定的教科書,但是文章和參考書是學習每門課程必不可少的學習資料。老師通過學生對問題的解答、所寫的文章,或者在課堂上的演講(Presentation)來檢查每次作業的完成情況。對于每一門課程的學習,學生都必須付出相當的努力,國內學生的考前突擊戰在這里行不通。
(3)學術性與實踐性相結合。在我所選修的三門課程里,每門課程除了有相當數量的閱讀作業外,還有需要編程實現的課程項目(Projects)。課程項目的數量因課程不同而不同,通常為1~3個,并且每個項目都必須在規定的時間內提交。例如課程CS491“構建安全的系統”要求學生在Linux系統下編程,完成對一個給定系統的緩沖區溢出攻擊、實現一個具有包過濾功能的簡單的入侵檢測系統等三個課程項目。學生在這種理論與實踐相結合的訓練后具有了較強的動手能力和實際解決問題的能力。
(4)注重思維表達(包括口頭與書面表達)方面的訓練。良好的思維表達能力被認為是專業人才應該具備的素養之一,因此伊利諾伊大學芝加哥分校計算機系非常重視對學生口頭和書面表達能力的訓練。這種訓練不是僅限于要求學生修一門英語寫作課。前面已經提到該系的每門課程都配有相當數量的閱讀作業和課程項目,伴隨這些閱讀和編程,學生需要完成若干文章和課堂講演(Presentation)。在當今信息共享的社會里,良好的思維表達有利于有效地交流信息。學生經過這方面的訓練后在撰寫學術文章或者在國際學術交流會議上作演講時往往表現得更加得心應手、從容不迫。
(5)討論與獨立學習相輔。老師非常鼓勵學生們在學習中展開討論,例如該系在每學期中的周五下午會安排一些教授和研究生們開展討論會。討論與獨立學習相結合是學生們主要的學習方式。
(6)教師工作的專一性。該系的每門課程都配有一名TA,負責幫助授課老師給學生進行課后答疑、帶實驗課、批改和講評作業等等。每個老師有專門的辦公時間(Office Hour),在此時間內學生可以找到老師討論問題,除此之外的其他時間,老師則用來專注于教學研究或者學術研究。
伊利諾伊大學芝加哥分校計算機系的計算機教育雖然不能反映美國高校計算機教育的全部,但也是美國高校計算機教育的一個縮影,比如它的教學模式就是美國眾多高校計算機科學專業采取的教學模式。與之相比,我國高校的計算機教育有許多方面值得向美國高校的計算機教育學習和借鑒。另一方面,由于我國高校計算機教育有著自己的實際情況,比如在校學生人數遠遠多于美國高校計算機專業的在校學生人數,學生人數多在無形中給教學和管理都提出更高要求,帶來更多困難和壓力,所以,如何合理、有效地學習和借鑒美國高校計算機教育的先進性,還需要我們不斷地探索。