几十所顶级名校免费开放自家计算机课, 贡献榜老大竟然是它! 海外CS课程超全纵横比较:概览篇

Introduction

The resources of computer science courses (including electrical engineering) are extremely abundant, and perhaps it is the most resourceful subject in comparison to other disciplines on the Internet. In this article, I aim to compare some of the courses offered by several world-renowned universities and finally come up with certain practical summaries. I am not going to cover all of the CS courses, but instead focus on the most substantial core courses. There are already many awesome summary lists, and I will make more streamlined conclusions based on these lists.

Research Material

I mainly pay attention to a list (Awesome CS Courses) created by prakhar1989. The list does not include other online course platforms such as Coursera, Udacity, and Edx, but I may discuss the courses provided by these platforms in further articles.

In this list, there are above 50 universities worldwide, most of which are located in North America, especially the United States. I used to think that one of MIT, Standford, UC Berkeley or CMU would get the first place on the list. Unexpectedly, Cornell University is the real champion, and it provides nearly twice as many courses as the second one (although there are rare lecture videos offered by Cornell).


It seems impossible to discuss all of them, so I decided to pick ten of them and briefly introduce these universities as follows.

Top Universities Overview

Best Computer Science Schools
QS World University Rankings by Subject 2018: Computer Science & Information Systems.

Rank 10: University of Virginia



US News CS Rank: 30
Contributions: 4 (2 Videos of 4)
CS 2150 Program & Data Representation
16s-4102 Algorithms Video
CS 4414 Operating Systems Video
CS 4610 Programming Languages and Compilers

Rank 9: University of Washington

location: Seattle

US News CS Rank: 6
Contributions: 5 (3 / 5)
CSE 154 Web Programming
CSE 331 Software Design and Implementation
CSE 341 Programming Languages Video
CSEP 501 Compiler Construction Video
CSEP 552 Distributed Systems Video

Rank 8: CUNY Hunter College


location: New York MANHATTAN

Contributions: 6 (0 / 6)
CSCI 135 Software Design and Analysis I
CSCI 235 Software Design and Analysis II
CSCI 335 Software Design and Analysis III
CSCI 360 Computer Architecture 3
CSCI 493.66 UNIX System Programming (formerly UNIX Tools)
CSCI 493.75 Parallel Computing

Rank 7: Harvard University



US News CS Rank: 16
Contributions: 6 (5 / 6)
CS 50 Introduction to Computer Science Video
CS 50 Intro to Game Developement Video
CS 109 Data Science
CS 224 Advanced Algorithms Video
CS 229r Algorithms for Big Data Video
AM 207 Monte Carlo Methods and Stochastic Optimization Video

Rank 6: Univ of Illinois, Urbana-Champaign



US News CS Rank: 5
Contributions: 6 (2 / 6)
CS 173 Discrete Structures
CS 241 Systems Programming (Spring 2016)
CS 374 Algorithms & Models of Computation (Fall 2014) Video
CS 421 Programming Languages and Compilers Video
CS 425 Distributed Systems
CS 473/573 Fundamental Algorithms

Rank 5: Carnegie Mellon University



US News CS Rank: 1
Contributions: 14 (9 / 14)
14-740 Fundamentals of Computer Networks Video
15-213 Introduction to Computer Systems (ICS) Video
15-319/619 Cloud Computing (ICS) Video
15-418 Parallel Computer Architecture and Programming Video
15-440 Distributed Systems
15-721 Database Systems Video
15-445/645 Database Systems Video
15-451/651 Algorithms
15-749 Engineering Distributed Systems
10-601 Machine Learning Video
10-708 Probabilistic Graphical Models Video
11-785 Deep Learning
CMU 462 Computer Graphics
18-447 Introduction to Computer Architecture Video

Rank 4: Massachusetts Institute of Technology

US News CS Rank: 1


Contributions: 16 (8 / 16)
6.001 Structure and Interpretation of Computer Programs Video
6.004 Computation Structures Video
6.005 Software Construction
6.006 Introduction to Algorithms Video
6.045 Great Ideas in Theoretical Computer Science Video
6.046J/18.410J Design and Analysis of Algorithms Video
6.824 Distributed Systems
6.828 Operating Systems
6.851 Advanced Data Structures Video
6.854/18.415J Advanced Algorithms Video
6.854J/18.415J Advanced Algorithms
6.857 Computer and Network Security
6.858 Computer Systems Security Video
6.868J The Society of Mind
6.945 Adventures in Advanced Symbolic Programming
6.INT Hacking a Google Interview

