作者:研究生留學
連結:https://www.zhihu.com/question/36482395/answer/1609969110
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
先介紹一下自己,我是18fall入學CMU並就讀於MS ECE項目的同學,今天這篇文章主要給大家分享一下CMU ECE項目的相關信息和我個人的生活學習體驗,希望能夠幫助到想要申請該項目的同學。
基本情況
CMU的MS ECE項目為授課型項目,在入學時間方面提供了春季學期和秋季學期兩個選項供大家申請。
我們這屆ECE差不多錄取了200人左右,其中中國人佔比超過三分之一,與往屆只錄幾個人的情況相比,可以說擴招太多倍了。不過這個項目自開設以來就沒有一個比較明確的標準,它時而縮招時而擴招,錄取的bar也忽高忽低,變數比較大。

項目課程
我們項目要求學生在三學期內修滿96學分,且GPA大於等於3.0即可畢業。正常來說,CMU的每門課程為12學分,所以大家只需要修滿8門合規的課程就能剛好達到畢業要求。但實際情況是,為了維持F1簽證的身份,每個同學每學期至少要選夠36學分的課程,即至少選3門課來上。大多數同學也正是這麼做的,按照3-3-3的選課模式,三學期上九門課畢業。不過,ECE規定學生在項目期間所修學分不能超過120學分,所以也會有部分同學按照3-4-3或者3-3-4的模式來選課,三學期上十門課畢業。
相較於CMU的其他項目來說,ECE算是很自由了。它沒有必修課,從理論上來說,你對什麼方向感興趣就可以去選那個方向的課,且一般都能選到合適的課程。此外,ECE項目允許我們非CIT學院
的課程,但是最多選48學分,即一般情況下最多選4門,這個時候大家一般會選SCS
的課來上。我們CIT學院(主要指ECE和INI)其實能找到和CS cross-list(即同一門課,一起上課但課號不一樣)相關的課程以及很多CE和ML方向的課程,如果你們選本院的替代課就不必浪費外課的學分了,那4門外課對於想走system選課路線和轉碼的同學來說是完全足夠的。
另外,MS ECE項目雖然主要是以授課的形式開設,但是你如果想做research的話也可以,我們許多lab的research project還可以拿來抵學分,是非常值的。
下面,我就給大家推薦一下ECE項目的部分可選課程,希望大家到時候不要「踩雷」。

18600 Foundations of Computer Systems
大家應該有聽說過CMU的計算機系統入門神課15213/15513吧?18600是它的ECE版本,如今課號已經從18600改為了18613,內容和講授風格也越來越向15課程靠攏,想體驗15的同學一定不要錯過這門課。
這門課內容廣泛且有深度,學生可以循序漸進地掌握知識。課程從0/1bit操作這類基本的知識開始,逐漸涉及到進程、cache、I/O、並發、proxy、虛擬內存等系統概念,而且會針對相應的內容輔以相關的lab,讓學生進行練習鞏固,以便更好地消化所學內容,可以說設置得非常周到。
我個人認為這是轉碼系統方向的必修課,並極力推薦大家最好第一學期就能把它上了,這樣你們上完之後不僅可以對傳統的計算機系統體系建立起一個基礎全面的認識,而且也能給自身打下比較牢固的計算機基礎,之後有利於更好地學習高階系統課。而且有一些教授要求很嚴格,如果你沒有先修513/600就不會給你register。
大家到時候有兩位老師可以選擇,一位是John Shen,他長期在Intel和Nokia任職,有大量豐富的實踐經驗,講的知識也很硬核,會和我們分享自己的私貨,比如hardware、superscalar等,但是講課比較催眠;而另一位老師Saugata Ghose則是第一次上這門課,講課就是照本宣科,內容沒什麼延伸性和拓展性。你們到時候按照自己的想法去選就行了,但是如果覺得老師講得不好的話,去蹭513那邊的課或者看513對應的視頻也是可以的。此外我個人建議你有時間可以閱讀配套課本CSAPP
的對應章節,這樣能幫助你加深對內容的理解。

