Python,美國頂尖大學裡最受歡迎的編程入門語言

2021-02-21 產品中國

  摘要

  截止到 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 有多麼的受歡迎。因此我試圖從美國計算機排名頂尖的大學的教學課程裡尋找一些答案。

  我為什麼要寫這篇文章呢?因為計算機學院使用什麼語言作為教學語言實際上反映了每個學校不同的教學邏輯,同時也能反映出許多學生對於計算機科學的第一印象。同時,美國計算機頂尖大學的教學語言選擇實際上也能反映出剩下學校的教學語言選擇趨勢。

  研究方法

  我依照 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 糾正我。

排名大學PythonJavaMATLABC++CSchemeScratch1Carnegie Mellon15-110, 15-112





1MIT6.00, 6.01





1Stanford
CS106A




1UC BerkeleyCS61A




CS105UIUCCS103CS125CS101
CS101

6CornellCS1110
CS1112



6U. WashingtonCSE140CSE142




8Princeton
COS126




9Geogria TechCS1301, CS1315
CS1371



9UT AustinCS105CS312




11CaltechCS1





11U. Wisconsin Madison
CS302



CS20213UCLA


CS31


13U. MichiganEECS182

EECS182, 183


15

Columbia

ENGI E1006COMS W1004-1COMS W1005-1



15UCSD
CSE8ACSE7
CSE5A

15

U. Maryland - College Park

CMSC 198C,D,ECMSC131




18

Harvard





CS50

19U. Penn
CIS 110, 120




20BrownCSCI0931CSCI0150CSCI0040

0170,0190008020

Purdue

CS17700CS18000CS15900
CS15800, CS15900

20RiceCOMP 140





20USCCSCI 101

CSCI 103CSCI 103

20Yale
CS112




25Duke 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



EECS110EECS11134

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
272286643

  感謝讀者,在 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。

  本文譯者 翛凌、原作者 Philip Guo

  -

  分享文章:可以點擊右上角的三個點圖標,將文章分享給朋友或朋友圈。

  關注訂閱:可以點擊右上角的三個點圖標在彈出菜單中選擇[查看官方帳號-關注]

  歡迎薦稿:如果您有好的文章想推薦給我們,請發送至到:ad@pmtoo.com 註明作者和出處,謝謝!

