注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

众里寻他千百度,名师成就满分路

AP 微积分 AP 计算机 腾飞的博客

 
 
 

日志

 
 
关于我

大学讲师,中国首批AP计算机教师,著有中国第一套,历经五年实践证明深受学生欢迎的成功的AP计算机双语教材,2013年以93%的满分率开创了中国AP计算机成功的先河,远远超出全美26.6%的满分率,为中国AP计算机教学树立了典范,并在同年加拿大计算机竞赛中勇夺桂冠,任教学生获哥伦比亚大学,麻省理工学院,卡耐基梅隆大学,宾夕法尼亚大学,康奈尔大学,西北大学等学校录取,远程学生遍及北京、长春、南京、重庆、广州、济南, 深圳、成都、费城,洛杉矶,加州,宾州,新罕布什尔州等地,希望借此平台为信息技术的发展做出贡献!

网易考拉推荐

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

2015-03-16 16:18:33|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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 的逐渐普及,我这四年一直在完善的教学工具 Online Python Tutorial的访问也得到了迅猛的增长。

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

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

Python美国顶尖大学里最受欢迎的编程入门语言 - 千里马 - 众里寻他千百度,深中成就满分路

研究方法

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

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

研究结果

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

Python美国顶尖大学里最受欢迎的编程入门语言 - 千里马 - 众里寻他千百度,深中成就满分路

讨论

从图表可以很明显地看出来,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 相较于 AliceApp InventorEtoysKoduStarLogo 和 TouchDevelop 而言,也是最受欢迎的视觉化程序设计语言。这些视觉化程序设计语言主要面向没有接受过大学级别教育的人,向他们介绍如何编程并介绍基本的编程思想。

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

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

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

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

Python美国顶尖大学里最受欢迎的编程入门语言 - 千里马 - 众里寻他千百度,深中成就满分路

附件

课程统计源数据。

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

排名
大学
PythonJavaMATLAB
C++
CSchemeScratch
1
Carnegie Mellon15-110, 15-112





1MIT6.00, 6.01





1
Stanford
CS106A




1
UC BerkeleyCS61A




CS10
5
UIUCCS103CS125CS101
CS101

6
CornellCS1110
CS1112



6U. Washington
CSE140CSE142




8
Princeton

COS126




9Geogria TechCS1301, CS1315
CS1371 



9
UT AustinCS105CS312




11
CaltechCS1





11
U. Wisconsin Madison
CS302



CS202
13
UCLA


CS31


13
U. MichiganEECS182

EECS182, 183


15

Columbia

ENGI E1006COMS W1004-1COMS W1005-1



15
UCSD
CSE8ACSE7
CSE5A

15

U. Maryland - College Park

CMSC 198C,D,ECMSC131




18

Harvard





CS50

19
U. Penn
CIS 110, 120




20
BrownCSCI0931CSCI0150CSCI0040

0170,01900080
20

Purdue

CS17700CS18000CS15900
CS15800, CS15900

20
RiceCOMP 140





20USCCSCI 101

CSCI 103CSCI 103

20
Yale
CS112




25
Duke CompSciCompSci 101





25

UMass Amhers

CMPSCI 119CMPSCI 121




25

UNC Chapel Hil

Comp 110Comp 401




28

Johns Hopkin


EN600.107




29

NYU

CSCI-UA.2CSCI-UA.0101




29

Penn State




CMPSC 121


29

UC Irvine

CSE 41





29

U. Minnesota

CSci 1001,1901CSci 1103


CSci 1901
29

U. Virginia

CS 1120CS 1110, 1111




34

Northwestern

EECS110



EECS110EECS111
34

Ohio State


CSE201CSE 205CSE 202


34

Rutgers


CS111




34

UC Davis

ECS 10 





34

UC Santa Barbara

CS8





34

U. Chicago

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

27228
66
43

感谢读者,在 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。

  评论这张
 
阅读(494)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017