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

2021-02-15 產品中國

  摘要

  截止到 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
    當然,學習編程不分早晚,26歲以後才開始學習變成的工作者當中,也有36%是現在的高級別的開發人員,他們是編程開發的中堅力量,在編程工作中也佔比較大的比例,而且當前企業聘請的大多數程式設計師也是這些人群。高薪酬以及人工智慧的發展,吸引了越來越多的人加入學習編程的行列,但是,學習哪種語言入門,就難到了很多「小白」。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • Python語言如何入門
    閱讀本文大概需要5分鐘:Python 語言應該如何入門,記得我幾年前也碰到過這樣的問題,當時網上隨便搜了一下飢不擇食的找了一些書開始啃起來,結果發現很疑惑,感覺吃力,走了很多彎路。若不得法還會降低初學者的興趣,現在我就說說自己對python 入門的理解.學Python和學其他的語言其實是相同的,我給新同事講課的時候就說學編程和練武功其實是很相似,入門大致這樣幾步:找本靠譜的書,找個靠譜的師傅,找一個地方開始練習。 學語言也是的:選一本通俗易懂的書,找一個好的視頻資料,然後自己裝一個IDE工具開始邊學變寫。
  • 從Scratch開始零基礎編程學習、用Python入門
    當然任何語言學習,都得有一點計算機基礎。對完全沒有任何基礎的純小或者小孩子來說就有點不是很適合的。那我們就首先推薦一個寓教於樂的、遊戲編程式語言Scratch。零基礎學Scratch編程沒有最基礎的計算機IT基礎,那學習就非常困難。不過也沒關係,現在也可以了。
  • 最強程式語言 Java 和最受歡迎之 Python 的巔峰對決
    程式語言是計算機科學的基本,程式語言是程式設計師的主要工具,對於每個編程活動都至關重要。如果你要開始學習編程,那麼選擇正確的程式語言非常重要。在程式語言之間做出選擇是讓人非常苦惱的一件事情,尤其是在Python和Java之間進行選擇。在本文中,我們將討論這兩種程式語言(Java與Python)之間的區別,希望能夠幫助你選到最佳的程式語言。
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • 程式語言學哪個比較好?2019年最實用的程式語言
    第三類語言則是Objective-C和R。1、java-大眾化的程式語言Java是歷史最悠久的程式語言之一。Java可謂是Web應用程式、桌面程序、作業系統及更多系統的立足之本。這種面向對象、基於類的程式語言廣泛使用;此外,它也是最受歡迎的語言之一。
  • 2018年最受歡迎的三種程式語言:JavaScript、Java、Python
    編者按:程式語言多種多樣,新入行的開發者到底該學習哪種語言呢?近日,hackernoon上發表了一篇文章,基於幾個調查報告,盤點了2018年最受歡迎的3種程式語言,分別是JavaScript、Java、Python。僅就美國的行情而言,年薪均超過了10萬美元。
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • Python在程式語言中處於怎樣的地位?
    Python現在的使用已經不能算是一個小眾的程式語言了,如今的用途廣泛,包括很多老師的科研項目裡面很多都用python,多數網站用的也是python比如:谷歌、知乎、facebook等。不知道你們是否有聽過這麼一個段子:幾個程式語言走在路上,遇見了一群敵人C:拿出一根棍子,一個一個把敵人砸死。C++:用機關槍。java:我打電話叫十萬個基佬!perl:我會功夫!ruby大喊著拿著武士刀衝上去了。python:用氫彈。lisp:我先把敵人分組一下吧!haskell:我們可以用殲星艦啊!
  • Java、Python、C語言?5大熱門程式語言,我該怎麼選?
    但是這個不是什麼壞事,入門來說,從簡入難,或者從難入簡,都是很好的選擇。• 庫:庫都是免費的,並且有很多庫和函數把編程變得相對容易很多。• 物聯網:Python也許是會成為物聯網當中最受歡迎的語言,我們都知道樹莓派這樣的新平臺都是基於Python開發的。
  • 初學者入門編程應該學C+ +、Java還是Python?
    C++、Java和Python都是面向對象的程式語言,因為歷史發展的原因,都各自有其各自的擅長領域。C++是一種最廣泛支持範式的程式語言,比較難學,涉及到了指針的概念。指針會比較頭疼。當然如果C學的不錯,C++上手也會快。但是和Java和Python不同的是, C++不支持垃圾回收機制。
  • Python基礎 | 大學小白如何入門Python程序設計
    一、 問題闡述對於剛剛進入大學小白的我們對許許多多課程感到陌生,例如高數、大學計算機網絡、Python語言程序設計等一些課程對於我們剛剛進入大學小白的我們很多時間就聽不懂老師在講什麼,大學和高中完全是不一樣的,大學更多的時間是需要自己去自學,僅僅靠老師上課講的那一點時間是完全不夠的,更多的需要自己課後的練習
  • 《小灰教你零基礎學python》-Python入門語言
    二、什麼是程式語言程序(軟體)是使用程式語言編寫的,比如咱們日常使用的微信、qq、瀏覽器、播放器都是使用程式語言編寫的,程式語言有哪些:javapython>c語言php(有人稱php是最好的程式語言)這裡包括咱本套課程需要學習的python,其實理解咱這麼理解就行:咱們和外國人交流需要說英語,那麼咱們必須要學會英語才能和對方溝通;咱們需要讓電腦進行「溝通」就必須要使用程式語言。
  • 史丹福大學教授推薦兩本Python入門書籍
    今天給大家分享自己學習的python的入門書籍。曾經我們讀書的時候,對編程能力特別感興趣,可是我本身發展不是學計算機的,所以進行編程技術只能看視頻通過自學。那時候,我接觸到的第一門語言是C++,就是一個學了很久,但是由於這門藝術語言教育太過深奧,我學了幾個月,連一些企業基本的圖形設計開發也實現不了,後來我果斷放棄使用編程了。在後來偶然因素之間相互接觸了解到python這門專業語言,給我打開了一扇新的大門。因為python實在太簡單了,直接在命令行打」1+1「,回車就出來結果了,交互性也是非常強。
  • 小數點Python編程入門(數據分析)第十七期開始啦
    網上有很多python入門課程,POINT推出python課程又有什麼亮點呢?首先,最最重要的一點,老師靠譜!本次課程的老師飛柳是我多年好友,他也是我的python啟蒙老師。如果沒有他在python和數據分析方向的幫助,我也許不會走上專業數據分析師的道路。此次課程之所以這麼難產,主要就是在於請他出山很難,整整磨了將近半年。
  • Python編程入門書籍分享
    本書的第2版與第1版相比,做了很多更新,將程式語言從Python 2升級成Python 3,並修改了很多示例和練習,增加了新的章節,更全面地介紹Python語言。這是一本實用的學習指南,適合沒有Python編程經驗的程式設計師閱讀,也適合高中或大學的學生、Python愛好者及需要了解編程基礎的人閱讀。對於首次接觸程序設計的人來說,是一本不可多得的佳作。
  • Python遊戲編程
    為了達到這一目的,本課程應用python語言的語法知識帶領學生從無到有的開發遊戲,通過每個遊戲項目逐步應用學到的語法知識,在實際編程中加深體會。在課程設計中儘量站在初學者的角度,降低開發遊戲的難度,從而方便學生理解及掌握遊戲編程的基本原理和實現方法,逐步提高學生對編程的興趣和能力。
  • 最適合青少年學習的程式語言 – Python
    什麼是Python語言Python語言是由荷蘭人Guido van Rossum於1989年發明,目前是全球最流行的程式語言之一,被廣泛應用於後端開發、爬蟲、大數據處理、數據分析,雲計算、人工智慧等領域。
  • Python零基礎編程——起步並搭建環境
    學python可選擇的方向廣,web方向、人工智慧方向、數據分析方向、網絡爬蟲等都是可以做的,且都屬於比較熱門且發展較好的從業方向。常見崗位:python開發工程師、人工智慧工程師、大數據分析工程師、爬蟲開發工程師、搜尋引擎工程師,等等2-主流程式語言有那些?2019 年 10 月 TIOBE 程序語言排行榜如下