至於課程作業,我們這屆是7個lab,不過自18613開始多了一個幫助大家熟悉C的lab 0,也就是大家如果之後選了這門課的話一共要做8個lab。這些lab的內容很豐富,比如使用給定運算符進行bit manipulation、利用gdb閱讀調試彙編、實現簡易shell、實現malloc函數、進行cache simulation、實現支持HTTP GET請求的proxy等,大家可以隨意選擇。不過要注意的是這些lab需要全部用C在Andrew Unix machine環境下實現,用autolab測試,最後分數會包含coding style。總體來說,要完成這8個lab並不算太難,因為所有lab都會提供start code,handout也寫得比較清楚,而且老師留給大家做lab的時間比較寬裕,但要做好它們還是非常費神的,尤其是在後半學期,需要付出很多精力。
這門課的考試包括一個midterm和一個final,題目量大且靈活,我覺得和作業比起來,完成的難度會大一些。如果大家還想了解更多的信息的話,可以去CSAPP的官方網站看一下,網址是http://csapp.cs.cmu.edu/3e/labs.html。
17637 Web Application Development
這門課是由ISR
開設的,課程內容主要圍繞web的基礎知識展開,所涉範圍廣泛,包括但不限於HTTP、Django
相關概念(例如MVC)、ORM、cookie/session、database、DOM、jQuery、web security、WebSocket、mobile等,總之大家選了之後什麼都能學到一點。
我們春季和秋季學期都有開這門課,不過授課老師不一樣,課程安排也不太一樣。
秋季學期的授課老師是ISR的大佬Charlie Garrod和Joshua Sunshine,他們講課比較清楚,而且認真負責,還開了好多10-20人的section,把課堂重心放在了學生的自主探索上。比如Charlie課前會讓我們看許多視頻和材料,然後section就一般只講十幾分鐘,剩下的時間便是讓我們動手實踐完成in-class exercise,如果有不懂的地方就問教室里的TA。到了春季學期,老師被換成了Jeff Eppinger,課程變為lecture形式的授課,並取消了section和TA參與的in-class exercise部分。我覺得兩學期不同的課程安排各自都有利有弊,且處在變化之中,所以建議大家到時候選課前可以發郵件問問老師的具體安排再決定。

至於作業,這門課的課程作業包含兩部分,大家需要在前半學期和後半學期各完成一個任務。
前半學期是讓大家基於Django實現一個小型網站,而網站的實現是被分成若干個homework來完成的,網站本身也會以incremental的形式被不斷開發,即從最開始搭建純前端界面,之後不斷添加功能並完善,再增加Validation/Authentication/Authorization等要求,以及加入一些Ajax flavor等等,最後還會將網站部署到cloud上。此外,這個過程中還可能涉及到前後端測試、CI/CD pipeline搭建等等。所有作業會提交到GitHub的課程repo里,因此寫作業的過程中會使用到git。
後半學期則是以2-4人組隊的形式,無限制地實現一個稍微大型的網站。大家可以參考的網站類別有online game、類piazza、類Tripadvisor等。
關於課程考試,這門課一定會有final,題型包括選擇、填空和簡答。此外,老師還會讓我們在白紙上手寫一個Django app,我個人感覺有點硬核。
如果你是轉碼選手或者之前無項目積累、對web感興趣並希望以後從事web前後端開發的同學的話,我建議你一定不要錯過這門課。一是因為Diango操作簡單易於上手,二是web的相關概念相較於其他系統課而言理解起來較為容易;三是你可以把這門課的項目經歷寫到自己的簡歷上,這對找工是有利的。

17514 Principles of Software System Construction
這是一門由ISR開設的類似於軟體工程的好課。
總的來說,課程內容比較基礎,但是非常經典和實用,從class level到project level再到system level都會涉及到design,能夠鍛煉到學生的動手能力,而且還會講到design pattern、framework/library、testing和concurrency等若干software相關概念,上完這門課對大家之後的面試也很有幫助。此外,這門課的課堂例子是基於Java來講的,homework也是基於Java來做,所以你們可以把它當成一門Java語言課來上。
我們一共需要做6個作業,除了第5個需要組隊外,其他都由個人完成,其中比較好玩的有設計並實現Carcassonne桌游(帶GUI的)和寫一個data visualization framework等。至於workload,總體來說比較正常,只有Carcassonne比較耗時和難寫一點。最後的考試包含兩個midterm和一個final,難度都不是很大。
我個人覺得這門課可以一定程度上豐富簡歷並補充軟體設計的基礎知識,還可以順便寫點(相對高質量的)Java,因此非常適合轉碼選手。此外,類似於17637,大量依賴於GitHub和Travis CI的作業提交方式也會幫助掌握git版本控制技能和了解CI/CD pipeline的使用。

