趙海波
【摘要】文章分析了高職軟件技術(shù)專業(yè)開設(shè)的程序設(shè)計(jì)語(yǔ)言課程體系和Python語(yǔ)言的優(yōu)勢(shì)及廣泛應(yīng)用領(lǐng)域,提出了高職軟件技術(shù)專業(yè)開設(shè)Python課程的教學(xué)體系方案,對(duì)將要開設(shè)Python語(yǔ)言課程的高職學(xué)校有一定借鑒意義。
【關(guān)鍵詞】Python 高職 課程體系
【Abstract】This paper analyzes the programming language curriculum system in the software technology majors of vocational colleges, the advantages and widely used fields of Python. Then it proposes a curriculum teaching system for Python in vocational colleges. It has certain reference significance for vocational colleges which prepare to offer Python course.
【Keywords】Python; Vocational colleges; Curriculum system
【中圖分類號(hào)】G71 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2018)39-0224-02
1.引言
程序設(shè)計(jì)課程是高職軟件技術(shù)專業(yè)必修的專業(yè)基礎(chǔ)課程,在整個(gè)教學(xué)體系中占有非常重要的地位。課程教學(xué)目標(biāo)是培養(yǎng)學(xué)生熟練掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)思想和設(shè)計(jì)方法,以及應(yīng)用面向?qū)ο笏枷虢鉀Q和處理實(shí)際問題的方法與能力。
目前高職軟件技術(shù)專業(yè)開設(shè)的程序設(shè)計(jì)語(yǔ)言一般有基礎(chǔ)的C語(yǔ)言,進(jìn)階的有.NET的C#語(yǔ)言、Java體系的java語(yǔ)言等。C語(yǔ)言作為入門的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,基于其優(yōu)秀的性能和良好的程序結(jié)構(gòu),有利于學(xué)生的編程思想的培養(yǎng)。.NET和Java均有各自的體系,作為市場(chǎng)占有率極高的面向?qū)ο蟮母呒?jí)程序語(yǔ)言,基本能實(shí)現(xiàn)各個(gè)方面的程序設(shè)計(jì)需求。因此這些程序設(shè)計(jì)的課程體系基本涵蓋了職業(yè)技術(shù)院校學(xué)生所學(xué)即可用的需求。
隨著大數(shù)據(jù)、云計(jì)算等IT技術(shù)的廣泛應(yīng)用,Python這門誕生了三十年的程序設(shè)計(jì)語(yǔ)言煥發(fā)出了勃勃生機(jī),在各應(yīng)用領(lǐng)域受到了前所未有的歡迎。因此有眾多高職院校有開設(shè)Python課程的需求。
2.高職開設(shè)Python語(yǔ)言的必要性分析
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于1991年[1]。IEEE發(fā)布2017年編程語(yǔ)言排行榜:Python高居首位[2]。Python是一門非常流行的程序設(shè)計(jì)語(yǔ)言,具有很多優(yōu)點(diǎn),主要有:(1)Python是完全面向?qū)ο蟮恼Z(yǔ)言, Python采用極簡(jiǎn)主義的設(shè)計(jì)思想,Python語(yǔ)言易學(xué)、易讀、易維護(hù)。Python 語(yǔ)言是目前最接近自然語(yǔ)言的高級(jí)語(yǔ)言,抽象程度高,代碼編寫高效,符合計(jì)算思維的時(shí)代性,適應(yīng)當(dāng)代計(jì)算機(jī)技術(shù)發(fā)展水平。(2)Python是免費(fèi)、開源的,可以移植的,已經(jīng)被移植到了大多數(shù)平臺(tái)下面。(3)高可擴(kuò)展性和嵌入性,如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,你可以把你的部分程序用C或C++編寫,然后在你的Python程序中使用它們。還可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。(4)具有豐富的生態(tài)庫(kù),Python本身具有豐富強(qiáng)大的標(biāo)準(zhǔn)庫(kù),而且由于Python的開源特性,第三方庫(kù)也非常多,可以運(yùn)用在web開發(fā)、數(shù)據(jù)分析、爬蟲、科學(xué)計(jì)算等各個(gè)領(lǐng)域。這些第三方庫(kù)形成的Python生態(tài)為使用Python 語(yǔ)言編寫程序提供了極大的便利和良好的學(xué)習(xí)平臺(tái),為基于Python 語(yǔ)言的快速開發(fā)提供了強(qiáng)大支持,由此形成了良好的生態(tài)體系,構(gòu)成了Python 語(yǔ)言的強(qiáng)大優(yōu)勢(shì)。
Python 語(yǔ)言已經(jīng)成為國(guó)際最受歡迎的程序設(shè)計(jì)語(yǔ)言,國(guó)外眾多大學(xué)從2009 年開始針對(duì)該言廣泛開設(shè)相關(guān)課程。2016 年,教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會(huì)發(fā)布了《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》,首次建議將Python 語(yǔ)言作為程序設(shè)計(jì)入門課程的教學(xué)語(yǔ)言[3]。以此為契機(jī),我國(guó)高校也逐步開展Python程序設(shè)計(jì)課程的教學(xué)改革。高等職業(yè)學(xué)校課程體系的特點(diǎn)就是與市場(chǎng)需求無縫連接,所學(xué)即可用。目前開設(shè)的Java程序語(yǔ)言體系與.Net程序語(yǔ)言體系實(shí)現(xiàn)的過程及目標(biāo)高度一致,或有不少重復(fù)的內(nèi)容。從市場(chǎng)角度來看,Java的市場(chǎng)份額要比.Net的市場(chǎng)份額要高,適用程度和受歡迎程度也都要高。Python 語(yǔ)言發(fā)展了面向?qū)ο蟾呒?jí)語(yǔ)言的表達(dá)形式,簡(jiǎn)化程序設(shè)計(jì)過程,提升了程序設(shè)計(jì)效率。基于對(duì)目前軟件技術(shù)專業(yè)開設(shè)的程序設(shè)計(jì)語(yǔ)言課程以及Python語(yǔ)言的特點(diǎn)分析,以及目前IT市場(chǎng)上Python語(yǔ)言的普遍適用和受歡迎程度,認(rèn)為可以用Python語(yǔ)言生態(tài)體系替代.Net體系,使學(xué)生掌握的技能更接近市場(chǎng)需求,這樣也更能體現(xiàn)高職人才培養(yǎng)方案的特點(diǎn)。
3.軟件技術(shù)專業(yè)開設(shè)Python課程教學(xué)體系設(shè)計(jì)
Python語(yǔ)言由“Python語(yǔ)言程序設(shè)計(jì)”及“Python生態(tài)圈”(第三方類庫(kù))組成,Python具有龐大的生態(tài)圈,十多萬(wàn)個(gè)第三方庫(kù)覆蓋幾乎所有技術(shù)領(lǐng)域,離開Python語(yǔ)言的生態(tài)圈,Python語(yǔ)言與其他高級(jí)語(yǔ)言無異了。Python 語(yǔ)言教學(xué)改革與其他編程語(yǔ)言在教學(xué)理念上的重要區(qū)別,即“Python 語(yǔ)言”與“Python生態(tài)圈”是統(tǒng)一的整體,可以兼顧基礎(chǔ)Python語(yǔ)言功能與Python生態(tài)圈的應(yīng)用。在教學(xué)內(nèi)容的選擇上可以考慮分兩個(gè)階段設(shè)計(jì)Python課程的教學(xué)體系,第一個(gè)學(xué)期開設(shè)Python語(yǔ)言基礎(chǔ)程序設(shè)計(jì),第二個(gè)學(xué)期開設(shè)Python語(yǔ)言應(yīng)用開發(fā),學(xué)習(xí)Python生態(tài)圈應(yīng)用。
3.1Python語(yǔ)言基礎(chǔ)程序設(shè)計(jì)
第一個(gè)學(xué)期開設(shè)Python語(yǔ)言基礎(chǔ)程序設(shè)計(jì)學(xué)習(xí)“Python語(yǔ)言基本語(yǔ)法”,設(shè)置54課時(shí),3個(gè)學(xué)分,具體安排如圖1和表1所示。Python語(yǔ)言基礎(chǔ)程序設(shè)計(jì)與一般高級(jí)程序設(shè)計(jì)語(yǔ)言教學(xué)類似,突出程序設(shè)計(jì)的基本方法,重點(diǎn)培養(yǎng)學(xué)生掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,認(rèn)識(shí)將現(xiàn)實(shí)問題轉(zhuǎn)變?yōu)閿?shù)據(jù)結(jié)構(gòu)算法再變?yōu)槌绦虻倪^程[4]。強(qiáng)調(diào)計(jì)算機(jī)求解問題的思路引導(dǎo)與程序設(shè)計(jì)思維方式的訓(xùn)練,重點(diǎn)放在程序設(shè)計(jì)的思想與方法上。
3.2Python語(yǔ)言應(yīng)用開發(fā)
第二個(gè)學(xué)期開設(shè)“Python生態(tài)圈”,學(xué)習(xí)Python的具體應(yīng)用,讓學(xué)生掌握具有一定規(guī)模的程序設(shè)計(jì)任務(wù),設(shè)置72課時(shí),4個(gè)學(xué)分,具體安排如表2所示。通過該課程的學(xué)習(xí),讓學(xué)生具備利用軟件編程技術(shù)去解決實(shí)際問題的應(yīng)用能力。通過分析問題、設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)、編寫程序,學(xué)會(huì)利用程序來解決現(xiàn)實(shí)問題,提高程序應(yīng)用能力。要求學(xué)生能夠完成需求分析、編寫程序、調(diào)試程序的任務(wù),并能根據(jù)具體任務(wù)的需要查詢?nèi)蝿?wù)行業(yè)領(lǐng)域內(nèi)的專業(yè)知識(shí),將軟件應(yīng)用于行業(yè)結(jié)合起來,解決行業(yè)問題,并撰寫報(bào)告。“Python生態(tài)圈”部分主要講解第三方庫(kù),配合Python語(yǔ)言基本語(yǔ)法,可以講授Numpy庫(kù)、requests庫(kù)、pandas庫(kù)、Matplotlab庫(kù)等,通過有趣并且實(shí)用的案例增強(qiáng)學(xué)生學(xué)習(xí)的興趣?!癙ython語(yǔ)言程序設(shè)計(jì)”和“Python生態(tài)圈”這兩部分內(nèi)容相互融合、相互支持、相輔相成,通過講解部分庫(kù)可以構(gòu)造有趣的實(shí)例,語(yǔ)法學(xué)習(xí)的逐步深入也助于對(duì)庫(kù)的理解和學(xué)習(xí)[5]。應(yīng)用“Python生態(tài)圈”部分講解面向能力的系列庫(kù),根據(jù)Python的應(yīng)用領(lǐng)域,建議在數(shù)據(jù)分析、網(wǎng)絡(luò)爬蟲、人工智能、圖形繪制四個(gè)應(yīng)用方向進(jìn)行學(xué)習(xí)。
(1)數(shù)據(jù)分析方向:分詞jieba庫(kù) 和自然語(yǔ)言處理NLTK 庫(kù)講解,形成處理自然語(yǔ)言的基本能力;Numpy庫(kù)做矩陣計(jì)算;Scipy庫(kù)做科學(xué)計(jì)算;pandas庫(kù)做數(shù)據(jù)處理;數(shù)據(jù)展示Matplotlib 庫(kù),形成表示數(shù)據(jù)、繪制數(shù)據(jù)展示圖及開展深入數(shù)據(jù)運(yùn)算的基本能力。
(2)網(wǎng)絡(luò)爬蟲方向:講解Web 爬取requests庫(kù)、HTML 解析beautifulsoup庫(kù)和正則表達(dá)式re庫(kù),形成數(shù)據(jù)爬取分析并提取網(wǎng)頁(yè)數(shù)據(jù)的能力。
(3)人工智能方向:學(xué)習(xí)sklearn庫(kù)和scikit?鄄learn庫(kù)做機(jī)器學(xué)習(xí);pybrain庫(kù)做神經(jīng)網(wǎng)絡(luò);Theano庫(kù)和Keras庫(kù)做清洗數(shù)據(jù)并進(jìn)行機(jī)器學(xué)習(xí)分類、聚類和回歸分析的能力。
(4)圖形繪制方向:講解Matplotlab這個(gè)專業(yè)畫圖工具庫(kù);講解圖形繪制的turtle庫(kù)和GUI 設(shè)計(jì)的qt5 庫(kù),形成基本的GUI 實(shí)現(xiàn)和圖形創(chuàng)意設(shè)計(jì)的基本能力。
4.結(jié)束語(yǔ)
隨著大數(shù)據(jù)、云計(jì)算等IT技術(shù)的廣泛應(yīng)用,Python的應(yīng)用領(lǐng)域和范圍都將會(huì)不斷擴(kuò)大,相信開設(shè)Python課程的職業(yè)院校會(huì)越來越多。Python課程的教學(xué)體系與一般高級(jí)程序設(shè)計(jì)語(yǔ)言教學(xué)體系既具有共性,又有其自身的特點(diǎn)。如何發(fā)揮語(yǔ)言自身的優(yōu)勢(shì),還需要結(jié)合人才培養(yǎng)的目標(biāo)和學(xué)生的學(xué)情不斷進(jìn)行教學(xué)實(shí)踐,不管采用什么樣的教學(xué)體系,培養(yǎng)學(xué)生的計(jì)算機(jī)的軟件編程應(yīng)用能力的目標(biāo)是一致的[6]。比較理想的方式是能夠達(dá)到Python語(yǔ)言基礎(chǔ)和Python生態(tài)圈的融合,讓學(xué)生既能掌握基本的高級(jí)語(yǔ)言程序設(shè)計(jì)方法和技能,又能選擇合適的方法去解決實(shí)際問題。將計(jì)算機(jī)編程與行業(yè)領(lǐng)域結(jié)合起來,達(dá)到所學(xué)即可用,也是高等職業(yè)學(xué)校的教學(xué)目標(biāo)。
參考文獻(xiàn):
[1]Python(計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言).https://www.Python.org.
[2]IEEE發(fā)布2017年編程語(yǔ)言排行榜:Python高居首位.http://36kr.com/p/5084329.html.
[3]教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會(huì).大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求[J].北京: 高等教育出版社,2017.
[4]嵩天,禮欣,黃天羽. Python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)[M].2版. 北京: 高等教育出版社,2017.
[5]嵩天,黃天羽,禮欣.面向計(jì)算生態(tài)的Python語(yǔ)言入門課程教學(xué)方案[J].計(jì)算機(jī)教育,2017(8):7-12.
[6]劉衛(wèi)國(guó),奎曉燕. Python 語(yǔ)言程序設(shè)計(jì)教學(xué)體系建設(shè)[J].計(jì)算機(jī)教育,2017(08):13-17.
作者簡(jiǎn)介:
趙海波,男,高級(jí)工程師,研究方向?yàn)檐浖夹g(shù)、大數(shù)據(jù)。