相關焦點

  • 趕超 Python 與 Java,JavaScript 問鼎最受歡迎的程式語言
    畢竟大多數常見的程式語言的基本概念都大同小異,且對於編程新手來說,大多數程式語言看起來都差不多,它們可以讓你獲得近乎相同的結果。但從開發人員的角度來看,程式語言不僅是一種工具,而且選擇正確的程式語言將會影響一個人的職業生涯、錢途以及未來生活的幸福指數。在此,本文將基於 2018 年的開發者生態系統報告,剖析當前主流程式語言的趨勢,探索在新的一年中,最具潛力、最值得學習的程式語言。
  • 為什麼Python程式語言在程式設計師中如此受歡迎?
    在20世紀80年代,沒有人想到一種受ABC(一種被拋棄的程式語言)所啟發的程式語言將成為21世紀最受歡迎的語言之一。在那裡,他加入了一個團隊,該團隊的任務是創建一種稱為ABC的新程式語言,該語言將取代當時所有的Basic語言。ABC成立四年後,由於失敗的營銷和其他原因而被放棄。Rossum花了幾年的時間才弄清背後的真正原因,但對他而言,最好的原因是網際網路。在那些日子裡,網際網路很少或根本沒有,因此它失敗了。五年之後,Rossum想開發自己的程式語言Python。
  • 史丹福大學用JavaScript取代Java作為入門程式語言!
    本次變動由名譽教授 Eric Roberts 牽頭,作為 CS 106 系列課程的先驅,在他當年加入該校時,教授的仍是基於 Pascal 的程式語言。在 Java 變得流行之後,斯坦福順勢做出了改變。據 悉,在過去五年裡, Eric Roberts 和 CS 106 課程的初始創始人一直在為該部門編寫向JavaScript 轉型的教材,除編寫教科書之外,他還為新的程式語言創造新的課程任務等。此舉旨在將 CS 106 課程全面轉向代表網際網路時代的 JavaScript 程式語言。Java時代即將結束?
  • 【衝擊年薪百萬】11 大程式語言薪資排行榜,再不學Python就晚了!
    但是,美國創業公司似乎更喜歡 Python 和 Java,對這兩者的需求超過了 Ruby(兩年前 Ruby 最受歡迎),PHP,C 或 C#。2.看各大語言前景,以及 Github 過去 16 年程式語言遷徙:更多人轉而使用 Python接下來我們可以看看各種程式語言的前景。一種程式語言將來的發展前景如何?首先,這在很大程度上取決於其社區的發展,因為新鮮血液/採用率是使語言受歡迎的保障。因此,讓我們來看看人們最感興趣的語言是什麼:
  • Python基礎 | 大學小白如何入門Python程序設計
    一、 問題闡述對於剛剛進入大學小白的我們對許許多多課程感到陌生,例如高數、大學計算機網絡、Python語言程序設計等一些課程對於我們剛剛進入大學小白的我們很多時間就聽不懂老師在講什麼,大學和高中完全是不一樣的,大學更多的時間是需要自己去自學,僅僅靠老師上課講的那一點時間是完全不夠的
  • 20年來首次,Python打敗Java成全球第二大受歡迎程式語言!
    在程式設計師圈子裡,關於Python和Java究竟誰更好的爭論,從來沒有停止過。
  • Java 薪資不如 Python,JavaScript 最受歡迎,2018 年主流程式語言一較高下!
    ,分析出 2018 年最受歡迎及薪資排名靠前的三種程式語言,希望對大家有所裨益。例如,如果你知道 2018 年賺錢最多的程式語言,或者最流行的程式語言,那麼你就可以適當地關注它們。在這篇文章中,我們將評估一些數據來源,尋找出 2018 年需求量最大的三種程式語言。
  • 入門必備—常用的C語言編程軟體
    C語言是每一個計算機專業的學生最先接觸也是最為基礎的程式語言,學習C語言有助於更好的理解C++,Java,C#以及其他基於C的特性的語言
  • 躺贏第一語言!程式語言受歡迎程度:Python 封王.
    上周,PYPL(程式語言受歡迎程度) 四月官方榜單已發布,Python榮獲NO.1,相比去年 4 月份,今年上漲了 5.2%,成績頗為亮眼,從去年開始,Python就開始霸佔榜單長達1年,成為編程市場上份額最高的語言!
  • 為什麼 Python 不是未來的程式語言?
    Python 現在如此火爆,已發展成為一種非常通用的語言,無論是從入門級選手到專業技術數據挖掘、科學計算、圖像處理、人工智慧,Python 都可以勝任。它會是未來的程式語言嗎?它是完美無缺的程式語言嗎?有人發出了不同的聲音。此前,InfoQ 中文站曾編譯過相關文章,今天,我們翻譯並分享了 Rhea Moutafis 對 Python 的看法,權當一家之言吧!
  • 【Swift】蘋果最受歡迎的程式語言
    最近,程式設計師開發問答服務網站「StackOverflow」進行了一次民調。調查方向受訪者問及,在過去一年中曾經使用什麼程式語言來開發軟體,哪種語言用的最多。民調結果顯示,蘋果公司推出的Swift語言,以77.6%的覆蓋率,在受歡迎程度上名列第一。超過了其他許多知名度較高的開發語言。C++11語言覆蓋率為75.6%,排名第二。微軟公司推出的已經有多年歷史的C#語言,覆蓋率僅為67.2%,在榜單中排名倒數第二。
  • Python超越Java成為最受歡迎的教學語言;9月,Adblock Plus可能會退出中國
    1.Python超過Java成為最受歡迎的教學語言
  • 計算機程式語言 | Python 語言淺析
    Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向對象的解釋型電腦程式設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。Python是純粹的自由軟體, 原始碼和解釋器CPython遵循 GPL(GNU General Public License)協議。
  • 年度熱門程式語言排行榜,2017年哪個編程最火?
    轉自941大數據想知道全球最受歡迎的程式語言是什麼嗎?它們的判斷標準又是怎樣的呢?
  • 選Python還是選Java?2020年,頂尖程式設計師最應該掌握的7種程式語言
    蘿蔔白菜,各有所愛,AI 工程師和科學家可以根據項目需要,從眾多程式語言中選擇最適合自己的。有人曾經將編程比作做菜,那程式語言就是首先要準備的食材或廚具。C:一把菜刀一口炒鍋,一個很好用的灶,隔壁有個菜市場。Java:碎菜器,切菜機,絞肉機,和面機,烤箱,微波爐……Python:大超市的速凍櫃檯,要成品有成品,要半成品有半成品,什麼都有。
  • Google程式設計師使用的頂級程式語言
    最明顯的是,Google內部使用哪些程式語言?通過知道這個問題的確切答案,你將能夠充分地為自己做好準備,這樣一旦你在這家大型科技公司找到一份工作,你就不會感到不自在。我們已經從谷歌的工作人員以及谷歌開發的產品那裡收集了信息。他們透露了一些關於谷歌內部使用的語言的信息。以下是其中一些: 1.
  • 機器學習最受歡迎的語言:Python、Java 還是 R ?
    簡歷投遞:jobs@aiera.com.cnHR 微信:13552313024新智元為COO和執行總編提供最高超百萬的年薪激勵;為骨幹員工提供最完整的培訓體系、高於業界平均水平的工資和獎金加盟新智元,與人工智慧業界領袖攜手改變世界。【新智元導讀】要想獲得機器學習或數據科學的工作機會,什麼程式語言是最應該學習的呢?
  • 為什麼國內很少有大學開設Python課程?
    我們分析並歸納了以下幾個原因:如今最受歡迎的10門語言中,除了C語言有7門都直接使用、間接引用或借鑑參考了C語言的語法,因此可以說C語言是大多數程式語言的基礎。大部分程式設計師都表示:只要理解了C語言的結構和語法,再去學其他程式語言都可以觸類旁通。從面向過程的思想入門,可以幫助初學者熟悉軟體系統的底層原理和設計邏輯,有利於培養基本的編程思維,再深入到面向對象的思想就順其自然。
  • 區塊鏈開發的11種頂級程式語言
    C#C#是面向對象的,已編譯的高級程式語言,是90年代末/ 00年代初為Microsoft創建的。大量的象牙研究表明,這種語言類似於C ++或Java,並且比Java語言更難以學習。雖然,它也沒有像Go這樣的其他語言那麼複雜。有許多使用C#語言的流行區塊鏈項目。此類區塊鏈項目中最受歡迎的是NEO,即俗稱的以太坊的中國版本。
  • 人工智慧最火程式語言:Python 大戰 Java
    這種指標更能體現技能的受歡迎程度。話不多說,上數據。我搜索了與「機器學習」和「數據科學」一起使用的技能,搜索選項包括程式語言Java、C、C+++和JavaScript。然後還包括了Python和R,因為我們知道它在機器學習和數據科學方面很受歡迎,當然還有Scala,考慮到它與Spark的關係,再加上Julia,一些開發中認為這是「the next big thing」。