15640 Distributed Systems
DS是CMU非常著名的系統課之一,內容豐富翔實且深入淺出,如果大家認真學的話能夠學到很多有用的東西,我個人是強推它的。不過如果你想上這門課的話,600/513至少要達到B,否則沒法選上。
這門課在春季和秋季學期都有開,但是授課老師不一樣。
春季主要由Mahadev Satyanarayanan講授,這位教授非常厲害,他是AFS
和Coda
的發明者,同時也是edge computing
等雲計算領域的先驅。Satya的課側重於底層基礎,大體涵蓋了RPC、caching、distributed file system、scaling、failure recovery等內容,雖然他講課節奏很緩慢,但是我覺得也留給了學生一定消化的空間。而秋季課程偏應用一些,老師為Yuvraj Agarwal和Dave Andersen,他們的授課內容弱化了caching並加強了分布式系統的一致性部分,更注重實踐。
春季的project要求基於C和Java完成,包括實現基於RPC的遠程文件系統、實現一個簡易的AFS-like distributed file caching system、模擬scaling policy以及實現基於2PC的帶有failure recovery功能的簡單圖片合成系統;秋季的project要求基於Go完成,具體的要求大家可以自己去了解一下。這兩個學期的project均需使用autolab提交,且和其他系統課一樣帶有coding style分。
除了project之外,該課還有4個貫穿整學期的homework,跟考試題型相似,主要為簡答和計算。至於考試,這門課包含了一個midterm和一個final,題目雖然簡單,但題量大又注重考查細節,所以平均分不高,比較在意GPA的同學請慎選。
總體來說,這門課workload偏大,不過如果你堅持下來的話會覺得很充實,對於system design的概念也可能會有新的認識。

15719/18709 Advanced Cloud Computing
這門課是ECE兩大高階系統好課之一,另一門是Storage Systems,我在下文會提到。
它之所以被稱為好課,授課老師功不可沒。給我們上課的是Greg Ganger和George Amvrosiadis這對黃金搭檔,此外還有Majd Sakr給他們打輔助。
這兩位G老師都是雲計算、分布式文件系統、存儲系統等方向的集大成者,其中Greg還是PDL
的director,在系統方向頗有建樹,跟工業界的聯繫也比較多,所以他們會經常請FLAG的大佬們來作guest lecture,我們便可以藉此領略到工業界的前沿科技。
在講課方面,Greg偏幽默,習慣於把很深的知識以一種巧妙的易於理解的方式傳達給我們,方便我們消化。而George則更加嚴肅認真一點,和學生互動也更多一些,不過我覺得有點他的課堂有些催眠。他們經常交叉授課,互有特色又能相互補充,上下來真的讓人受益匪淺。
課前,老師會給我們布置幾篇論文或者技術文獻,以便我們閱讀之後加深對概念的理解。在課程中,老師會給我們講包含了cloud computing這一領域的各個經典概念,例如elasticity、virtualization、scheduling、fault tolerance等,還有各種cloud、distributed file/storage system實例等等,可謂非常精彩。

這門課要做3個project,分別是scaling policy設計、基於spark的大數據ETL以及模擬Kubernetes scheduling,均基於AWS完成,涉及到的語言有Python和Go等。我自己做下來感覺除了spark ETL比較令人頭禿外,其他的load都還行。它代碼量不大,但是writeup往往不是很清楚,再加之一些配置操作細節比較繁瑣,所以我還是建議新手慎選。
至於考試,包含了一個midterm和一個final。試題風格鮮明,題目靈活,題型多為簡答題。老師會側重於考察學生是否理解了各個系統的特點與design的tradeoff,需要你給出明確的選擇並利用課堂所學來論證你的觀點,非常考驗學生的學習能力。
CMU還開了一門「低階版」的ACC,即課程15619 Cloud Computing,我在這裡也跟大家簡單對比一下這兩門課。
CC沒有特別多lecture內容,也沒有paper閱讀要求等,但它的workload非常大,基本上每周都會有作業和quiz,旨在讓學生通過不斷練習來鞏固所學的知識。我覺得這門課對於大神來說就是在重複地做一些簡單的事情,所以更願意把它推薦給簡歷空白的小白。而對於一些已有基礎的大多數同學來說,我的建議是選ACC,因為ACC能更多地幫助你知其然也知其所以然,你上完這門課可能會有醍醐灌頂的感覺。
需要注意的是,ACC目前只在春季開設,而CC則春秋兩季都可以選,如果你上過CC就不需要再選ACC了。另外,由於DS和ACC的課程內容相互呼應,所以我建議大家把它們選在同一學期來上,收穫會更多。
對了,還有一門15688 Practical Data Science,據說是CMU數據科學版本的CC,大家感興趣的話可以自行了解一下。

