聯系電話:020-28187900

Python成為美國頂尖大學里最受歡迎的編程入門語言

發表時間:2014-07-10 閱讀: 7192


截止到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


相關新聞 【更多】

唯眾網絡

1000炮金蟾捕鱼网络版