我在 CMU 交換的那半年,看見美國、台灣電腦科學教育的巨大鴻溝(上)

評論
評論

IMG_2365

本文作者為交通大學資工系學生 Heron Yang,他在 部落格 中詳實紀錄了前往全球電腦科學系排名第一的卡內基美隆大學交換的課程內容。Inside 獲作者授權轉載。

作者簡介:"Create Something People Want" -- 是我的信念,於是致力於軟體開發、網頁與網路程式設計、原型發想、文章撰寫與攝影,很歡迎人找我討論想法與合作。喜歡極簡與咖啡。

前言

在 Carnegie Mellon University 交換過了快兩週,選課差不多都確定了,而部分課程的第一次作業也交了;這回交換的機會主要是透過交通大學協助的,而學校除了把學生送出國,也期望能把所見所聞帶回來分享,所以寫了這篇文章。

首先,透過幾個數字簡介 CMU 這所學校:

  • Computer Science 世界排名第一(2010 年華爾街日報)
  • 校園人數約 6000 人,一屆交換生約 50 人(這屆兩個台灣人)
  • 學費是交大的 20 倍

而我修的課有:

  • Principles of Software Construction: Objects, Design, and Concurrency
  • Web Application Development
  • Network Security
  • Advanced Web Design

前三者是 CS 類的課,最後一個則是設計。除了選修的課,開學第一週我也多去一些後來沒有選的課旁聽,加上幾年前在 Stanford 修課的經驗,我想針對這兒修 CS 課與交大不同處列出來,先是 CMU 優於交大資工的部分,其次是交大資工優於 CMU 的部分。主要是討論修課使用的工具與修課方式,而非學生態度、文化之類的。

CMU 優於交大資工的部分(個人觀點)

Git

我所修需要寫 code 的課都用 Git 來發作業、交作業,所使用的是 Github 的 Organizations,可允許老師與助教個別 pull&push 非公開的程式碼給學生。比起 E3 好幾個莫名的跳出視窗好很多,而 Git 也是實際與人合作時必備的工具,從學校開始有很好的使用基礎。

當然,非公開的 Github 使用方式是要付費的,CMU 這樣的方式一門課約需要幾千塊台幣,而自行架設 Git Server 不妨是個省錢方式,例如吳育松老師網路安全實務的作業就使用 Git 繳交。

Piazza

從幾年前在 Stanford 修課到現在的 CMU ,這是幾乎每一堂課都會用到的平台,他能讓:

  • 學生自由發問問題(可匿名),老師、助教或其他同學可回答問題
  • 發布公告
  • 協助報告分組

就如同交大的 E3,但比較好用且跟 Email 結合挺好,所以有人發問或回答問題都會被通知。還記得有一堂課因為課程中太多人問問題,怕耽誤到進度,於是教授放一台 iPad 在講台,若有問題則用 Piazza 提問,教授會統一回答。上頭同學們總是很熱絡是這平台最有價值的地方吧!

Testing & Checkstyle

對於作業,我在交大的經驗是必須要達到作業要求的功能,而至於方式與品質若沒有要求就隨意。但 CMU 跟 Stanford 修課的經驗中,滿講究 code 的品質,以下幾個例子:

  • CMU 與 Stanford 的 Java 課程會要求學生寫完整的註解,前者甚至需要符合 JavaDoc 、跑 Checkstyle(檢查 code 所有細節的工具,包含註解完整性),完成後再寫 UnitTest 後檢查 Test 的覆蓋程度(是否每行 code 的所有情況都被測試過),最後才繳交作業。
  • CMU 與 Stanford 中與網頁前端有關的課程都會要求要經過 Validator 測試(檢查語法是否正確),其中包含 HTML 與 CSS 。

產學合作

主要講的是課程中有外部單位加入課程的部分,以下有幾個例子:

  • Rapid Prototyping 是一門讓不同領域學生選修、組成小組做作品的課程,我去上前兩堂課,學期中各組必須要設計出解決「客戶」需求的產品,而這學期的客戶則是醫療看護,於是課程中老師視訊了三位照顧病患的人,有病患家屬、護士與研究單位等。
  • Network Security 有期末 Project,今天老師才宣布有外部公司提供獎金給比較好的 Project。

Reading

交大大部份的課程靠老師的投影片就可以考試。而 CMU 跟 Stanford 滿多課都會被要求要讀課本或論文,有些課是在第一次上課發的課程行事曆中會包含每週應該要閱讀的課本章節,可能包含隨堂考;而我修的一門研究所課程則是每週要讀一兩篇論文並寫感想,若沒有讀的話上課容易聽不懂,所以一學期下來要讀的論文大概這麼多...

IMG_2160-2
交大資工優於 CMU 的部分(個人觀點)

圖書館

交大的圖書館藏書實在頗多,在學校總是可以很容易的借到幾乎任何一本電腦相關的書籍,且熱門的書籍甚至有好幾本,還有不少線上資源。 CMU 我則找不太到,也發現他的書並沒有很多,且課堂修課要用的書在學校書局也沒有賣,得自己上網買。

教授很親民

由於交換生不太能在選課系統上選課,所以 CMU 開學的第一週我花大半的時間在一一找教授加簽,也發現這兒大部份教授實在很忙,除非是修課生或有直接相關的事情, Email 常常不會被回覆。例如很多教授會在自己的網頁上寫怎樣的 Email 是會被他忽略的,而 Email 又該如何寫才可能被回覆,應該是因為他們 Email 都是公開的,必定有很多想要申請入學、申請研究工作或外部公司等的信吧!而在交大我們總是可以很容易找到教授、安排會面時間等。

結語

個人覺得課堂使用版本管理系統、作業要求寫測試與足夠的參考資料閱讀是在交大修課過程中不足的部分,但也是很容易學習的部分。而在美國的習慣中較個人主義,所以任何問題必須要自行去問,才有可能被解決,這也是我學習的過程之一;相對台灣,我們有很多的資源如圖書館跟教授其實都是很珍貴的。

延伸閱讀:

相關文章

評論