15746/18746 Storage Systems
這就是ECE另一門高階系統好課,授課老師同樣是Greg Ganger和George Amvrosiadis,值得一提的是Greg是746這門課的創始人。
這門課不僅課堂風格與ACC相似,而且兩者在課程設置方面也差不多,老師會要求我們課前讀paper,然後他倆交替為我們講解lecture內容,後半學期會帶來許多guest lecture,我印象最深的是來自Google的對GFS
繼任者Colossus
的講解,暴力美學太酷了。
在課程內容安排上,這門課從微觀到宏觀,涉及到了許多SS相關內容,既有SSD/HDD的底層講解、FFS/LFS等經典文件系統的實現細節,又有RAID、分布式文件系統和存儲系統實例,還有data integrity、redundancy、backup等相關概念和應用,考慮得很全面。
我們一共會做2個project,均基於C/C++完成,運行和測試環境均部署在AWS上,但分別被拆成了3個checkpoint,所以會貫穿整個學期。因為項目重心可能比較偏向於後期,所以大家在後半學期的學習壓力比前半學期要大得多。
第一個做起來相對比較簡單,要求我們模擬實現SSD中的flash translation layer(FTL),涉及address mapping、garbage collection、wear leveling等概念;而第二個難度和代碼量都比較大,是基於FUSE實現一個hybrid file system(local SSD+AWS S3),功能較為強大(例如支持雲端傳輸的block-level deduplication,支持snapshot和caching等等)。

至於考試,SS跟ACC一樣,都有一個midterm和一個final。老師出題靈活,側重於深度考察我們對SS領域各種概念的理解。在試卷最後,老師還會給我們放一個bonus questions,我印象最深的一個問題是請選擇一種動物作為746的吉祥物,然後給的參考答案是「A beaver, because it cares about logs. There might be a fight with MIT, but totally worth it :-)」,感覺很有趣。
我個人非常喜歡Greg講課,再加之少有大學能夠以存儲系統為核心開設系統硬課、上完課你們還能將hybrid file system作為一個完整的project放在簡歷上,所以我個人是由衷推薦這門課的。大家需要注意的是,SS只在秋季開設,如果你們春季上完ACC並喜歡這兩位老師風格的話,不妨秋季試選看看。
15651 Algorithm Design and Analysis
這門課19 fall的老師是Gary Miller和Danny Sleator,兩位妥妥的大牛。
Gary是Rabin素數測試演算法
的提出者之一,651課程的創始人,講這門課已經有40餘年了,經驗非常豐富。而Danny則是splay tree
的發明者,amortized analysis等領域的先驅,在實踐方面絕對是高手。
我個人很喜歡這門課的課堂氛圍,Gary總是面帶微笑,講課時會沉浸在自己的狀態里,語速比較快,而Danny則總是眉頭緊鎖,隨時準備應對各種奇怪問題,他們兩人組隊講課能夠碰撞出特別奇妙的化學反應。這門課的TA也很厲害,對我們幫助很大。

老師們準備的課程內容不僅非常廣泛,而且也有極有深度,他們會給我們講DP、DFS、max flow、hashing、LP等經典知識,也會把自己的研究和見解分享給我們,比如splay tree、ball growing、計算幾何學、backward analysis、parallel MIS等等,我覺得這樣的機會是很寶貴的。
我們一共需要做7個作業,其中3個是oral presentation,另外4個則需要提交LaTex。因為這些作業的workload都比較大,所以可以3人組隊完成。具體的作業構成幾乎是清一色的3道演算法題+1道coding。
演算法題難度較大,一般跟課上所學緊密相關,老師往往要求我們針對描述的問題,給出一個時空複雜度滿足要求的演算法,然後證明演算法的正確性等等,比較考驗個人的理解、推導和證明能力。我建議大家到時候如果思路不清晰的話,可以去piazza瘋狂轟炸TA或者去office hour求助來獲得靈感,還有就是要多和自己的隊友交流,集思廣益。而coding是基於autolab測試的,也會跟所學有所關聯,但是做起來沒有那麼簡單。case數量很多,時空複雜度要求很高,老師給我們出的題也往往是帶迷惑性的,例如看上去需要max flow解決的問題,實則必須用DP才不會time out之類的,很費腦筋。老師在給分方面也比較嚴格,錯3個case及以上就是0分,完全不留情面。
除了作業以外,我們每周都有一個quiz來幫助大家鞏固所學。

