于莉莉 張磊 李晶
摘要:我國高校非計算機專業(yè)普遍開設的程序設計課程所選擇的高級語言的特點,Python語言優(yōu)勢及國內外高校開設情況和就業(yè)情況分析,當下是我國高校非計算機專業(yè)開設Python語言教學的重要契機。
關鍵詞:教學改革;Python語言;程序設計
中圖分類號:G424 文獻標識碼:A 文章編號:1009-3044(2018)19-0165-02
Abstract: the characteristics of advanced language program design course of computer specialty generally offered by Chinese college non selected, analysis of advantages of Python language and domestic and foreign colleges and universities and the employment situation, at present in China is the important opportunity for non computer majors in Python language teaching.
Key words: teaching reform; Python language; program design
1 引言
從古至今出現(xiàn)過的高級語言超過200多種,而迄今常用的不過十余種,每種語言都有其開發(fā)優(yōu)勢和設計局限性,不同時期流行的語言反映了不同的歷史環(huán)境,我國高校程序設計語言課程也是不斷更替的,從早期的Pascal、Fortran,到現(xiàn)在大多數(shù)都以C、Java、VB作為主要教學語言。隨著云計算、大數(shù)據(jù)時代的到來,經典的C語言明顯有些力不從心。時代召喚一種既有C語言的優(yōu)勢又能適應網絡編程的腳本語言,Python優(yōu)勢凸顯。2016年,教育部高等學校大學計算機課程教學指導委員會發(fā)布了《大學計算機基礎課程教學基本要求》(簡稱《基本要求》)?!痘疽蟆肥状谓ㄗh將Python語言作為首門程序設計課程的教學語言,在其推動下,國內高校逐步開設了Python 語言,成為教學改革熱點[1]。
2 我國高校程序設計課程現(xiàn)狀分析
C語言(1972年)。C語言是一門經典的程序設計語言,它具有簡潔、高效、可移植性好、表達力強等特點,既具有高級語言的功能,又兼容低級語言的許多功能,可用來編寫系統(tǒng)軟件,所以至今仍是高校普遍開設的課程。C指針是C語言的精髓,指針和地址的概念對于非計算機專業(yè)的學生理解起來有一定的難度,而且也沒有專業(yè)需求。所以說C語言更適合計算機專業(yè)和信息類學生開設。
VB語言(1991年)。是基于Windows平臺開發(fā)的可視化交互語言,所見即所得使學生產生很大的興趣,教學效果相對良好。由于程序是Windows的專屬開發(fā)工具,具有很大的局限性使其應用前景不太看好,所以很多高校都不在開設此課程。
Java語言(1995年)。Java語言是從C、C++改編而來的,去除了C++難理解易混淆的特征,使程序更加嚴謹、簡潔,具有平臺無關性,一次編譯到處可運行,良好的安全性和健壯性。JAVA是一種靜態(tài)類型語言,所有變量必須先聲明在使用,更適合底層實現(xiàn)語言。采用嚴格的面向對象編程方法,同時有很多大型的開發(fā)框架,比較適合企業(yè)級應用,主要教學對象是計算機專業(yè)和信息類專業(yè)學生。
Python語言(1991年)。人工智能的興起,Python語法簡潔、清晰,類庫豐富等優(yōu)勢迅速躥紅。Python語言是一種開源的腳本語言,由于歷史的局限性,發(fā)布初期Python并沒有得到廣泛關注,2008年發(fā)布3.0版,擯棄了從前版本的很多弊病,使其受到很多國外高校的青睞。美國斯坦福大學在2009年開設了Python語言程序設計類課程開始,每年新增約5門課程,截止到2015年,該校年度開設22門與Python語言相關課程,尤其針對非計算機專業(yè)學生,替換了之前的Java語言和部分專業(yè)的C語言課程。美國綜合排名前100的大學有超過70所在近三年開設了Python語言類課程[2]。我國高校和國外還有很大差距,到2015年全國高校開設Python課程不超過10所。2017年4月,北京理工大學計算機學院和高等教育出版社聯(lián)合承辦了“第一屆高等學校Python語言及計算生態(tài)教學研討會”提出了計算生態(tài)的概念[3],高校Python教學改革提上了日程。
3 Python語言與C語言的在語法結構比較
Python與C語言具有非常相似的語法結構。
3.1 Python語言輕語法、弱類型
Python變量符號常量無需定義,直接使用,不需要考慮數(shù)據(jù)溢出和精度的問題,而C語言需要先定義再使用。
1) 常量定義
C:#define TEST 0
Python:test = 0
2) 變量定義
C:int test = 0;
Python:test = 0
從數(shù)據(jù)類型上Python變得更加友好,去掉了指針、地址等和計算機系統(tǒng)結構有關的元素,運算符去掉了容易產生二義性的自加和自減運算符,同時在邏輯運算符上Python也區(qū)別于C語言,Python中是and,or,not ,而C語言中則是&&,||,!。
除此之外,Python還提供了str(字符串),list(列表),dict(字典)這些功能強大的數(shù)據(jù)類型,讓程序開發(fā)變得更為簡單。
3.2 Python代碼簡潔
以100以內5的倍數(shù)或者數(shù)字中含有5的整數(shù)的求解問題為例。下面是用C語言編寫的代碼,共用了8行,而且必須用函數(shù)封裝;
#include
int main()
{ int i=0;
for (i=0;i<100;i++)
if(i%5==0 || i%10==5 || (i/10)==5)
printf("%d\t",i);
return 0; }
s=[x for x in range(1,100) if x%5==0 or ('5' in str(x))]
相比之下,Python只用1行代碼更加短小、簡潔、無需函數(shù)封裝,而且問題越復雜這種優(yōu)勢越明顯。
此外,判斷語句if else,這兩者沒有區(qū)別,循環(huán)語句while也沒有,只是for循環(huán),Python通過for in來表示;Python語言每條語句后面沒有分號作為結束標志,而且相對于C語言通過{}一對大括號來表示復合語句,Python中通過縮進來表示復合語句,這使Python可讀性增強,而且便于培養(yǎng)良好的編程習慣。
3.3 優(yōu)雅的語法
Python無需過多的細節(jié)規(guī)則限制,使程序設計更為簡單,容易上手。比如C語言中多用于排序中交換兩個變量的算法,需要3條語句實現(xiàn):
c=a; a=b; b=c;
而Python則只需1條語句即可,a,b=b,a
3.4 Python的專業(yè)生態(tài)圈
Python語言是開源的,擁有現(xiàn)今世界最大的基于單一語言的開放社區(qū),目前類庫多達十二萬多個,而且還會不斷增加。為快速學習和使用Python提供了強有力的支撐,可以滿足不同層次不同專業(yè)的需求,構筑了龐大健康的生態(tài)圈。這正是Python的優(yōu)勢所在,沒有專業(yè)生態(tài)圈Python就與其他高級語言無異。計算生態(tài)是軟件產業(yè)迅速發(fā)展的技術支撐,技術快速更迭和發(fā)展,創(chuàng)新技術不斷產生,最新技術得到普及。在新工科背景下,計算生態(tài)最為程序設計類課程改革的教學內容,能夠更好地培養(yǎng)學生創(chuàng)新思維,提高創(chuàng)新能力。
4 Python語言的優(yōu)勢分析
基于Python語言的特征,可以看出Python語言作為非計算機專業(yè)首選課程具有三大優(yōu)勢。
1) 語法簡潔,代碼短小,功能強大,易于學習。對于非計算機專業(yè)學生的第一門計算機程序設計課程,入門容易是非常必要的,興趣的保持是課程延續(xù)的基礎。Python語言更接近自然語言,學習曲線平滑,同時具有高效性,實現(xiàn)周期短。學生的編程熱情和創(chuàng)新思想能夠快速實現(xiàn),能更好地保持學生的學習熱度;
2) 應用廣泛,與專業(yè)結合度高。Python具有龐大的生態(tài)圈,提供了數(shù)量驚人的各種第三方庫,由于Python是開源的,在避免重復造輪子的前提下又具有相互競爭機制,使其生態(tài)圈健康穩(wěn)健成熟的高速發(fā)展。同時對于新手非常友好,學生運用計算生態(tài)結合不同專業(yè)特征可以在科學計算、數(shù)據(jù)挖掘、Web開發(fā)、機器學習、部署腳本、科學建模等數(shù)之不盡的領域應用,可以說與專業(yè)結合非Python莫屬。
3) 社會需求量大,就業(yè)形勢前景看好。隨著人工智能、云計算、大數(shù)據(jù)、機器學習的興起推動了Python語言的發(fā)展。最近IEEE Spectrum發(fā)布了2017年編程語言交互式排行榜,Python位居榜首。Coding Dojo(編碼道場)近期發(fā)布了2018年最具就業(yè)前景的7大編程語言,Python位居第二,位于第一的Java語言,由于局限于安卓開發(fā)平臺出現(xiàn)就業(yè)萎縮現(xiàn)象,而Python語言則逐年遞增。雖然國內與國外情況有所差異,國內由于高校Python語言教學的滯后,Python優(yōu)勢并不如國外明顯,從智聯(lián)招聘、前程無憂等專業(yè)的平臺上Python就業(yè)薪資和需求量及投簡歷的人數(shù),可以判斷人才缺口很大、未來python就業(yè)形勢將大幅度上升。
由此可見,我國高校非計算機專業(yè)的程序課程首選Python實在必行,同時Python稱為“膠水”語言,它能很好地與其他高級語言互補進行混合編程,所以計算機專業(yè)及信息類專業(yè)在開設C語言、JAVA語言后,可以把Python作為第2或第3語言開設。
5 結語
通過我國現(xiàn)階段開設的高級語言比較分析,結合Python語言的結構特點及當前國內外不同語言編程人員就業(yè)形勢,在新工科背景下,高校非計算機專業(yè)程序設計課程改革把Python語言作為首選是大勢所趨,高校在師資培養(yǎng)、教材建設、教學資源等方面要積極準備,積極應對,推動全國高校教學改革。
參考文獻:
[1] 嵩天,黃天羽,禮欣. Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學,2016(2): 42-47.
[2] 嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學2016(2).
[3] 王雪.北理工承辦“全國高校Python語言及計算生態(tài)教學研討會”[EB/OL].[2017-04-25].http://www.bit.edu.cn/xww/zhxw/139071.htm.