
Computer Science 計算機專業
在美國大學,計算機專業主要分為計算機科學(Computer Science,簡稱CS)和計算機工程(Computer Engineering,簡稱CE),還有計算機科學與工程、計算機科學與數學等混合交叉專業。計算機科學和計算機工程雖同屬于計算機專業但學習內容還是有一些不同的。計算機科學屬于理科,主要研究計算機理論基礎及其運用,理論性更強。相比于計算機工程,CS(計算機科學)的研究領域更廣,下設許多分支,例如人工智能、計算機程序設計、計算理論、計算機圖形、數據庫建設、信息技術、信息安全、游戲設計等。CE(計算機工程)則主要是研究計算機如何運作并且做到更快捷更精準,主要包括計算機軟件與硬件工程兩方面。CE大多設置在工學院,而且與電氣工程(EE)專業聯系緊密,有的學校甚至將兩個專業合并在一起學習。
一、CS專業的研究方向:
1.系統與網絡(System and Network)
計算機網絡是利用通信設備和線路將地理位置不同的、功能獨立的多個計算機系統連接起來,以功能完善的網絡軟件實現網絡的硬件、軟件及資源共享和信息傳遞的系統。簡單地說,即連接兩臺或多臺計算機進行通信的系統,此分支方向主要的學習內容從網絡基礎理論,拓撲結構,相關組成硬件,傳輸媒體(光導纖維,同軸電纜,雙絞線的有線傳輸,衛星傳輸,紅外線傳輸,激光傳輸,無線電波等無線傳輸),到各種網絡協議等。
2.人工智能與機器人(Artificial Intelligence and Robotics)
主要包括機器意識(包括機器學習,知識表達與推論,機器人),動態系統模擬,動力學計算,觸覺控制(haptic control)自然語言習得與處理,計算語言學,統計語言技術,自動推理,圖形圖像,人機交互,成像感知與傳感器,概率推論,神經估算,計算機視覺,視覺場景認知,模式識別,人工免疫,神經網絡,遺傳算法,小波分析,信息系統以及計劃,信息提取,制造和控制理論等。
3.計算機隱私與安全(Privacy and Security)
計算機安全主要是保護計算機與網絡免于濫用和干擾。從過去的歷史看來,計算機攻擊一般來說包含了攻擊系統的完整性,保密性與可用性。而如今的信息安全技術一直在發展中,不單包含了對上述攻擊的防御,同時也增加了更多的應用,如垃圾郵件,以及防止身份盜用而導致的信息泄露等。
4.編程語言(Programming Language)
包括開發新型編程語言以助程序員實用高效地開發可靠的軟件,計算機輔助語言學習,計算語言學,從初階的打字理論,自動定理證明,語義學等發展到如今的基于語言的途徑以解決計算機安全與分布式編程中的重大問題,語言應用,編程分析與優化等,可以從根本上提高軟件可靠性與安全性。
5.數據庫(Database)
與數據管理相關的所有方面,包括數據存儲,數據檢索,數據分析和視覺化,如為超大型數據組開發高效算法,為各種新型的應用領域建立大型的數據系統,也有與其他領域進行跨學科的研究,可應用的領域有電腦游戲設計,數據隱私與安全等。
6.計算機圖形學(Computer Graphics)
計算機圖形學(Computer Graphics,簡稱CG)是一種使用數學算法將二維或三維圖形轉化為計算機顯示器的柵格形式的科學。如何在計算機中表示圖形,以及如何利用計算機進行圖形的生成、處理和顯示的相關原理與算法,構成了計算機圖形學的主要學習內容。圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。從處理技術上來看,圖形主要分為兩類,一類是由線條組成的圖形,如工程圖、等高線地圖、曲面的線框圖等,另一類是類似于照片的明暗圖(Shading),也就是通常所說的真實感圖形
7.生物信息學與計算生物學(Bioinformatics and Computational Biology)
人類基因工程的完成對現代生物學中的新型計算和理論工具提出了新的要求。這些計算和理論工具對于分析,理解和控制生命的具體信息都是至關重要的。生物信息學與計算生物學在此歷史背景下應運而生。此方向屬新興的研究,主要是利用應用數學,信息學,統計學與計算機科學的方法來研究生物學的問題,因此也需要從事此方向學習和研究的學生有較強的數學和統計背景。目前來說研究方法包括對生物學數據的搜索(收集和篩選),處理(編輯,整理,管理和顯示)及利用(計算和模擬)。
8.算法(Algorithm)
廣義上面的算法是指為解決一個問題而采取的方法和步驟,而CS下的算法則是指計算機為了解決某一個問題或者完成某一個任務的一系列清晰的指令。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。現代的算法理論主要的研究目的在于如何開發出更加效率的算法,研究相關的算法的設計方法與實現技術。
9.計算機理論(Computer Theory)
計算機理論,顧名思義,是為計算機科學的發展與研究提供理論基礎的一門學科。這個課程的學習涉及到CS的核心課題,歸納起來涵蓋了可計算性、文法與自動機、邏輯學、復雜性及語義學等5個部分,涉及到可計算性理論、形式語言、邏輯學與自動演繹、可計算復雜性和編程語言的語義等內容,并學習和研究這些內容之間的聯系
10.科學計算(Scientific Computing)
科學計算,又稱為計算科學,它的主要學習內容和研究領域是利用數學模型的構造以及數量分析的技術,通過計算機來分析和解決科學問題。在實際的應用中,科學計算經常用于計算機仿真以及其它各種問題的數學計算,包括數值模擬、模型擬合與數據分析以及最優化計算等等。數值分析(Numerical analysis),是科學計算專業方向中所會應用到的核心方法。
11.軟件工程(Software Engineering)
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它的目標是在時間、資源、人員這3個主要限制條件下構建滿足用戶需求的軟件系統,包括提高軟件質量設計新的形式與結構、開發新的科技以降低軟件系統的成本、提高軟件的正確性與實用性。軟件工程的關注點是如何為用戶創造價值。在學習內容方面它涉及到程序設計語言、數據庫、軟件開發工具、系統平臺、標準、設計模式等方面
12.計算機視覺(Computer Vision)
計算機視覺,又稱為機器視覺(machine vision),是一門研究如何“教”機器“看世界”的科學,更進一步的說,就是指用攝影機和計算機代替人眼對目標進行識別、跟蹤和測量等機器視覺,并進一步做圖像處理,用計算機處理成為更適合人眼觀察或傳送給儀器檢測的圖像。作為計算機分支學科,計算機視覺研究相關的理論和技術,試圖建立能夠從圖像或者多維數據中獲取信息的人工智能系統。比較經典的計算機視覺應用包括識別(如在巨大的圖像集合或視頻中尋找包含指定內容的所有圖片或視頻片段)、運動(圖像跟蹤:跟蹤運動的物體)、場景重建以及圖像恢復等等。
13.計算機體系結構(Computer Architecture)
計算機體系結構主要學習與研究計算機的結構和功能,以及它們在電子技術方面的應用。抽象來說,計算機體系結構是一個系統在其所處環境中最高層次的概念;它確定了一臺計算機硬件和軟件之間的銜接。具體地說計算機體系結構指的是計算機系統設計的觀念與架構,描述計算機在實做的設計原則。它確定了一臺計算機設計的部件、部件功能以及部件間接口。以常見的馮·諾伊曼設計為例,體系結構設計包括了:指令集、微體系結構、數據表示、尋址方式、寄存器定義、指令系統、異常機制、機器工作狀態的定義和切換、輸入輸出結構等。
14.人機交互(Human Computer Interaction)
人機交互,簡稱HCI,是一門研究人、計算機以及它們之間的相互影響的學科。人機交互技術是指通過計算機輸入、輸出設備,以有效的方式實現人與計算機對話的技術。它包括機器通過輸出或顯示設備給人提供大量有關信息及提示請示等,人通過輸入設備給機器輸入有關信息,回答問題等。人機交互技術是計算機用戶界面設計中的重要內容之一。它與認知學、人機工程學、心理學等學科領域有密切的聯系。
二、學制和培養方式:
美國CS專業碩士一般學制分為M.Eng.和M.S.兩種學位。MEng項目大多為一年專業碩士學位,項目重點是培養學生的領導技能,同時加深技術基礎。MEng項目專門針對希望在畢業后進入相關行業就業的學生。課程設置基本上是course based,也就是說學生只需要按要求修滿一定的學分,然后通過一個綜合性的考試,或完成規定的項目報告,就可以拿到學位,對科研沒有硬性的要求。學生可以選擇跟著教授做科研,也可以選擇只完成上課的要求。而MS項目則是偏研究方向,畢業生大多有計劃向更高的博士學位或者工業研發職業發展,一般學制為一年半或兩年。MS是course+research based,也就是說,一般情況下,學生除了按要求需要完成學分課程,還要參與科研,并完成畢業論文,才能獲得學位證書。
主要課程
● Parallel Functional Programming
● Deep Learning for Computer Vision
● Intro to DevOps
● Elements of Data Science: A First Course
● Applied Deep Learning
● Foundations of Blockchains
● Formal Verification of System Software
● Representation Learning
● Information Theory in CS
● The Synthetic Control Method
● Advanced Web Design Studio
● Topics in Virtual and Augmented Reality
● Computation and the Brain
● Cloud Computing and Big Data
● Practical Deep Learning System Performance
● Empirical Methods of Data Science
● Fundamentals of Speech Recognition
● Analysis of Networks & Crowds
● Cybersecurity: Tech Policy Law
● ML w/Probabilistic Programming
三、就業方向:
主要是Developer和QA兩類
1.Developer /Programmer/Software Engineer
不管你是碩士,還是博士,不管你是學CS哪個方向的,將來都有一條共同的也是CS里最大的出路,就是去寫code編程做軟件開發。公司里資歷久,對核心產品底層architecture懂的多的技術骨干,工資也是很高的,而且地位高工作也穩定。
2.Software QA(Quality Assurance)/Testing
編程能力比較弱或者不喜歡編程,將來我能不能不去coding? 做軟件測試(QA/testing)就是一個選擇。從軟件工程的角度來說,專門跟在后面找bug提高軟件的quality。QA重視程度被提高,工作現在很多,在計算機行業里占了很大的比例。QA對技術的要求相對低。同樣經驗/教育背景,QA的工資應該比developer低,但是差別也不是很大。很明顯,學CS任何一個方向的人,都可以勝任QA的工作。
3.Database/Network Administration
數據庫/網絡管理對編程要求不高,在就業市場有以下特點:
1)就業范圍廣
2)工作經驗越豐富越受歡迎
3)信息社會,公司對數據庫和網絡依賴嚴重
這類工作工資高,也比較穩定。前段時間有些金融公司即使大幅度裁員,核心的網絡和數據庫管理員也會被保留。這類工作的缺點是入門比較難,公司希望你能有相關的實戰經驗而不僅僅是會點學校里的理論知識。所以,職業規劃是從事這個工作的學生,在校時一定要注意多找實習工作鍛煉實操能力。
4.Others
計算機專業知識應用很廣,不同的公司里,相同的職位名稱可能具體的工作性質不太一樣。還有其他類型的工種,比如用戶界面(UI,user-interface)設計,usability,Technical support等等,但是這方面的工作選擇面相對較少。
四、錄取標準&申請條件:
CS專業不強制要求申請者本科讀于CS專業,但工科相關專業的學生申請成功幾率更大。目前也有一些學校開設了適合本科非CS的項目,例如賓大,南加大,威斯康辛麥迪遜,但是通常也會要求本科完成先修課程,比如:微積分,離散數學,概率統計,數學邏輯,計算原理,數據語言編程,數據結構,計算機結構,操作系統,運算法則分析等。
申請材料基本要求包括:
1. 大學本科成績;
2. 語言成績:托福或雅思;
3. 標化成績:GRE;
4. 推薦信(1-3封不等);
5. 簡歷;
6. PS或SOP(各學校要求不同);
7. 先修課程要求(各學校不同);
8. 面試(各學校要求不同)。
有任何申請問題
掃描二維碼聯系小助手吧