至於考核方面,這門課的考試包含兩個midterm和一個final,難度較大,課程給分也很是嚴格,curve以後只有20%的A,其餘大概會有40%左右的B和40%左右的C,以及若干fail,在意GPA的同學請慎選。
就我個人來講,這門演算法課是我在CMU最喜歡的課,所以我強烈安利給大家!如果你們想要學好CS的話一定不能錯過這堂演算法課。但是,客觀地說,這門課老師講課速度快,作業和考試難度也較大,費時較多,其實不太適合零基礎的小白。對於想要把精力留在刷題上的找工黨來說,這門課對你刷題也沒有特別多和特別快速直接的幫助,因為能力的提升畢竟需要一個潛移默化的緩慢過程。不過,在選擇之後堅持下來的同學,你們到時候會發現自己對於許多演算法和資料結構的理解會有質的提升,我認為這是非常值得的。
15750 Graduate Algorithms
這是Gary於春季開設的一門高階演算法課,涉及到了Van Emde Boas tree、斐波那契堆等內容。內容與651有部分重疊,對演算法感興趣又覺得651簡單的同學可以直接考慮這門課。

17681 Java for Application Programmers/17683 Data Structures for Application Programmers
這是ISR開設的兩門mini課(每門mini課的學分為6分),均由Terry Lee主講,我認為非常適合那些沒有代碼積累、不了解OOD、對資料結構無概念的小白入門,大神們也可以把它當作水課來搭配使用。總之,我身邊上過這門課的同學都說它非常好,值得一選。
15618 Parallel Computer Architecture and Programming
PP是CMU的經典CS系統好課之一,我個人也給大家強推這門課。這門課的其中一位授課老師Randal Bryant同時也是CSAPP的作者之一。由於這門課實在是太過於熱門,所以每年waitlist都會被排爆,我在這裡告訴大家一個tip,那就是你即使在waitlist上也要按時上課和交作業,這樣就能優先排進去。它的project由individual和team構成,據說load較大但做完收穫很多。我身邊有人憑著課上所學最後去了Apple做GPU加速,所以我認為這門課對於找工的同學來說,一定是個加分項。
15662 Computer Graphics
這是一門很有趣的計算機圖形學入門課,內容涉及圖形學領域的方方面面。作業是基於OpenGL實現若干與rasterization、animation等相關的project,load較大,debug時間較多。我身邊有人推薦PP+CG一起上,你們可以試試看。相關課程還有15663(Computational Photography)、15664(Technical Animation)、15666(Computer Game Programming)等。

18645 How to Write Fast Code
這門課是ECE開設的破產版PP,雖然workload相較於PP會小很多,但是課程質量遠不及PP。如果你對並行計算感興趣、但是又不想自己太累,或者不想佔用48學分名額的話,我建議你可以試選,選上之後可以去蹭PP的lecture視頻,這樣既能學到想學的知識,又不至於負荷過大的workload。
15645 Database Systems
DB是CMU的經典CS系統好課之一,授課老師Andy Pavlo是DB領域的狂人,他還是上文所說的PDL的成員之一,跟Greg、Dave等人交流密切,我個人建議如果你對資料庫非常感興趣的話一定要pick它。
不過這門課只在秋季開設,並且超級熱門,所以你可能選不上。而且課程的project均要求基於C++來做,不僅workload很大且對沒寫過C類語言的人非常不友好,所以你也可能對它感興趣但又不是很願意上。這都沒關係,因為我們貼心的Andy老師會錄製lecture視頻並發布在Youtube上,piazza的許可權也對未選課生開放,如果你想的話,完全可以參與到課程中去。
此外,Andy在春季還開設了另一門DB有關的課程 15721(Advanced Database Systems),貌似load比645要小,大家如果感興趣的話可以自己去了解一下。

