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

「每日睡五至六小時,但對於生活中遇到的每件事情都讓我很興奮,特別是在這裡新認識的每一個人;而,這篇文章我會將重點放在修課部分,以及我們可以學習的地方。」
評論
評論

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

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

前言

在 Carnegie Mellon University 交換的日子已經邁入期中,我所修的其中一門課考完了期中考,其餘的則有 Project 在進行中。與學期初修課心得的想法的是一樣:希望把我所見所聞跟更多人分享。

在 CMU 要同時兼顧課業、社交活動與睡覺實在很困難,而我近日的時間安排則是:

  • 早上:寫作業、準備當日上課需要的閱讀
  • 下午:上課或討論 Project
  • 晚上:參與活動或與同學討論作業
  • 深夜:繼續寫作業

每日睡五至六小時,但對於生活中遇到的每件事情都讓我很興奮,特別是在這裡新認識的每一個人;而,這篇文章我會將重點放在修課部分,以及我們可以學習的地方。

修課

這學期我總共修了四門課,分別是 Principles of Software Construction: Objects, Design, and Concurrency、Web Application Development、Network Security 與 Advanced Web Design,以下我簡短介紹這幾門課的內容與特別的地方,而在「反思」的部分則描述與交大相呼應、可學習的地方。

Principles of Software Construction: Objects, Design, and Concurrency

這是 CS 二年級的課,但我在課程中認識的人大部份都已經是研究生了。內容以比較高角度的方式看寫程式的架構與設計,講述抽象的程式設計概念(Design Pattern)並學習畫 UML 圖(例如程式流程圖、物件關係圖等)。
這堂課每週都有作業,也是我起先花最多時間寫作業的一門課,使用 Java:

  • 第一週作業:用 BFS 找出朋友關係圖中,兩個朋友的距離
  • 第二週作業:用 Dijkstra's Algorithm 找最短路徑
    • 使用匹茲堡真實的公車路線資料,規劃使用者如何從 A 站搭車到 B 站(如同 Google Map 的路線規劃)
    • 需要寫 Java 的 UnitTest 達到 100% line coverage(就是每一行自己寫的程式碼都要寫出對應的測試程式)
    • 通過 CheckStyle(即 Java 程式碼中的排版需要符合規定,並且有標準完整的註解)
  • 第三週作業:模擬匹茲堡城市中的公車與搭車情況
    • 練習中型規模的程式如何設計,作業中車子、車站與乘客之間有多種相互關係
    • 模擬各種細節情況,如: 10% 的人若是搭輪椅延後上下車時間,影響全部公車是否準時到達的比例是多少
    • 使用多種課程學到的設計概念

第二週作業我寫起來有 5000 行的程式碼,第三週不加測試碼的話則有 7000 行,是挺辛苦的一門課。下課時間德國教授被一大群的中國學生圍成一圈詢問作業的問題,過了快一小時都不能離開。然而,上週的期中考之後情況好許多,我也漸漸習慣這裡的作業方式了。

反思

  • 交大程式教學重視語法跟完成度,但幾乎不管設計想法 :我記得在交大第一堂 C 語言的課在教不同資料型態的語法;而在 Stanford 學習第一堂 CS 課程時候,教授刻意在前期都不講語法,而透過包裝好的教材(Stanford Karel)學習從較抽象的角度開始思考程式。同時,在交大多數助教並不會看每位同學的程式碼,但在 CMU 連變數名稱取不夠好都會被寫盡評分的回覆裡。
  • 交大程式課程沒有涵蓋「測試」:從這門課的要求中可以看出寫測試碼佔很重要的比重,每寫一小段程式碼就必須寫一段對應的 Unit Test 測試碼。

Web Application Development

這一門課是 Software Engineering 的前期入門課,也算是很多人修的二年級課,但交大其實並沒有對應的課程。

