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.pswp.cn/news/447479.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447479.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447479.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

源碼閱讀 AtomicInteger

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 AtomicInteger 原子整數 可以原子更新的int值。 用于原子遞增計數器等應用程序中,不能用作java.lang.Integer的替換。 擴展…

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原創翻譯,轉載請看清文末的轉載要求,謝謝合作! 三年前,我還在巴塞羅那的神經科學實驗室工作,忙著研究腦電波、教授心理學上的認知系統課程。而今天,我以設計和寫軟件為生。 你或許會滿頭…

Linux 的 chmod 命令,對一個目錄及其子目錄所有文件添加權限

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 對一個目錄及其子目錄所有文件添加權限 命令: chmod 777 -R ./html 給予html目錄下可讀可寫可操作權限。 或者 chmod -R…

Linux 下壓縮與解壓.zip 和 .rar

1)對于.ziplinux下提供了zip和unzip程序,zip是壓縮程序,unzip是解壓程序。它們的參數選項很多,可用命令zip -help和unzip -help查看,這里只做簡單介紹,舉例說明一下其用法:# zip test.zip test.jpg test.pn…

優秀的程序員VS糟糕的程序員

優秀的程序員和一般的程序員差別在哪里?怎么才能成為優秀的程序員?我們選擇了這個職業就要把他做好! 優秀的程序員: 1、邏輯能力很強,這也是解決問題的關鍵。 2、分析能力。可以很好的解決復雜問題。 3、事情做得專…

圖解 Java 常用數據結構

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 最近在整理數據結構方面的知識, 系統化看了下Java中常用數據結構, 突發奇想用動畫來繪制數據流轉過程. 主要基于jdk8, 可能會有些特性與…

程序員生存定律--使人生永動的勢能

程序員生存定律這系列的目錄在這里:程序員生存定律--目錄 喜歡從頭瞄的,可以移步。 ------------------------------------------------------------------------------- 這篇說的是精神,比較務虛,不感興趣的可以略過。 在國內有…

int 和 Integer 的區別

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1、Integer是int的包裝類,int則是java的一種基本數據類型 2、Integer變量必須實例化后才能使用,而int變量不需要…

度量術語之二:應用類和開發類生產率(實際度量案例)

一個令人震驚的事實是連生產率這種常見度量數據都沒有一個簡單的定義。連我們日常經常用到的公式:生產率工作產品/工作量(工作產品可以是代碼行,功能點,也可以是任何可以計數的東西,比如文檔頁數)都是錯誤的…

注解 @ModelAttribute 運用詳細介紹

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。1.ModelAttribute注釋方法   例子(1),(2),(3&#x…

編程語言 IDE 對比

IDE是集成開發環境的英文縮寫,所謂集成開發環境,就是將你在開發過程中所需要的工具或功能集成到了一起,比如代碼編寫、分析、編譯、調試等功能,從而最大化地提高開發者的工作效率。每種編程語言都有一些特定的IDE,本文…

強制更新 maven 緩存

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 mvn dependency:purge-local-repository

程序員為什么那么難升職

一個有趣的現象是老程序員很難升職,如果你因為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 這樣就安裝成功了。默認…

在動態網絡下實現分布式共享存儲

摘要:本文介紹了分布式環境下實現共享內存模型會遇到的各種問題和挑戰,并針對不同問題介紹多種算法的優劣性。本文是對現階段該領域研究現狀的總體介紹,通過本文能了解動態分布式共享內存研究的前沿狀況、挑戰與機遇。 共享內存系統是普通單…

集合拷貝通用方法、list<A> 轉換成 list<B> (屬性相同)

拷貝2個擁有相同屬性的集合實現: 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 package com.hydbest.app.lbd.marketing.common.utils;import com.alibaba.fastjson.JSON…