Python,美国顶尖大学里最受欢迎的编程入门语言

创见网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  


作者:Philip Guo  译者:翛凌  原文: Communications of the ACM

摘要

截止到 2014 年 7 月, Python 已经成为目前美国顶尖大学里最受欢迎的计算机编程入门语言。计算机排名前 10 的学校里,有 8 所学校(80%)使用 Python 作为编程入门语言。在计算机排名前 39 的学校里,有 27 个学校(69%)使用 Python 作为编程入门语言。

研究背景

Python 已经成为越来越多美国顶级大学的计算机编程入门语言了。三年前, Mark Guzdial 曾撰写博客,预测 Python 在未来将成为主流的计算机编程入门语言。而现在,这个预言基本已经实现了。美国计算机排名顶尖的麻省理工大学和加州大学伯克利分校最近已经将他们的计算机编程入门教学语言改为了 Python。三大 MOOC 提供商(edX、Cousera、Udacity)都提供使用 Python 教学的计算机编程入门课程。同时,不同专业领域的教授,比如 Lorena Barba ,也都倡导使用 Python 作为入门语言进行教学。

就我个人来说,由于 Python 的逐渐普及,我这四年一直在完善的教学工具 Onlie Python Tutorial 的访问也得到了迅猛的增长。

然而虽然大家都在说 Python 的使用正在逐步扩大,我却没找到什么具体的数字表明 Python 有多么的受欢迎。因此我试图从美国计算机排名顶尖的大学的教学课程里寻找一些答案。

我为什么要写这篇文章呢?因为计算机学院使用什么语言作为教学语言实际上反映了每个学校不同的教学逻辑,同时也能反映出许多学生对于计算机科学的第一印象。同时,美国计算机顶尖大学的教学语言选择实际上也能反映出剩下学校的教学语言选择趋势。

研究方法

我依照 2014 年 U.S. News 提供的学校排名,选出了计算机排名前 39 的学校。你当然可以说我选择的学校不够科学,不过所有的排名都不能保证完全的公平公正。因此我们就以这 39 个学校作为样本进行研究。至少它在某种程度上能反应一定的结果。

我找到了每个学校计算机系、计算机工程系和电子工程系的课程,并着重研究标号为 CS0 和 CS1 的课程。一般情况下课程编号开头为 CS1 的是计算机专业的基础先修课,而 CS0 开头的课程是介绍课程。当然有些学校的课程编号并不是以这种方式进行的,因此我也稍微筛选了一下课程,选出了符合上述 CS1 以及 CS0 编号要求的课程。

研究结果

下面的图表展示了这 39 个学校的编程基础课程使用语言的状况。

讨论

从图表可以很明显地看出来,Python 是最受欢迎的入门语言。紧随其后的是 Java,Java 是过去的十年里的主要编程入门语言。有些学校完全将教学重点转到了 Python 上,另一些学校将用 Python 教的课程作为 CS0 级别的课程,同时仍旧将用 Java 教学的课程作为 CS1 级别的课程。而高中的高级课程中仍旧主要使用 Java 教学。

下一个受欢迎的教学语言为 MATLAB。MATLAB 主要在 CS0 级别的课程中出现,主要用来教科学家以及工程师如何编程。再次是 C++。不过 C++在过去的十年里已经已经基本被 Java 替代了。高中提供的 高级课程 早在 2003 年就已经用 Java 全面替代了 C++。C 和 C++的受欢迎程度是一样的,不过许多用 C 语言教的入门课程(比如哈佛大学的 CS50 )在使用 C 的同时也使用其他语言进行教学。几乎没有学校单独使用 C 进行编程入门教学。

基于 Scheme 的语言也很受欢迎。值得一提的是,有人曾专门撰写了教科书、开设相应课程专门介绍基于 Scheme 的编程语言生态系统。但是最近几年,很多学校(比如 麻省理工大学 、 加州大学伯恩利分校 )也用 Python 替代了 Scheme。现在在这排名前 39 的学校里仅有四所学校还使用 Scheme 进行教学。

Scratch 是唯一上榜的 视觉化程序设计语言 。Scratch 相较于 Alice 、 App Inventor 、 Etoys 、 Kodu 、 StarLogo 和 TouchDevelop 而言,也是最受欢迎的视觉化程序设计语言。这些视觉化程序设计语言主要面向没有接受过大学级别教育的人,向他们介绍如何编程并介绍基本的编程思想。

