CSE(Computational Science and Engineering)介紹及個人選系策略

M.C.Chang
人生、體驗
Published in
10 min readJan 23, 2020

本文最新版本已移至下列網址:

https://mcchanglife.com/zh/intro-to-cse-zh/

介紹完美國碩博士的概念後,接著講下我所申請的CSE科系,因為大家都不清楚其學科的概念,很多人會和資工系(CS)搞混…。

Photo by Oscar Nord on Unsplash

CSE特色

CSE (Computational Science and Engineering)(可譯為計算科學) 是個跨領域的學科, 主要涉及到三大領域,分別是數學統計、資訊工程以及一特定的工程或科學之領域,而此學科的目的即為運用數值計算的方法,來解決各種難題。

所以在這跨領域學科中,對我這種特定工程領域的人,需要額外學習數學及資工相關的課程。下面的鏈結是篇關於CSE 的教育及研究方向的 paper,想研究的可以自己下載看看。

Minor / Master / PhD

與一般的工程學科不太相同,部分學校的CSE學程提供碩士學位與博士學位的選項(e.g. Gatech, UCSD, UT Austin…),但有些不提供博士學位(e.g. UPenn, Harvard…),也有另一部分學校僅將CSE作為PhD學生的Minor,不能直接攻讀CSE作為一個獨立學位(e.g. Cornell, UMich…),有點複雜。

會有如此多的攻讀選項為CSE本身特性使然,CSE有二種發展方向:

  • 開發、分析與測試CSE演算法與其軟體
  • 針對特定學科發展CSE方法

第1種可藉由攻讀CS/Statistics/Math…學位來實現目標,而第2種則是輔助其他工程領域,研究重心仍在特定學科(e.g. ME, CHE, MSE…)。綜合下來,就會發覺CSE似乎沒有獨立出來的必要性,因此有不少學校將CSE設置為Minor而非獨立出來。

Computational Science and Engineering (CSE) / Computer Science (CS) / Computer Engineering (CE)

在名稱上,CSE/CS/CE長的很像,畢竟共用3個英文字母,且都是C開頭,若不解釋細節,容易混為一談。但在概念上,彼此之間的差別明顯許多,CSE著重模擬計算方面的理論及應用,像演算法、數值分析、平行運算,CS著重於整體的電腦科學知識,因此在資訊領域的發展較CSE廣,有Computer Vision, Financial Engineering, Artificial Intelligence, Software Engineering, Distributed System, Web Development…,當然CSE也是CS的其一發展方向,最後CE則是CS + EE,著重於電腦軟體與硬體的結合,故CSE與CE的關聯性相較CS小很多。

由上方圓餅圖可知,CSE為CS的其一子領域(像HPC, High Performance Computing),故在研讀CSE學科時必然會接觸到部分CS的課程,這也是CSE可作為CS跳板的重要理由之一

名稱上,可從英文字母 C 的全稱看出差別,但要特別注意,並不是所有學校的CSE都是計算科學,像是UCSD的CSE是Computer Science and Engineering,CSME (Computational Science, Mathematics & Engineering)才是我所提的CSE概念。

課程

課程學習上,CSE 與 CS 有部分重疊,尤其是數據處理的部分,相較之下, CSE 與 CE 關係不大,就不進一步討論。 在工作的數量提供上,現在美國是 CS 獨大,因此有部份人士,為了在畢業後能找到高薪軟體工程師的工作,選擇就讀 CS 或是與 CS 相關的科系 (CE, ECE…)。 但因開設 CSE 學程的學校較少,且此學程涉及到數學及工程科系的課程,所以比較少人選擇 CSE 作為CS的跳板

需注意的是,在 CSE 領域內的 CS 部分較強調 HPC (High Performance Computing) 以及 ML (Machine Learning) 等與數據或計算相關的分支,即使CSE有CS的相關課程,但課程設計上通常與 SDE 等主流職缺較無關聯。 因此,若想從 CSE下手轉成 CS,最好先至科系網站上查看或向已就讀的學長姐詢問選課詳細規定及未來就業狀況,避免到時候無法順利選修到與找 software 工作相關的課程。

Computational Science (CSE) / Data Science (DS)

在名稱上,CSE容易與CS搞混,而在概念上,CSE與DS極為相似。因此下面接著介紹CSE與DS的不同之處。

相同處:知識涉略

在講不同處之前,先介紹CSE與DS的共通點,二者皆為跨領域學科,主軸皆為處理計算方法與數據分析

相異處:目的

相較之下,CSE與DS的差別在於目的:CSE主要解決工程與科學方面的模擬分析難題,舉凡分子動力學、流體力學、有限單元法等,最終目的圍繞於特定學科,而這些領域極大部分是學工程的同學才會涉略到,而DS是詮釋與分析大量的數據,而來源的數據不限於模擬分析的結果,只要是你能想像的「大數據」基本上皆適用,最終目的圍繞數據本身。

職涯發展

首先介紹Data Science的相關職涯發展,常看到的有

  • Data Scientist
  • Data Analyst
  • Data Engineer

可以看出,職位名稱都與Data有關,而CSE的話,複習一下未來的2條路:

  • 開發、分析與測試CSE演算法與其軟體
  • 針對特定學科發展CSE方法