這是一堂同時跨四年級與研究所的課程,學習用 Django 寫網路應用程式,是學校十分熱門的一門課,而每週都有作業。我個人先前恰好學過大部份的內容,所以還行,但對於沒有學過的同學,幾乎是一週要學一個新的語言:

  • 第一週作業:用 CSS/HTML 繪製出一個計算機
  • 第二週作業:讓計算機會動(我的做起來像 這樣
  • 第三週作業:讓計算機在 Django 上跑
  • 第四~第六週作業:寫一個社群網站,可以註冊、登入、留言、評論與追蹤等
作業是做一個類似於 Facebook 的社群網站

反思

交大的網路應用程式設計並沒跟上時代,多數同學都是自學 :應用程式在交大的重視度較小,而網路應用程式則被包含在資料庫這門課底下,使用 PHP;雖然 PHP 不失一種易學習的語言,但有較完整架構的 Django 或 ROR 並沒有課程在教,而 CMU 這裡則是已經從 Java 換到熱門的 Django 架構(今年)。

Network Security

這門是研究所的課程,與矽谷校區的同學同步,所以上課前都會開啟教室視訊,對方教室的同學也可以發問。是一位印度教授在授課,剛開始的前幾週偶而會漏掉幾個聽不懂的字,但漸漸有改善。

除了上課以外,這門課到目前為止做了:

  • 每次上課前閱讀一至兩份論文
  • 作業一份:寫防火牆
  • Project 討論

論文一篇約十幾頁至三十幾頁,起先我需要花半天的時間才能瞭解一篇論文大概在講述什麼,漸漸的配合上閱讀技巧,可以在兩小時內抓到一篇論文的討論的重點,也會稍微跳過一些細節部分。

其中防火牆作業用到我過往在交大 OSDI 課程中學到閱讀大型程式的方式(cscope, ctags)以及修改 kernel code 的經驗,而有些同學並沒有相關的經驗則在這次作業中挺卡關。

Project 部分近日也在進行中,我們會與微軟的一位研究員一同合作、定期開會討論,成員有韓裔美國人、土耳其人與印度人,與其他成員聊天、討論是最有趣的部分。

反思

  • 交大要求的閱讀並不多 :雖然許多課程都有買教科書,但是會閱讀完的同學並不多,我認為與學習環境的關係最大,如果多加些閱讀的作業會有幫助。
  • 交大課堂產學合作較少 :如這堂課我們組選定主題之後,老師找了一位微軟的研究員與我們共同進行,所以可以使用到微軟的資源,最重要的是研究內容可以使用真實在運作的服務,而非只是實驗室內的小模擬。

Advanced Web Design

這是設計學院的課程,教的是進階的網頁設計,相對於其他 CS 的課程,這門課其實相對輕鬆許多,老師對於作業的要求較有彈性,也很重視討論,於是有一半的課程只有討論,大家跟附近的同學聊天、老師則會與同學一一了解情況。

第一次作業是將現有的 FBI 網頁改成現代的新網頁,同時支援電腦、平板與手機(我的作業在 這裡),設計是一個不斷問題修正與討論的過程,寫作業的過程是我學習到最多的部分。
由於交大沒有相對應的課程,所以「反思」部分則略過。

整體修課而言

  • 交大修課其實是很輕鬆的
    • 交大作業期限通常是兩週以上,而 CMU 作業大部份是每週一份,且都滿大份的。
    • 交大上課同學打混比較多,在 CMU 多數人都很專注,且積極問問題,特別是 Design Pattern 那門課,如果錯過一些概念就會跟不上。
CMU 的資工系大樓,比爾蓋茲所建

結語

雖然生活很繁忙,但是我十分喜歡這裡,在課程中學到的東西比以往扎實許多,而每一個不懂的地方都可以問很清楚,身邊也有很多實事求是、打破砂鍋問到底的同學,我也認為這是求學最好的態度。

延伸閱讀:


精準媒合,成為企業 100% 留用的 5G 新星

「大家最為關心的,就是人才缺口」經濟部工業局呂正華局長點出產業問題缺口,與資策會教研所、學界攜手合作,自去年起,已超過 600 名新星參與 5G 產業媒合。
評論
經濟部工業局呂正華局長洞察產業痛點,積極培養新興人才。 Photo Credit: 5G+ 產業新星揚帆啟航計畫團隊
評論

「大家最為關心的,就是人才缺口」經濟部工業局呂正華局長點出產業問題缺口,與資策會教研所、學界攜手合作,自去年起,已超過 600 名新星參與 5G 產業媒合。


第一次工業革命催生了現今的製造業,而 5G 將驅動世界又一次進化。 5G 網路具備超大頻寬、海量連結、超低延遲等特性,網速比 4G 快 10 倍以上,透過專網覆蓋,能承載各種需要龐大資料流量的智慧化服務,讓過去只存在於科幻小說中的場景有望逐一實現。

根據全球行動通信協會( GSMA )統計,至今( 2021 )年 6 月已有 69 個國家、 166 家電信廠商推出 5G 服務,顯見各國都強力聚焦發展 5G 通訊科技,預計 2025 年可達 18 億用戶規模。臺灣也於去年 2 月完成國內首波 5G 頻段競標,各大電信業者積極建設基地台,不落於美、日、韓等國之後。

雖然在疫情肆虐下不免打亂既有布局,但正因我們的食衣住行育樂都被迫數位化,反而讓 5G 在數位醫療、虛擬娛樂、擴增實境、加密裝置等跨領域的應用,因為需求而產生更多可能性。企業趁疫情之際加強練兵,加快轉型升級腳步,也需要更多新血加入。

首重跨領域 企業樂於從頭培養人才

經濟部工業局長呂正華表示,臺灣資通訊產業發展成熟,政府也全力扶植,「大家最為關心的,就是缺人才」。儘管商機潛力無窮,許多致力於商品化的企業都還是頻喊找不到人。

為此,工業局去年開始推動「 5G+ 產業新星揚帆啟航計畫」(以下簡稱 5G+  新星計畫),以「產業出題,人才實戰」模式媒合產學研發,目前已收穫相當成果;兩屆推動下來,已有上百家企業及大專校院參與,超過 600 名學生及應屆畢業生參與企業實戰活動。

呂正華說明,「產業出題,人才實戰」的專題都是企業在 5G 商用研發過程中實際遇到的問題,讓學生挑戰解題,為企業發展真正可用的解決方案,進而協助企業從內部「做中學」( OJT )培養切合需求的即戰力,目前參與計畫的企業對於學生留用意願達 100% ;因此「精準媒合,不管是對企業、對人才都能少掉很多碰撞和磨合,節省徵才和求職的成本。」

計畫不僅媒合企業資源,更辦理實戰工作坊,強化數位職能。Photo Credit:  5G+產業新星揚帆啟航計畫團隊
計畫不僅媒合企業資源,更辦理實戰工作坊,強化 5G 職能。Photo Credit:  5G+產業新星揚帆啟航計畫團隊

此外,呂正華也表示,因為 5G 應用是電機、機械、光電、材料等不同領域的結合,極需要跨領域的人才,企業很願意從頭培養,「所以態度比科系更重要」。

呂正華舉例,由交大資工系衍生之研發服務公司詮隼科技,曾面臨年薪 150 萬的職缺無人應徵的窘境,去年加入計畫,成功從內部培養出好幾位優秀人才,其中一位是中興大學中文系畢業的黃予璿,黃同學善用跨領域思考能力,在公司開發資安自動測試服務方面貢獻良多,文組與理組看似交集不多,可是只要有興趣,人人都能從 5G 行業中找到適合自己的工作。

電子五哥之一的仁寶電腦近年積極進行數位轉型,成立 5G 實驗室,鎖定智慧農業、智慧製造、健康醫療、雲端遊戲和終端設備等應用領域,並在去年透過 5G+ 新星計畫成功招募 19 位新血,藉由計畫的加值,培育人才並同步發展 5G 商業應用。

其中臺北教育大學玩具與遊戲設計所的研究生王凱瀚,過去從沒想過自己能加入科技業大公司,藉由計畫才有機會參與仁寶電腦的研發實戰。期間投入「 5G 邊緣運算技術智慧遊戲應用平台」研究,融合本身在數位內容和網頁設計的專業,進行雲端遊戲、虛擬實境解決方案與工具包的開發,最後獲得研發專題冠軍殊榮。

業師、培訓課程系統性帶領,加入 5G 創新研發

同時,「企業常反映學生在學校學的知識實際上沒辦法用,所以我們開的課要符合企業實戰需求。」呂正華說明, 5G+ 新星計畫也提供系統性的線上課程,特別引進諾基亞貝爾實驗室(Nokia Bell Labs)等 5G 專業培訓課程,並規劃包括天線、射頻、晶片封測、關鍵材料、小基站/無線接取、 SDN/ NFV(軟體定義網路/網路虛擬化)等 6 大領域職能地圖。仁寶電腦、雲達科技、亞旭電腦等企業都將其納入內部教育訓練規劃,也採用 5G JUMP 的線上課程強化員工 5G 職能。

計畫也與交大產業加速器( IAPS )、臺科大育成中心等機構合作培育創新應用師資,以帶領新創公司加速 5G 應用服務的開發,目前已成功培育 23 名業師顧問並輔導 12 組新創團隊,更有 2 家新創公司從去年接受輔導的角色,到今年成功商轉並擔任計畫的出題企業,形成正向循環。

呂正華說,5G 跨域應用是非走不可的路,臺灣已擁有完整 5G 生態系的基礎能量,涵蓋半導體、電子零組件、伺服器、網通與終端設備等產業,馬步紮得穩、紮得深,可在國際競爭中站穩腳步。 5G 新星計畫將作為產學培育人才的溝通橋樑,期待未來培養出更多生力軍,加速臺灣邁入 5G 紀元的步伐。

經濟部工業局 廣告