國際頂尖CS名校(如四大)的本科生需要學習哪些課程?

如題,希望有在這些學校的就讀的大神解答一下,如果可以的話必修選修都說一說吧

//補充:有朋友說"能Google出來的就不要在知乎問了",這個...我當然知道網上能搜索到,但是根據我搜索國內高校培養方案的經驗有些學校在網上發的和實際操作的是有區別的(不知道國外高校是否如此),另外更重要的是有些課程看名字看不出來這門課究竟是什麼、與國內哪些課程相似...所以才來求助大神們。

還是謝謝大家啦。


/************************************

Update 2016.1.11

謝謝大家的支持,上一次只有CMU的課程,再更新一下收集到的MIT課程。

MIT課程用一張圖基本上能說明白

圖片來源:2012.02.10 MIT本科CS課程安排(2012版)

上圖由上至下,不同層級以顏色區分,分別表示了低年級到高年級相關課程,連線表示了各課程之間的依賴關係。詳細課程介紹大家可以看我下邊給出的原文鏈接。

專業課:6.01 6.02 6.004 6.005 6.006 6.033 6.034 6.046 倆門高級課程,一門lab,一個project。詳細課程介紹請點開上方鏈接。

附錄:IAP/Spring
2016 Course 6: Electrical Engineering and Computer Science 2016春季課表

Electrical Engineering and Computer Science MIT EECS課程主頁。

************************************/

親們,收藏的時候勞煩動一下手點個贊。搬運也是要力氣的。收藏這麼多,才倆個贊,暈。

同學,其實有人回答過的。我引用過來了哈,這個是CMU的。

著作權歸作者所有。

商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

作者:箴光司

鏈接:你會如何重新學習編程? - 箴光司的回答

來源:知乎

CMU計算機系的本科教學體系

CMU大學的計算機系是1965年成立,屬於早期建計算機系的大學。 現在是計算機學院,在多個學科上有很大優勢。

本科教學也有一些特點,整個課程360 units, 換成我們國內的約90學分,其中計算機科學類課程約36學分,核心課程是必選,為17學分,選修是每個方向選一門,合計19學分,兩者合計36學分。總體感覺他們的課程設置很靈活,課程量比我們少,給學生很大的選擇度,計算機與其他學科搭配也比較平衡,各年級安排也比較合理,三年級專業課多,四年級課比較少。畢竟他們的學費也很貴,因為是私立學校,約4-5萬美元/年,所以可以有更多選擇,呵呵。

整個課程體系如下: 

計算機科學Computer Science 13門課 36學分

數學 Math/Statistics 5門課  12學分

工程 Engineering/Science 4門課  9學分

人文 Humanities/Arts 7門課  16學分

自由選擇 Minor/Free electives 7門課 19學分

合計約90學分。

下面是詳細的信息,供參考。

A: CMU的課程計算機核心課程(合計 17學分, 學分已經轉化為成國內的演算法,略有出入)如下:

15-128 Freshman Immigration Course (介紹類,時間很短)

15-122 命令式語言編程Principles of Imperative Computation (2.5學分,沒有編程基礎的同學)

15-150 函數式語言編程Principles of Functional Programming(2.5學分)

15-210 並行/串列數據結構 Parallel and Sequential Data Structures and Algorithms (3學分)

15-213 計算機系統基礎Introduction to Computer Systems (3學分)

15-251 計算機理論基礎Great Theoretical Ideas in Computer Science (3學分)

15-451 演算法分析與設計 Algorithm Design and Analysis (3學分)

B: 一門技術交流課程One Communcations course:

15-221 計算機科學家技術交流Technical Communication for Computer Scientists(2學分,相當於我們的英文寫作課程,也關注口頭表達)

C: 從下面選擇一門演算法課程

15-354 計算離散數學Computational Discrete Mathematics (3學分)

15-355 現代計算機代數Modern Computer Algebra (2學分)

15-453 形式化語言與自動機Formal Languages, Automata, and Computability (2學分)

21-301 組合數學Combinatorics (2學分)

21-484 圖理論Graph Theory (2學分)

D: 從下面選擇一門應用類課程

05-391 人機交互 Designing Human Centered Software (3學分)

05-431 用戶界面Software Structures for User Interfaces (1.5學分)

10-601 機器學習 Machine Learning (3學分)

11-411 自然語言處理 Natural Language Processing (3學分)

15-313 軟體工程 Foundations of Software Engineering (3學分)

15-322 計算機音樂 Introduction to Computer Music (2學分)

15-323 計算機音樂和信息處理 Computer Music Systems and Information Processing (2學分)

15-381 人工智慧 Artificial Intelligence: Representation and Problem Solving (2學分)

