Python已成美国顶尖高校中最受欢迎的入门编程语言

在最近的一份调查中显示,美国top高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言。其中Top10 CS系中有8所使用Python,Top39 CS系中有24所,在入门课程中教授Python,可见其实用性的认可度很高。

在我写下这篇文章的时候,在美国top高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言。Top10的CS 系中有8所,Top39的CS系中有24所,在入门课程中教授Python。


Python成为最受欢迎语言的动机

Python逐渐成为教授初学者编程的第一选择。三年前,Mark Guzdial通过博客预测Python作为一门教学语言将会越来越受欢迎。MIT和UC Berkeley的计算机系最近将他们入门课程的教授语言改成了Python。最大的三个MOOC(Massive Open Online Courses)提供商edX,Coursera和Udacity也全都提供了Python语言的入门课程。并且,不同子领域的教授们(比如说Lorena Barba)在也致力于教授初学者Python。

在过去四年中,我开发了一些教学工具,在这些工具中Online Python Tutor (www.pythontutor.com)在使用人数上取得了突飞猛进的增长,这得益于越来越多的人使用Python。

尽管各方面都在说Python越来越受欢迎,但是我并没有看到一个数字上的确切统计。所以我决定统计在美国Top高校的计算机系中有多少使用Python来教授他们的入门课程,由此得出Python是不是越来越受欢迎。在统计过程中,其他受欢迎的教学语言也被一同列出。

为什么我要做这个研究?这是因为选择不同的语言不仅反映了不同学校计算机系的教育哲学,更为重要的是,它影响了许多学生对计算机科学的第一印象。被这些Top高校选择的语言暗示着计算机科学教育的发展趋势,要知道,这些Top高校实际上就是趋势的制定者。


利用方法论进行研究

在研究中,根据U.S. News 在2014年给出的排名,我选取了Top39高校中的计算机系作为研究对象。有8所学校的计算机系排名并列第40名,这就是为什么我选择Top39作为研究对象的原因。不管谁给出的排名都有瑕疵,并且排名会随着时间不断发生变化。我采用的这份排名中,只考虑了那些能够授予博士学位的大学,还有很多我尊敬的大学没有包含在这39所之内,包括我的母校。

对每一所大学,我挑选出CS、CSE、EECS这三个专业的CS0和CS1课程。在我的研究中,CS1代表CS专业的学生最需要学习的课程,CS0代表一门入门的编程课,上这门课的可能是还没有定专业的学生或者是在上CS1前需要额外准备的学生。学习CS0和CS1都不需要其他任何CS方面的预备知识。要不然他们也不会是学生选择的第一门CS课程(学习CS1之前也不一定要学CS0)。请注意对于CS0和CS1并没有一个严格的官方定义,所以我必须使用一些个人的看法,当然,我会尽量遵守每个系关于课程的官方描述。

尽管一些老师认为CS1指的就是入门编程课程,在我的研究中,我特意将CS1和CS0放在一起,因为对许多学生来说,是在大学学习的第一门编程语言。鉴于美国K-12(相当于国内的小学到高中)教育在计算机科学教育方面的不幸状态,这些大学课程可能是许多学生,特别是女性和少数民族,第一次接触到编程语言。即使学生事先有编程经验,编程语言第一次正式出现在大学课程中仍然具有很大的影响力。我认为CS0和CS1同样重要,因为随着编程在科学领域变得无孔不入,越来越多的非专业人士也开始学习CS0课程。再者,少部分CS专业的学生在学习CS1之前会先学习CS0,特别是那些之前没有任何编程经验的学生。所以,对学生来说,CS0课程作为通往计算世界的大门起着极其重要的作用,没有这门课程,他们可能都不会知道自己在这方面有着如此巨大的热情。


研究结果

下面这张表展示了七种最受欢迎的语言在Top39高校中的使用情况。将每个柱形代表的数字加起来和大于39,这是因为许多学校同时提供了CS0和CS1的课程。



继续探讨

尽管我是一个Python语言的拥护者,但我会尽我最大的努力去不带评价地陈述事实。在这个表格中,Python是最受欢迎的语言,Java排第二。Java语言在过去的十年中在入门课程教学中一直占有主宰地位。但是现在,一些学校完全摒弃了Java,全部使用Python,还有一些学校采取了一个混合的方法,在CS0中使用Python,而在CS1的教学中使用Java。在高中,AP(Advanced Placement)课程中使用的仍然是Java语言。

排在Python和Java之后的语言是MATLAB,MATLAB经常在CS0课程中使用。跟在MATLAB之后是C++,在过去十年中,C++的重要地位被Java完全取代。在2003年,高中的AP课程甚至都用Java取代了C++。从这个表格来看,C语言和C++语言受欢迎的程度一致。一些学校在使用C语言教授入门课程的时候,将C语言和其他的语言结合起来使用,比如说哈佛大学。

Scheme-based 语言在一部分教育工作者和编程语言研究者中相当受欢迎。最引人注意的是,两个哲学校园SICP 和 HtDP已经围绕Scheme生态系统建立了广受好评的教科书和相应课程。但是最近几年,比如在MIT和UC Berkeley,Python已经取代了Scheme的地位。表格显示,Scheme仅仅只在四所学校中使用。

表格中列出来的七种语言中,Scratch是唯一的一种可视化的、基于块的编程语言,Scratch是这种类型的语言中最受欢迎的一种,使用Scratch完成的项目有Alice、App Inventor、Etoys、Kodu、StarLogo 和 TouchDevelop 等等。这种类型语言的创造者将精力主要放在K-12教育上,这或许能够解释为什么这种类型的语言没有在大学中获得广泛的使用。