Rank 3: University of California--Berkeley



US News CS Rank: 1
Contributions: 20 (10 / 20)
CS 10 The Beauty and Joy of Computing Video
CS 61A Structure and Interpretation of Computer Programs [Python] Video
CS 61AS Structure & Interpretation of Computer Programs [Racket] Video
CS 61B Data Structures Video
CS 61C Great Ideas in Computer Architecture (Machine Structures) Video
CS 161 Computer Security
CS 162 Operating Systems and Systems Programming Video
CS 164 Hack your language! Video
CS 168 Introduction to the Internet: Architecture and Protocols
CS 168 Computer Networks
CS 186 Introduction to Database Systems Video
CS 188 Introduction to Artificial Intelligence Video
CS 189 Introduction To Machine Learning
CS 261 Internet/Network Security
CS 262a Advanced Topics in Computer Systems
CS 276 Foundations of Cryptography
CS 278 Complexity Theory
CS 287 Advanced Robotics
CS 294 Cutting-edge Web Technologies
Info 290 Analyzing Big Data with Twitter Video

Rank 2: Stanford University

US News CS Rank: 1
Contributions: 26 (14 / 26)
CS 101 Computer Science 101 Video
CS 103 Mathematical Foundations of Computing
CS 106A Programming Methodology Video
CS 106B Programming Abstractions Video
CS 107 Programming Paradigms Video
CS 107 Computer Organization & Systems Video
CS 108 Object Oriented System Design
CS 140 Operating Systems
CS 143 Compiler construction
CS 155 Computer and Network Security
CS 193a Android App Development, Spring 2016 Video
CS 193p Developing Applications for iOS Video
CS 223A Introduction to Robotics Video
CS 224d Deep Learning for Natural Language Processing Video
CS 231n Convolutional Neural Networks for Visual Recognition Video
CS 240h Functional Systems in Haskell
CS246 Mining Massive Data Sets Video
CS 259 Security Modeling and Analysis
CS 261 A Second Course in Algorithms Video
CS276 Information Retrieval and Web Search
18-636 Browser Security Video
EE103 Introduction to Matrix Methods
StatLearning Intro to Statistical Learning Video
CVX 101 Convex Optimization
CS20si Tensorflow for Deep Learning Research
CS 97SI Introduction to Competitive Programming

Rank 1: Cornell University

Ithaca Campus


Cornell Tech Campus (New York)


US News CS Rank: 6
Contributions: 44 (0 / 44)
CS 1109 Fundamental Programming Concepts
CS 1110 Introduction to Computing Using Python
CS 1112 Introduction to Computing Using Matlab
CS 1115 Introduction to CS and Engineering Using Matlab Graphical User Interfaces
CS 1130 Transition to OO Programming
CS 1133 Transition to Python
CS 2043 Unix Tools & Scripting
CS 2110 Object-Oriented Programming and Data Structures
CS 3110 Data Structures and Functional Programming
CS 3152 Introduction to Computer Game Development
CS 3220 Introduction to Scientific Computing
CS 3410 Computer System Organization and Programming
CS 4120 Introduction to Compilers
CS 4152 Advanced Topics in Computer Game Development
CS 4154 Analytics-driven Game Design
CS 4300 Information Retrieval
CS 4302 Web Information Systems
CS 4410 Operating Systems
CS 4620 Introduction to Computer Graphics
CS 4670 Introduction to Computer Vision
CS 4700 Foundations of Artificial Intelligence
CS 4780 Machine Learning
CS 4786 Machine Learning for Data Science
CS 4810 Introduction to Theory of Computing
CS 4812 Quantum Information Processing
CS 4820 Introduction to Analysis of Algorithms
CS 4860 Applied Logic
CS 5114 Network Programming Languages
CS 5142 Scripting Languages
CS 5150 Software Engineering
CS 5220 Applications of Parallel Computers
CS 5412 Cloud Computing
CS 5430 System Security
CS 5540 Computational Techniques for Analyzing Clinical Data
CS 5724 Evolutionary Computation
CS 6118 Types and Semantics
CS 6452 Evolutionary Computation
CS 6630 Realistic Image Synthesis
CS 6640 Computational Photography
CS 6650 Computational Motion
CS 6670 Computer Vision
CS 6700 Advanced Artificial Intelligence
CS 6810 Theory of Computing
CS 6840 Algorithmic Game Theory

