Wednesday, January 21, 2015

[CMU v.s. 交大] - 學期初修課心得


前言

在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滿多課都會被要求要讀課本或論文,有些課是在第一次上課發的課程行事曆中會包含每週應該要閱讀的課本章節,可能包含隨堂考;而我修的一門研究所課程則是每週要讀一兩篇論文並寫感想,若沒有讀的話上課容易聽不懂,所以一學期下來要讀的論文大概這麼多...


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

圖書館

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

教授很親民

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

結語

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