15-384 機器操作Robotic Manipulation (3學分)

15-385 計算機視覺Computer Vision (2學分)

15-415 資料庫應用Database Applications (3學分)

15-462 計算機圖像Computer Graphics (3學分)

E:從下面選擇一門理論類課程

15-312 計算機語言基礎 Foundations of Programming Languages (3學分)

15-317 構造邏輯 Constructive Logic (2學分)

15-414 計算機自動化驗證 Bug Catching: Automated Program Verification and Testing (2學分)

21-300 基本邏輯 Basic Logic (2學分)

80-311 複雜性 Computability and Incompleteness (2學分)

F:從下面選擇一門軟體系統類課程

15-410 操作系統 Operating System Design and Implementation (3學分)

15-411 編譯器 Compiler Design (3學分)

15-418 並行體系結構與編程 Parallel Computer Architecture and Programming (3學分)

15-440 分散式系統 Distributed Systems (3學分)

15-441 計算機網路 Computer Networks (3學分)

G: 兩門專業課程

 從計算機系 機器學習 軟體工程所等選擇兩門專業課程 (約5學分)

其中課程安排如下:

一(上):2門入門計算機課程,2門數學課 1門人文課 1門技能課 1門科學/工程課

一(下): 2門計算機課,1門數學科 1門人文課 1門技能課 1門科學/工程課

二(上): 1門計算機課 1門數學課 1門人文課 1門自由選擇 1門科學/工程課

二(下): 2門計算機課, 1門人文課 1門自由選擇 1門科學/工程課

三(上): 2門計算機課 1門數學 1門人文課 1門自由選擇

三(下): 3門計算機課 1門自由選擇

四(上): 1門計算機課  1門人文 2門自由選擇

四(下): 1門計算機課  1門人文 2門自由選擇

出處:科學網—西行記-8: CMU計算機系的本科教學體系


MIT:Electrical Engineering and Computer Science

Stanford:Computer Science

CMU: School of Computer Science Courses

UCB: EECS Course WEB Sites

Oxford: Computer Science

Cambridge: http://www.undergraduate.study.cam.ac.uk/courses/computer-science

Harvard: Computer Science Courses

CUHK: Computer Science Programme: Study Scheme

DUKE: Computer Science

UMASS: Fall 14 Course Descriptions

-----

別的不太了解,簡單說一下UCB的課程,貼一點筆記。

導論課:

  • CS 61A:Python版的SICP,教材、Lecture Notes、Project、Video均可以在網上找到。有一個Project就是寫一個Scheme解釋器。
  • CS 61B:Data Structures,基本上是講一些基本的數據結構,順便教了一下Java。
  • CS 61C:Computer Architecture,用的這本教材:http://www.amazon.com/Computer-Organization-Design-Fifth-Edition/dp/0124077269
  • CS 70:離散+概率論,CS專業的基礎數學課。

推薦CS 61A和CS 61C,如果有DSA和一些數學基礎可以不看另外兩門。

學完上面四門課,刷掉Project,應該已經可以找工作了。

其他一些課程:

  • CS 152:Advanced processor design
  • CS 164:PL / Compiler
  • CS 170:Algorithms
  • CS 172, 174 and 176:Advanced Algorithms
  • CS 188:An introduction to AI,可以在edx上找到
  • CS189:An introduction to machine learning

(有時間再更新)


滑鐵盧大學的CS課程安排

Courses Description Courses Computer Science

One of

CS 115 Introduction to Computer Science 1

CS 135 Designing Functional Programs

CS 145 Designing Functional Programs (Advanced Level)

One of

CS 136 Elementary Algorithm Design and Data Abstraction

CS 146 Elementary Algorithm Design and Data Abstraction (Advanced Level)

One of

MATH 127 Calculus 1 for the Sciences

MATH 137 Calculus 1 for Honours Mathematics

MATH 147 Calculus 1 (Advanced Level)

One of

MATH 128 Calculus 2 for the Sciences

MATH 138 Calculus 2 for Honours Mathematics

MATH 148 Calculus 2 (Advanced Level)

One of

MATH 135 Algebra for Honours Mathematics

MATH 145 Algebra (Advanced Level)

One of

MATH 136 Linear Algebra 1 for Honours Mathematics

MATH 146 Linear Algebra 1 (Advanced Level)

One of

MATH 239 Introduction to Combinatorics

MATH 249 Introduction to Combinatorics (Advanced Level)

One of

STAT 230 Probability

STAT 240 Probability (Advanced Level)

One of

STAT 231 Statistics

STAT 241 Statistics (Advanced Level)

All of

CS 240 Data Structures and Data Management

CS 241 Foundations of Sequential Programs

CS 245 Logic and Computation

