Python已成美国顶尖高校中最受欢迎的入门编程语言
在我寫下這篇文章的時(shí)候,在美國top高校中,Python已經(jīng)成為教授計(jì)算機(jī)科學(xué)入門課程方面最受歡迎的語言。Top10的CS 系中有8所,Top39的CS系中有24所,在入門課程中教授Python。
Python成為最受歡迎語言的動機(jī)
Python逐漸成為教授初學(xué)者編程的第一選擇。三年前,Mark Guzdial通過博客預(yù)測Python作為一門教學(xué)語言將會越來越受歡迎。MIT和UC Berkeley的計(jì)算機(jī)系最近將他們?nèi)腴T課程的教授語言改成了Python。最大的三個(gè)MOOC(Massive Open Online Courses)提供商edX,Coursera和Udacity也全都提供了Python語言的入門課程。并且,不同子領(lǐng)域的教授們(比如說Lorena Barba)在也致力于教授初學(xué)者Python。
在過去四年中,我開發(fā)了一些教學(xué)工具,在這些工具中Online Python Tutor?(www.pythontutor.com)在使用人數(shù)上取得了突飛猛進(jìn)的增長,這得益于越來越多的人使用Python。
盡管各方面都在說Python越來越受歡迎,但是我并沒有看到一個(gè)數(shù)字上的確切統(tǒng)計(jì)。所以我決定統(tǒng)計(jì)在美國Top高校的計(jì)算機(jī)系中有多少使用Python來教授他們的入門課程,由此得出Python是不是越來越受歡迎。在統(tǒng)計(jì)過程中,其他受歡迎的教學(xué)語言也被一同列出。
為什么我要做這個(gè)研究?這是因?yàn)檫x擇不同的語言不僅反映了不同學(xué)校計(jì)算機(jī)系的教育哲學(xué),更為重要的是,它影響了許多學(xué)生對計(jì)算機(jī)科學(xué)的第一印象。被這些Top高校選擇的語言暗示著計(jì)算機(jī)科學(xué)教育的發(fā)展趨勢,要知道,這些Top高校實(shí)際上就是趨勢的制定者。
利用方法論進(jìn)行研究
在研究中,根據(jù)U.S. News?在2014年給出的排名,我選取了Top39高校中的計(jì)算機(jī)系作為研究對象。有8所學(xué)校的計(jì)算機(jī)系排名并列第40名,這就是為什么我選擇Top39作為研究對象的原因。不管誰給出的排名都有瑕疵,并且排名會隨著時(shí)間不斷發(fā)生變化。我采用的這份排名中,只考慮了那些能夠授予博士學(xué)位的大學(xué),還有很多我尊敬的大學(xué)沒有包含在這39所之內(nèi),包括我的母校。
對每一所大學(xué),我挑選出CS、CSE、EECS這三個(gè)專業(yè)的CS0和CS1課程。在我的研究中,CS1代表CS專業(yè)的學(xué)生最需要學(xué)習(xí)的課程,CS0代表一門入門的編程課,上這門課的可能是還沒有定專業(yè)的學(xué)生或者是在上CS1前需要額外準(zhǔn)備的學(xué)生。學(xué)習(xí)CS0和CS1都不需要其他任何CS方面的預(yù)備知識。要不然他們也不會是學(xué)生選擇的第一門CS課程(學(xué)習(xí)CS1之前也不一定要學(xué)CS0)。請注意對于CS0和CS1并沒有一個(gè)嚴(yán)格的官方定義,所以我必須使用一些個(gè)人的看法,當(dāng)然,我會盡量遵守每個(gè)系關(guān)于課程的官方描述。
盡管一些老師認(rèn)為CS1指的就是入門編程課程,在我的研究中,我特意將CS1和CS0放在一起,因?yàn)閷υS多學(xué)生來說,是在大學(xué)學(xué)習(xí)的第一門編程語言。鑒于美國K-12(相當(dāng)于國內(nèi)的小學(xué)到高中)教育在計(jì)算機(jī)科學(xué)教育方面的不幸狀態(tài),這些大學(xué)課程可能是許多學(xué)生,特別是女性和少數(shù)民族,第一次接觸到編程語言。即使學(xué)生事先有編程經(jīng)驗(yàn),編程語言第一次正式出現(xiàn)在大學(xué)課程中仍然具有很大的影響力。我認(rèn)為CS0和CS1同樣重要,因?yàn)殡S著編程在科學(xué)領(lǐng)域變得無孔不入,越來越多的非專業(yè)人士也開始學(xué)習(xí)CS0課程。再者,少部分CS專業(yè)的學(xué)生在學(xué)習(xí)CS1之前會先學(xué)習(xí)CS0,特別是那些之前沒有任何編程經(jīng)驗(yàn)的學(xué)生。所以,對學(xué)生來說,CS0課程作為通往計(jì)算世界的大門起著極其重要的作用,沒有這門課程,他們可能都不會知道自己在這方面有著如此巨大的熱情。
研究結(jié)果
下面這張表展示了七種最受歡迎的語言在Top39高校中的使用情況。將每個(gè)柱形代表的數(shù)字加起來和大于39,這是因?yàn)樵S多學(xué)校同時(shí)提供了CS0和CS1的課程。
繼續(xù)探討
盡管我是一個(gè)Python語言的擁護(hù)者,但我會盡我最大的努力去不帶評價(jià)地陳述事實(shí)。在這個(gè)表格中,Python是最受歡迎的語言,Java排第二。Java語言在過去的十年中在入門課程教學(xué)中一直占有主宰地位。但是現(xiàn)在,一些學(xué)校完全摒棄了Java,全部使用Python,還有一些學(xué)校采取了一個(gè)混合的方法,在CS0中使用Python,而在CS1的教學(xué)中使用Java。在高中,AP(Advanced Placement)課程中使用的仍然是Java語言。
排在Python和Java之后的語言是MATLAB,MATLAB經(jīng)常在CS0課程中使用。跟在MATLAB之后是C++,在過去十年中,C++的重要地位被Java完全取代。在2003年,高中的AP課程甚至都用Java取代了C++。從這個(gè)表格來看,C語言和C++語言受歡迎的程度一致。一些學(xué)校在使用C語言教授入門課程的時(shí)候,將C語言和其他的語言結(jié)合起來使用,比如說哈佛大學(xué)。
Scheme-based 語言在一部分教育工作者和編程語言研究者中相當(dāng)受歡迎。最引人注意的是,兩個(gè)哲學(xué)校園SICP?和?HtDP已經(jīng)圍繞Scheme生態(tài)系統(tǒng)建立了廣受好評的教科書和相應(yīng)課程。但是最近幾年,比如在MIT和UC Berkeley,Python已經(jīng)取代了Scheme的地位。表格顯示,Scheme僅僅只在四所學(xué)校中使用。
表格中列出來的七種語言中,Scratch是唯一的一種可視化的、基于塊的編程語言,Scratch是這種類型的語言中最受歡迎的一種,使用Scratch完成的項(xiàng)目有Alice、App Inventor、Etoys、Kodu、StarLogo 和 TouchDevelop 等等。這種類型語言的創(chuàng)造者將精力主要放在K-12教育上,這或許能夠解釋為什么這種類型的語言沒有在大學(xué)中獲得廣泛的使用。
寫在最后
最后, 注意到三個(gè)有趣的語言集合沒有出現(xiàn)在這個(gè)表中,因?yàn)檫@些語言僅僅只被一所學(xué)校選用,或者根本沒有學(xué)校選用:
- 靜態(tài)類型的功能性語言,比如說 Haskell 和 OCaml,這些語言在PL研究者中非常受歡迎。
- 動態(tài)類型的語言,比如說JavaScript,Ruby和PHP,這些語言在網(wǎng)絡(luò)編程者中非常受歡迎。
- 廣泛使用的工業(yè)語言,這些語言一般和特定的平臺相關(guān)聯(lián),包括蘋果的 Objective-C和微軟的C#/Visual Basic。
如果我們在五年,十年或者二十年以后再回顧這篇文章,屆時(shí),哪一種語言會是時(shí)代的寵兒?
(英文來自: ACM,本文由 moqiguzhu編譯,項(xiàng)目地址 CODE。
總結(jié)
以上是生活随笔為你收集整理的Python已成美国顶尖高校中最受欢迎的入门编程语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《归家异途2》全职业分析及加点推荐
- 下一篇: Java基础——类加载机制及原理