Courses

  • CS Introduction and Programming

    • Basic
      • CS 10 The Beauty and Joy of Computing UC Berkeley
      • CS 50 Introduction to Computer Science Harvard University
      • CS 101 Computer Science 101 Stanford University
      • CS 1109 Fundamental Programming Concepts Cornell University
      • CSCE 2004 Programming Foundations I University of Arkansas (Fayetteville)
      • 6.005 Software Construction, Fall 2016 MIT
    • SICP (Structure & Interpretation of Computer Programs) and Languages (Python, Matlab, Scala, Clojure, Rust, Racket, Haskell)
      • 6.001 Structure and Interpretation of Computer Programs MIT
      • CS 1410-2 and CS2420-20 Computer Science I and II for Hackers Utah
      • CS 61A Structure and Interpretation of Computer Programs [Python] Berkeley
      • CS 1110 Introduction to Computing Using Python Cornell University
      • CS 1133 Transition to Python Cornell University
      • CS 61AS Structure & Interpretation of Computer Programs [Racket] Berkeley
      • CS 109 Programming Practice Using Scala KAIST
      • CS 1112 Introduction to Computing Using Matlab Cornell University
      • CS 1115 Introduction to Computational Science and Engineering Using Matlab Graphical User Interfaces Cornell University
      • CIS 198 Rust Programming UPenn
      • CIS 194 Introduction to Haskell Penn Engineering
      • CS 240h Functional Systems in Haskell Stanford University
    • Methodology, Abstractions, Concepts, and Paradigms ( Object-Oriented Programming)
      • CS 106A Programming Methodology Stanford University
      • CS 106B Programming Abstractions Stanford University
      • CS 107 Programming Paradigms Stanford University
      • CS 1130 Transition to OO Programming Cornell University
  • Computer Structure

    • Systems and Organization
      • 15-213 Introduction to Computer Systems (ICS) Carnegie-Mellon University
      • 6.004 Computation Structures
      • CS 241 Systems Programming (Spring 2016) UIUC
      • CS 3410 Computer System Organization and Programming Cornell University
      • 6.945 Adventures in Advanced Symbolic Programming MIT
      • 6.858 Computer Systems Security MIT
      • CS 262a Advanced Topics in Computer Systems UC Berkeley
      • CS 107 Computer Organization & Systems Stanford University
    • Computer Architecture
      • CS 61C Great Ideas in Computer Architecture (Machine Structures) UC Berkeley
      • 18-447 Introduction to Computer Architecture CMU
      • CSCI 360 Computer Architecture 3 CUNY Hunter College
  • Internet and Networks

    • CS 168 Computer Networks UC Berkeley
    • 14-740 Fundamentals of Computer Networks CMU
    • CS 5114 Network Programming Languages Cornell University
  • Data Structure and Algorithms

    • CS 223 Purely Functional Data Structures In Elm University of Chicago
    • CS 2110 Object-Oriented Programming and Data Structures Cornell University
    • CS 3110 Data Structures and Functional Programming Cornell University
    • CS 4820 Introduction to Analysis of Algorithms Cornell University
    • CS 61B Data Structures UC Berkeley
    • CS 224 Advanced Algorithms Harvard University
    • CS 2150 Program & Data Representation University of Virginia
    • 16s-4102 Algorithms University of Virginia
    • CSCI 104 Data Structures and Object Oriented Design USC
    • 6.006 Introduction to Algorithms MIT
    • 6.046J/18.410J Design and Analysis of Algorithms MIT
    • 6.851 Advanced Data Structures MIT
    • 6.854J/18.415J Advanced Algorithms MIT
    • CS 97SI Introduction to Competitive Programming Stanford University
    • CS 261 A Second Course in Algorithms Stanford University
    • CS 473/573 Fundamental Algorithms Univ of Illinois, Urbana-Champaign
    • CSE 373 Analysis of Algorithms Stony Brook University
    • ECS 122A Algorithm Design and Analysis UC Davis
    • ECS 222A Graduate Level Algorithm Design and Analysis UC Davis
    • 15-451/651 Algorithms Carnegie Mellon University
  • Component Deconstruction

    • Operating Systems

      • CS 140 Operating Systems Stanford University
      • CS 162 Operating Systems and Systems Programming UC Berkeley
      • CS 4410 Operating Systems Cornell University
      • CS 4414 Operating Systems University of Virginia
      • CSCE 3613 Operating Systems University of Arkansas (Fayetteville)
      • CSCI-UA.0202: Operating Systems NYU
      • Hack the Kernel Introduction to Operating Systems SUNY University at Buffalo, NY
      • 6.828 Operating Systems MIT
    • Compiler

      • CS 75 Principles of Compiler Design Swathmore College
      • CS 91 Introduction to Programming Languages Swathmore College
      • CMSC 430 Introduction to Compilers Univ of Maryland
      • CS 143 Compiler construction Stanford University
      • CS 164 Hack your language! UC Berkeley
      • CS 173 Programming Languages Brown University
      • CS 421 Programming Languages and Compilers UIUC
      • CS 4120 Introduction to Compilers Cornell University
      • CS 4400 Programming Languages Northeastern University
      • CS 4610 Programming Languages and Compilers University of Virginia
      • CS 5142 Scripting Languages Cornell University
      • CS 5470 Compilers University of Utah
      • CS 6118 Types and Semantics Cornell University
      • CSC 253 CPython internals: A ten-hour codewalk through the Python interpreter source code University of Rochester
      • CSE 341 Programming Languages University of Washington
      • CSE P 501 Compiler Construction University of Washington
      • 6.945 Adventures in Advanced Symbolic Programming
    • Database System

  • Software engineering and Application

    • Method and Foundations
      • CS 108 Object Oriented System Design Stanford
      • ECE 459 Programming for Performance University of Waterloo
      • CSE 331 Software Design and Implementation University of Washington
      • CS 5150 Software Engineering Cornell University
      • CS 100 Open Source Software Construction UC Riverside
      • CS 294 Cutting-edge Web Technologies Berkeley
      • CS 411 Software Architecture Design Bilkent University
      • ICS 314 Software Engineering University of Hawaii
      • CS 5150 Software Engineering Cornell University
      • CS 5220 Applications of Parallel Computers Cornell University
      • CSE 154 Web Programming University of Washington
      • IGME 582 Humanitarian Free & Open Source Software Development
    • Game Development
      • CS 75 Introduction to Game Development Tufts University
      • CS 50 Intro to Game Developement Harvard University
      • CS 3152 Introduction to Computer Game Development Cornell University
      • CS 4152 Advanced Topics in Computer Game Development Cornell University
      • CS 4154 Analytics-driven Game Design Cornell University
    • Mobile App Development (Android and ios)
      • CS 193a Android App Development, Spring 2016 Stanford University
      • CS 193p Developing Applications for iOS Stanford University
  • Utilities, Tools, Skills and Computing

    • C,UNIX, and Scripting
      • CS 241 Systems Programming (Spring 2016) Univ of Illinois, Urbana-Champaign
      • CS 2043 Unix Tools & Scripting Cornell University
      • CSCI 493.66 UNIX System Programming (formerly UNIX Tools) CUNY
      • CS 100 Open Source Software Construction UC Riverside
      • 15-122 Principles of Imperative Computation CMU
      • CS 5142 Scripting Languages Cornell University
    • Functional Programming
      • CIS 194 Introduction to Haskell Penn Engineering
      • Clojure Functional Programming with Clojure University of Helsinki
      • COS 326 Functional Programming Princeton University
      • CS 223 Purely Functional Data Structures In Elm University of Chicago
      • CS 240h Functional Systems in Haskell Stanford University
      • CS 421 Programming Languages and Compilers UIUC
      • CS 3110 Data Structures and Functional Programming Cornell University
      • CS 4610 Programming Languages and Compilers University of Virginia
      • DMFP Discrete Mathematics and Functional Programming Wheaton Video
      • CS 696 Functional Design and Programming San Diego State University
      • L28 Advanced Functional Programming University of Cambridge
      • CIS 500 Software Foundations University of Pennsylvania
      • CSCE 3193 Programming Paradigms University of Arkansas (Fayetteville)
      • CS 61A SICP [Python] UC Berkeley Video
      • CS 107 Programming Paradigms Stanford University Video
      • CS 1410-2 and CS2420-20 Computer Science I and II for Hackers University of Utah
      • 6.001 Structure and Interpretation of Computer Programs MIT Video
      • 6.005 Software Construction, Fall 2016 MIT
    • Parallel Programming and Concurrency
      • SPAC Parallelism and Concurrency Univ of Washington
      • PCPP Practical Concurrent and Parallel Programming IT University of Copenhagen
    • GPU Programming
      • CS 179 GPU Programming Caltech
      • ECE 459 Programming for Performance University of Waterloo
    • Distributed Systems
      • CS 425 Distributed Systems Univ of Illinois, Urbana-Champaign
      • 6.824 Distributed Systems MIT
      • CSEP 552 Distributed Systems University of Washington Video
      • 15-440 Distributed Systems Carnegie-Mellon University
      • 15-749 Engineering Distributed Systems Carnegie-Mellon University
      • Info 290 Analyzing Big Data with Twitter Video
      • CS 262a Advanced Topics in Computer Systems UC Berkeley
    • Cloud Computing
      • CS 5412 Cloud Computing Cornell University
      • 15-319/619 Cloud Computing (ICS) Carnegie-Mellon University Video
      • CS 6452 Evolutionary Computation Cornell University
  • Theory and Foundation (will be discussed in other articles)

    • Logic
    • Discrete Structures
    • Computing or Computation
    • Complexity Theory
  • Computer Vision and Graphics (will be discussed in other articles)

  • AI and Machine learning (will be discussed in other articles)