CS 246 Object-Oriented Software Development

CS 251 Computer Organization and Design

CS 341 Algorithms

CS 350 Operating Systems

Three additional CS courses chosen from CS 340-398, 440-489.

Two additional CS courses chosen from CS 440-489.

One additional course chosen from

CO 487 Applied Cryptography

CS 440-498

CS 499T Honours Thesis

STAT 440 Computational Inference

CS 600- or 700-level courses

(CS 600- or 700-level courses may be taken only if an equivalent 400-level course does not exist and special permission is obtained from the instructor and a CS undergraduate advisor. Courses in this list may be counted as CS 0.5 units.)

The selection of upper-year CS courses must include at least one course from each of at least two of the following area groups:

Systems and SE: CS 343, CS 349, CS 442, CS 444, CS 445, CS 446, CS 447, CS 450, CS 452, CS 454, CS 456, CS 457, CS 458

Applications: CS 348, CS 448, CS 449, CS 473, CS 476, CS 482, CS 484, CS 485, CS 486, CS 488

Mathematical Foundations of CS: CS 360, CS 365, CS 370, CS 371, CS 462, CS 466, CS 467, CS 475, CS 487

The 5.0 non-math units must satisfy the following elective breadth and depth requirements. (Alternate plans must be approved by a CS advisor.)

Elective breadth requirements

1.0 unit from the humanities (subjects from ARTS, CHINA, CLAS, CMW, CROAT, DAC, DRAMA, DUTCH, EASIA, ENGL, FINE, FR, GER, GRK, HIST, HUMSC, ITAL, ITALST, JAPAN, JS, KOREA, LAT, MUSIC, PHIL, POLSH, PORT, REES, RS, RUSS, SI, SPAN, SPCOM)

1.0 unit from the social sciences (subjects from AFM, ANTH, APPLS, BUS, ECON, GEOG, HRM, INTST, INTTS, ISS, LS, MSCI, NATST, PACS, PSCI, PSYCH, REC, SMF, SOC, SOCWK, SPD, STV, WS)

0.5 units from the pure sciences (subjects from BIOL, CHEM, EARTH, PHYS, SCI)

0.5 units from the pure and applied sciences (subjects from pure sciences plus ARCH, ENVS, ERS, GERON, HLTH, KIN, PLAN)

Note: No course can be used to satisfy more than one of the above requirements.

Elective depth requirements

1.5 units with the same subject, including at least 0.5 units at third-year level or higher

or

1.5 units with the same subject forming a prerequisite chain of length three


。。。謝邀

我學CS沒錯

但是排在Cornell前的實在是太多了,在美國就有UCB Stanford CMU MIT

應該UIUC也在我們前面

至於課程在官網上應該可以查到的


這種Google一下就解決的問題能不能就不要拿來知乎了?


一百本前來貢獻有向無環圖一張

注意:這張圖只包括CS自己的課 EE CE Cognitive Science的都沒在圖上,例如Intro to Computer Security和那些教HDL/FPGA這種CE的課就沒加。

圖中DSA指代Data Structure and Algorithms

SE指代Software Engineering

HCI指代Human Computer Interaction

RDB指代Relational Databases

其中虛線代表不是pre-req但是推薦有。根是一個的Racket編程入門課,從基本語法講到圖論最短路演算法為止。倒數第二個課講的內容是離散數學與其應用(DFA 停機問題等...對應MIT的6.004),Def of PL這課本質上是入門課的延續(教材是Daniel Friedman的那幾本幼兒讀物)...使用語言的話Logic Programming是Haskell和Prolog,軟工入門課Software Construction是Java(對應6.005),進階的用TypeScript和Node.js,Parallel Computation用Erlang,Distributed Systems用Go。統計課雖然不是CS系開的但會使用R來處理數據。像操作系統寫作業/lab還是C/C++...以及Python萬金油

數學基礎只有Calc III(多變元微積分) 線性代數 統計學概率論。CS系的Core curriculum有8門 基本上都在最下面3-4層。最難的目測是「跨界王」並行計算(和分布系統?)從這張圖也可以找到那些隱藏在400-level中的「水課」(圖最左邊的估計是給數學系學生的哈哈看數值計算那門課的pre-reqs有多水 嘖嘖)


推薦閱讀:

以目前的數論水平,計算機運算速度需要達到什麼數量級才有可能破解RSA演算法?
自學Python/PHP,我今年20歲,該如何選擇?
求證鑰匙,密鑰,私鑰的正確發音?
DOCX 和 DOC 相比有哪些優點?
非計算機專業想從零開始學編程該如何進行?

TAG:教育 | 計算機 | 留學 | 計算機科學 | 計算機專業 |