写在最后

最后, 注意到三个有趣的语言集合没有出现在这个表中,因为这些语言仅仅只被一所学校选用,或者根本没有学校选用:

  • 静态类型的功能性语言,比如说 Haskell 和 OCaml,这些语言在PL研究者中非常受欢迎。
  • 动态类型的语言,比如说JavaScript,Ruby和PHP,这些语言在网络编程者中非常受欢迎。
  • 广泛使用的工业语言,这些语言一般和特定的平台相关联,包括苹果的 Objective-C和微软的C#/Visual Basic。

如果我们在五年,十年或者二十年以后再回顾这篇文章,届时,哪一种语言会是时代的宠儿?


(英文来自: ACM,本文由 moqiguzhu编译,项目地址 CODE。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A饭福利,AMD Mantle API获众多游戏开发商青睐!

摘要:Videocardz整理了一份2014年—2015年支持AMD Mantle游戏列表,并公布了游戏开发商及游戏引擎的名称。已发布且支持Mantle的游戏主要有《战地4》、《神偷4》、《植物大战僵尸:花园战争》以及《狙击精英3》这四款。 现如今,越来…

linux 安装 maven 、解决:bash: mvn: command not found

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1、安装 wget 命令: yum -y install wget 2、下载maven安装包 wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.5.4/binaries/a…

软件工程师必学的9件事

本文是html5tricks原创翻译,转载请看清文末的转载要求,谢谢合作! 三年前,我还在巴塞罗那的神经科学实验室工作,忙着研究脑电波、教授心理学上的认知系统课程。而今天,我以设计和写软件为生。 你或许会满头…

图解 Java 常用数据结构

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与…

编程语言 IDE 对比

IDE是集成开发环境的英文缩写,所谓集成开发环境,就是将你在开发过程中所需要的工具或功能集成到了一起,比如代码编写、分析、编译、调试等功能,从而最大化地提高开发者的工作效率。每种编程语言都有一些特定的IDE,本文…

程序员为什么那么难升职

一个有趣的现象是老程序员很难升职,如果你因为3K工资太低而要辞掉工作,你的上司宁可去外面找一个5K工资的新人,也不会来挽留你。那么程序员为什么那么难升职,这里总结了几点。你上司的问题你晋升困难,最大的主观原因在…

Docker 安装 Redis (Redis 配置)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 获取 redis 镜像 docker pull redis 不加版本号默认获取最新版本,也可以使用 docker search redis 查看镜像来源 查看本地镜像…

百度首席科学家 Andrew Ng谈深度学习的挑战和未来

摘要:7月7日上午,百度首席科学家Andrew Ng应邀做客中国科学院自动化研究所并做了《Deep Learning:Overview and trends》的学术报告。 【编者按】人工智能被认为是下一个互联网大事件,当下,谷歌、微软、百度等知名的高…

Linux 安装 jdk ( 两种方式 )

安装jdk有两种方法:手动安装 yum安装。 方式一: yum安装 1、查询要安装jdk的版本, 命令:yum -y list java* 2、安装jdk1.8 yum install -y java-1.8.0-openjdk.x86_64 3、查询jdk版本:java -version 这样就安装成功了。默认…

Linkedln技术高管Jay Kreps:Lambda架构剖析

摘要:Jay Kreps是Linkedln的一名在线数据架构技术高管,在日常工作中,Jay Kreps经常被问及有关Lambda架构的问题,为此他结合实际经验和个人体会,针对Lambda架构进行深度剖析,分析了它的优缺点以及采用的替代…

JWT ( JSON Web Token ) 入门教程

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#x…

注解 @Target 用法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Target: Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚…

java 并发包之 LongAdder 源码分析

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 LongAdder是java8中新增的原子类,在多线程环境中,它比AtomicLong性能要高出不少,特别是写多的场景。…

解决:Command line is too long. In order to reduce its length classpath file can be used.

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 原本可以正常运行的项目,突然出现这个错: Command line is too long. In order to reduce its length class…

性能提升利器之固态硬盘和序列化漫谈

摘要:假设我们已经构建了下一个杀手级应用,而且变得越来越受欢迎,突破负载极限,以我们目前的增长的速度,需要在3个月内将需要将性能提升10倍。我们该怎么做? 【编者按】当面对一个性能扩展问题时&#xff…

查看本机IP的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 打开网络和共享中心 2.更改适配器设置 3. 右键选择 状态 4.选择详情 5.找到IP

来自前苹果高管Heidi Roizen的经验之谈

摘要:Heidi Roizen曾是T/Maker的联合创始人兼CEO;此后Heidi Roizen加入苹果公司担任开发者关系的高级副总裁。本文她分享了8条箴言,希望能为各位开发者带来启迪,体会生活与工作上的人生感悟。 【编者按】Heidi Roizen曾是T/Maker的…

解决:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408,

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.只是想启动elasticsearch,报错如题: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c…

Docker CEO Ben Golub:Docker借助开源、天时走向成功

摘要:Docker CEO Ben Golub接受了Gigaom专访,他表示,Docker正是借助开源、天时走向了成功。而作为Docker前身,现任CTO Hykes在运作dotCloud过程中,发现多平台的需求越来越受到用户关注,于是Docker孕育而生。…

果断Mark!Searchcode——源代码搜索利器

摘要:Searchcode是一款免费的源代码/文档搜索引擎,汇聚Github、Codeplex、Sourceforge等多家开源站点,拥有超过20万个项目、180亿行源代码,能以特殊字符、语言、仓库和源方式从90多种语言找到函数、API的真实代码。 Searchcode是…