联系电话:020-28187900

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

发表时间:2014-07-10 阅读: 10630


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

研究背景

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

就我个人来说,由于 Python 的逐渐普及,我这四年一直在完善的教学工具 Online 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。

参考资料:Communications of the ACM


相关新闻 【更多】

唯众网络