15641 Computer Networks
這是一門網路CS課程,但是它的課程內容設置比國內的一般計網課程強了好幾檔,具體從作業要求基於C實現TCP、實現類Netflix streaming功能等就可見一斑,因此workload也較大。授課老師Justine Sherry之前是伯克利的,他給我們講課的時候特別有活力,還會經常給我們發糖吃,課堂氛圍很好。總之,這門課相對小眾但質量很高,我推薦大家去上一上。
18741 Computer Networks
這是ECE版本的CN,但內容跟15版本相差較大,比較偏向於鏈路層和信號處理,load也相對較小。不想佔用40學分名額但又對CN感興趣的同學可以試選。
15410 Operating System Design and Implementation/15411 Compiler Design
這是CMU流傳已久的兩門鎮校神課,雖然課號都是4開頭但load巨大。這兩門課的學分均為15,所以如果你們都想選的話就會佔到30分的外課學分,剩下的16分貌似最多就只能選一門外課了。不過如果你在暑期先修513課程(這樣513隻用佔到6學分,弊端是要多交6學分的學費)的話,這樣就能夠上夠四門CS外課,即15410+15411+15513+15XXX。
其實這門課對找工的幫助還蠻大的,我身邊有大佬堅持了一學期扛下來了OS並最終去了Apple寫kernel,TOC的時候有個小公司直接說如果你上過OS並且成績還OK,就可以直接去他們公司工作。

17645 Software Engineering for AI-Enabled Systems
這是ISR於19 fall新開設的軟體課,我有朋友上過覺得還不錯,感興趣的朋友不妨試一試。
14741/18631 Introduction to Information Security
這是ECE開的security課程,lecture比較無聊,但作業以CTF形式呈現,挺有趣的,workload對大多數人來說應該都比較適中。另外一門security相關的課程是18730(Introduction to Computer Security),據說課程內容艱深晦澀且給分不高,在意GPA的同學請慎選。
11755/18797 Machine Learning for Signal Processing
這門課比較適合本科具有信號和圖像處理背景的同學以及刷題找工黨來上,可以作為一個緩衝,跟硬課搭配使用。
18661 Machine Learning
這是ECE開的ML入門課,課程乾貨十足。對比10601,18661能夠幫助你夯實理論基礎,而且還不會佔外課學分。

11661 Search Engines
這門課的內容和作業都很好,但考試就是死記硬背,我個人不是非常推薦。
10707 Deep Learning/11785 Deep Learning
這兩門DL課,我個人比較推薦785,因為707的課程設計問題比較大。
11747 NN4NLP
這門課沒什麼好說的,我心中永遠滴神。
此外,我們還有24780 Engineering Computation、18794 Pattern Recognition Theory、18749 Building Reliable Distributed Systems這幾門課,大家完全可以把它們當做水課來上。
總體來說,我覺得CMU的大部分課程質量都很好,對於我們更好地掌握現學的知識是有益的。大家還可以把那些做得不錯的course project放在簡歷上,以便日後找工。至於workload,我個人覺得還是蠻大的,因為我之前在國內的時候幾乎不怎麼學習,但是到了CMU之後經常學習到一兩點才坐escort回家,學習狀態對比強烈。但是只要你認真努力了,一般都能拿到A/B。

就業
在就業方面,CMU會為學生提供career service,具體工作是幫忙修改簡歷上的格式和語法錯誤以及教你一些面試技巧,我個人覺得作用不是很大。
學校也會有cf,因為開的比較早所以建議大家提前準備好簡歷和自我介紹,不然的話很可能會白跑一趟。
我自己當時找工的時候主要是在LinkedIn上獲取求職信息,感覺還比較有用。
大家其實不用太擔心上岸的問題,雖說CMU的peer pressure較大,但是往屆找全職的情況很好,而且我認識的大部分ECE同學大部分也都拿到實習offer了。
生活
我們這屆錄取了挺多中國人的,而且整個CMU也有很多國人,所以我平時基本都待在以說中文為主的社交圈裡,每周就跟朋友一起約約飯打打球,沒有跟外國同學party過。但是我感覺大家還是得重視一下口語問題。在來美國之前,我T 105、口語23,剛到這邊的時候遇到口音比較重的外國人根本聽不懂他在說什麼,不過現在上課的話基本沒啥問題了。大家要是想提高口語的話可以在做project的時候和外國人組隊。