故對應到的職位類別即為

  • Software Developer (ANSYS…)
  • Mechanical/Chemical/Biological Engineer…

相較DS,CSE的選擇較為發散,端看你想研究哪個領域,而決定未來方向,至少我沒聽過Computational Engineer等統合性的職位名稱。

因Penn同時具備CSE與DS的學程,故在下面放上Penn對於此二學程的解說:

DATS vs. SCMP (upenn.edu)

最後提個重點,此段討論不含轉碼(SDE),這完全是另一回事

個人科系選擇

我大學的背景是機械系,專攻熱流組,並且有修Numerical Analysis以及Finite Element Method等與計算相關的課程。所以在申請科系的選擇上,除了本專業ME外,我也申請了CSE以及CS,以下是我對於每個科系的申請考量:

CS

首先先講 CS,因為最單純。由於我個人幾乎沒有編程背景,我只選擇接受 CS 零基礎申請者的 CS 學程,並規劃在畢業後直接找 software 相關的熱門工作,完全不考慮修讀 CSE 及 ME 領域的課程,更不會就讀 PhD,就是硬轉 CS 的概念。

我只選擇USC CS 37,其他比較熱門的有UChicago MPCS、UPenn MCIT以及NEU CS Align等,但MPCS主要在晚上開課、MCIT的申請難度過大,NEU的話…本身校譽還好,重點是我的英文成績沒有達標QQ。

ME

第二種類性是幹本行 ME,在 ME 中,計畫修讀熱流方向的專業課程和做相關研究,而在熱流領域中我較偏好散熱,因此我會特別注重學校是否有專精在熱傳領域。

選擇此方向後,會考慮繼續就讀 PhD,畢竟熱流本身也偏向研究性質,而我查到的工作崗位需求也偏好 PhD。若學校沒有提供 CSE 的學程且本身在熱流領域不強,就有考慮修讀機械領域的其他分支,像是設計製造、控制,或是選擇 Computational Engineering 等與 CSE 相似的分支。

CSE

最後則是 CSE,CSE 的情況最為複雜。因 CSE 本身為新興的跨領域科系,且各個學校對此種科系的著重點不盡相同,所以我會根據學程網站的說明及學生的未來出路來分別決定每個學校的 CSE 中想走的路。大致分成以下二種:

  • CSE←→ME

跟隨 CSE 學程創立的初衷,運用數值計算的方法,來解決機械領域上遇到的難題。我決定的機械領域有二種,分別是較廣的有限單元法 (FEM, Finite Element Method) 以及較專精的數值流體力學 (CFD, Computational Fluid Dynamics), 我個人都接受且都有興趣。若選擇此方向,也會有高機率就讀 PhD。

  • CSE→CS

有的學校即使有開 CSE 類型的學程,但在機械方面的發展不強或是沒有合作關係。在此背景下,較難執行上述規劃,因此 CSE 的第二方向為轉 CS,具體來說,修讀 CS 好找工作的課,畢業後找 software 相關工作,跟 CS 的規劃一樣,但 CSE 修讀此種課程的可行性要看各校規定,因此要事先研究,避免產生兩頭空的情況。在文件撰寫上,我仍然盡量描述 CSE 及 ME 間的連結,因我個人 CS 背景完全不夠,所以無法在文件中直接強調「我就想轉 CS」。

當然,即使做了上述對於未來粗略的規劃,還是會有很大的變數。像是攻博,若是單純為了學位及工作需要而就讀,我很有可能撐不下去,因此除了遵從原訂方向外,若有變數發生,自己應保有彈性並作相對應之調整。

未來職涯發展

上面是以學程作為分析的出發點,而最後此段是以職位本身作為分析,較為實際。

如果未來碩士畢業後想去FLAG等軟體業當SDE,能否找到工作,修課重要性不高(是相對的,非不重要),英文溝通、刷題與先前的軟體方面工作經驗(intern, full-time)才是相對重要之部分。說實話,僅靠幾門碩士課程難以證明此人具備專業能力,或者也可以說,工作需求的能力不會在學校學到,這點非僅限於CS,極多的工程領域皆適用,能否快速吸收知識(潛力),實際解決問題的能力與提高績效才是工作上的重點,或者說,是公司選拔人才的考量。

而實際上,去查看各個與CS相關的職涯發展(e.g. ECE, DS, CSE…)即可得知,大部分的畢業生最終選擇SDE,皆與原科系的發展初衷不符,這也是無可奈何,畢竟薪資與職缺數量擺在眼前,除此之外,還有身分問題,機械系特別有感QQ。

既然學校課程相對不重要,為何還是眾人爭相申請CS?答案很簡單,主要是簽證與過履歷關,下篇將會介紹簽證方面的資訊。而履歷關的話,想像一下,有位機械系的畢業生直接去投軟體工程師的職缺,在職缺與機械專業沒有明顯連結的前提下,HR一看到學校科系直接無視此份履歷,不想浪費時間,即使在校時修了不少CS課,因系名不同被打槍也是合乎常理,但如果是Stanford等級的學校就當我沒說...。

--

--

M.C.Chang
人生、體驗

Now I work as a system analyst in the United States. I graduated from UPenn SCMP. contact info: contact@mcchanglife.com or LinkedIn