Conclusions

1.The actual number of courses that can be searched online is much larger than the courses provided by this list.

If we go to the official website of those top universities to search their computer science curriculums, generally we will find more comprehensive lists of courses.

2.Top universities pay much attention to the big picture of computer science (systems, architecutre, methodology ) as well as foundations (algorithms, compiler, logic, discrete structures).

It is not a bad thing for computer science students to learn a lot of mathematics; however, if we just study it purely but fail to know the applications, it will only be futile. World-class universities have already developed solid theoretical foundations for computer science. The graduates need to have a deep understanding of algorithms, principles of programming languages, operating systems and concurrency, networks and abstraction of layers, and computer architecture. More importantly, they will do a lot of valuable practice to get a firsthand experience. In comparison, even China's top universities still highly focus on mathematics and physics training in computer science. Some of their computer science students must study mathematical analysis, complex analysis, functional analysis, electromagnetic field theory, and even quantum mechanics. This seems to be fantastic, but the real consequence is that many graduates are seriously lacking in programming experience and are only half-baked about the mathematical foundations they have learned.

3.The top four universities in computer science are well deserved. (CMU, MIT, Stanford, UC Berkeley)

The four universities were tied to the US News list, more specifically, they are the best computer science schools in the United States. Although Cornell University has contributed many courses, several other universities have generously opened their lecture videos. If we rank these universities by their contribution of lecture videos, then the top four schools can be ranked highest.

4.Even if there is no lecture video, it does not affect students' thorough mastery of the course content. Good projects or labs may be more important than lectures.

Computer science places great emphasis on practice. Only by processes of constantly making mistakes and correcting, and creating components like compilers or operating systems by our own can we truly understand the content of lectures.

5.Universities that can keep pace with the times are the most vital.

Deep learning is a field that has only been developed on a large scale in recent years, but some universities have already opened many related courses. This shows that these schools are very adaptable to change, not only providing students with a long-lasting theoretical foundation, but also bringing students the latest knowledge. (Stanford > CMU > Berkeley > MIT)

Reference

Github: Awesome CS Courses
Github: Path to free self-taught education in Computer Science
Scott Young: MIT Challenge
34 门课改变人生
知乎: YouTube 上有哪些计算机方面的值得推荐的公开课
知乎:如何阅读《深入理解计算机系统》这本书?
c0 documentation
科學網: CMU计算机系的本科教学体系
UC Berkeley: CS Major Upper Division Degree Requirements
UC Berkeley: CS Courses
CMU: Bachelors Curriculum
CMU:15-129

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容