尽管我在统计时没有列出,不过还有几个需要提到的语言。

  • 诸如 Haskell、OCaml 这样的静态函数化编程语言在 PL 研究者中非常受欢迎。

  • 诸如 JavaScript、Ruby 和 PHP 这样的动态类型的程序语言在网络工程师里很受欢迎。

  • 行业内常用的语言 则与特定的平台关系紧密。比如着重做苹果软件和应用开发的主要用 Objective-C,而着重做微软程序开发的则用 C# 和 Visual Basic。

附件

课程统计源数据。

如果你发现我遗漏了什么数据,或者写错了什么,欢迎发邮件至  philip@pgbovine.net 纠正我。

排名
大学
Python Java MATLAB
C++
C Scheme Scratch
1
Carnegie Mellon 15-110, 15-112





1 MIT 6.00, 6.01





1
Stanford
CS106A




1
UC Berkeley CS61A




CS10
5
UIUC CS103 CS125 CS101
CS101

6
Cornell CS1110
CS1112



6 U. Washington
CSE140 CSE142




8
Princeton

COS126




9 Geogria Tech CS1301, CS1315
CS1371 



9
UT Austin CS105 CS312




11
Caltech CS1





11
U. Wisconsin Madison
CS302



CS202
13
UCLA


CS31


13
U. Michigan EECS182

EECS182, 183


15

Columbia

ENGI E1006 COMS W1004-1 COMS W1005-1



15
UCSD
CSE8A CSE7
CSE5A

15

U. Maryland - College Park

CMSC 198C,D,E CMSC131




18

Harvard





CS50

19
U. Penn
CIS 110, 120




20
Brown CSCI0931 CSCI0150 CSCI0040

0170,0190 0080
20

Purdue

CS17700 CS18000 CS15900
CS15800, CS15900

20
Rice COMP 140





20 USC CSCI 101

CSCI 103 CSCI 103

20
Yale
CS112




25
Duke CompSci CompSci 101





25

UMass Amhers

CMPSCI 119 CMPSCI 121




25

UNC Chapel Hil

Comp 110 Comp 401




28

Johns Hopkin


EN600.107




29

NYU

CSCI-UA.2 CSCI-UA.0101




29

Penn State




CMPSC 121


29

UC Irvine

CSE 41





29

U. Minnesota

CSci 1001,1901 CSci 1103


CSci 1901
29

U. Virginia

CS 1120 CS 1110, 1111




34

Northwestern

EECS110



EECS110 EECS111
34

Ohio State


CSE201 CSE 205 CSE 202


34

Rutgers


CS111




34

UC Davis

ECS 10 





34

UC Santa Barbara

CS8





34

U. Chicago

CMSC 12100, 12200, 12300 CMSC 12100, 12200, 12300
CMSC 12100, 12200, 12300
CMSC 10500, 11500 
Total

27 22 8
6 6
4 3

感谢读者,在 2014 年 7 月 7 日文章首发后,我又做出了一些更新。

  • 添加 Columbia ENGI E1006(使用 Python)。一位在校生给我发送邮件告诉我这个消息。同时他还指出「很少有人必须选 MATLAB 课程 1005,而所有计算机专业的学生都必须选 1006.这个 Python 课程是近两年新加的,因此这也能代表着 Python 整变得更流行。」

  • 添加 UNC Chapel Hill Comp 110 (使用 Python)。一位在校教师发邮件给我告诉我这个消息。

  • 添加 Northwestern EECS 111(使用 Scheme)。一位在校学生给我发邮件表示「CS1 又叫 EECS111,这门课主要使用 Meta、Scheme 或者 Racket。具体使用哪种语言取决于是哪位教授进行教学。我觉得把 CS1 列为用 Scheme 教学比较公平,特别是我们用的很多特性大部分都是 Scheme 的。」

  • 添加 UMassage CMPSCI 121(使用 Java)。一位在教室发邮件告诉我这一点。

  • 添加 Georgia Tech CS 1371(使用 MATLAB)。一位在校学生发邮件纠正我这一点。

  • 添加 USC CSCI 103(使用 C 和 C++)。一位在校生发邮件告诉我这一点。

  • 添加 Brown CSCI0190(使用 Scheme)以及 CSCI0931(使用 Python)。一位在校学生发邮件告诉我这一点。

  • 添加 U. Minnesota CSci 1103(使用 Java),并且在 Java 统计栏删除 1901 课程,将 1901 课程添加到使用 Python 一栏。一位在校学生发送邮件告诉我这一点,并且告诉我 1901 的教学语言由 Java 换成了 Python。



创之网 (chuang.pro)是TECH2IPO/创见旗下子站,为创业者、投资人提供最有价值资讯和观点,欢迎你与我们共同建设!

标签: PYTHON 编程语言 编程入门 教学 美国顶尖计算机院校

随意打赏

提交建议
微信扫一扫,分享给好友吧。