趙福生 劉力
摘要:在中小學(xué)信息技術(shù)課程標(biāo)準(zhǔn)中,都有“算法和編程”的模塊,它既是信息技術(shù)的核心,也是難點(diǎn),信息技術(shù)教師應(yīng)該把這部分放在培養(yǎng)學(xué)生興趣的位置,既不是走走形式,也不是培養(yǎng)他們成為程序員,我們教孩子學(xué)習(xí)編程的目的不是鼓勵(lì)孩子學(xué)習(xí)計(jì)算機(jī)專業(yè),而是借助這樣一種工具鍛煉孩子的邏輯思維,增強(qiáng)信息技術(shù)意識(shí),培養(yǎng)他們處理數(shù)據(jù)的能力。那么選擇什么樣的語言比較合適成為話題,很多省市選擇了Python語言,該文結(jié)合Pythton的功能分析它的優(yōu)勢有哪些,中小學(xué)教師如何發(fā)揮它的優(yōu)勢展開教學(xué),如何克服初學(xué)者學(xué)習(xí)編程的障礙,突破語言難點(diǎn),增加學(xué)生興趣,達(dá)到課程標(biāo)準(zhǔn)。
關(guān)鍵詞:Python;課程標(biāo)準(zhǔn);信息素養(yǎng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)17-0190-02
最近Python語言已經(jīng)進(jìn)入山東省小學(xué)教材,浙江省信息技術(shù)教材也將啟用Python,這意味著可能成為高考內(nèi)容之一,北京市也確定把Python編程基礎(chǔ)納入信息技術(shù)課程和高考的內(nèi)容體系。那么Python成為很受歡迎的語言,它的獨(dú)特優(yōu)勢在哪兒,中小學(xué)生能夠容易接受嗎,它能培養(yǎng)學(xué)生的編程思維或提高數(shù)據(jù)處理的能力嗎?
解答上述問題,首先要明確我們的目標(biāo)是培養(yǎng)中小學(xué)生的信息素養(yǎng),簡單點(diǎn)兒說是數(shù)據(jù)處理能力,進(jìn)而逐步培養(yǎng)計(jì)算思維(信息技術(shù)課程的核心素養(yǎng)之一),而不是培養(yǎng)所有學(xué)生都成為程序員,或是以后選擇計(jì)算機(jī)專業(yè)。當(dāng)前,編程能力正在與閱讀、寫作、算術(shù)成為學(xué)生從小具備的能力之一,就是說,我們希望找到一種語言,能夠簡單明了、高效直接地表達(dá)算法,越接近自然語言越好,這樣學(xué)生可以將注意力集中在算法本身,盡量少的去思考存儲(chǔ)空間,內(nèi)存等計(jì)算機(jī)系統(tǒng)方面的知識(shí),因?yàn)槟菢訒?huì)有很多課程如《數(shù)據(jù)結(jié)構(gòu)》、《計(jì)算機(jī)系統(tǒng)》需要額外學(xué)習(xí),這顯然不符合實(shí)際。還有我們希望它能有廣泛的用途,比較長的生命周期,于是Python成為了首選,現(xiàn)在筆者結(jié)合中小學(xué)生初學(xué)編程的需求,課程標(biāo)準(zhǔn)的要求,給出如何利用Python的優(yōu)勢在教學(xué)中培養(yǎng)學(xué)生的信息素養(yǎng)、計(jì)算思維等一些建議。
在義務(wù)教育階段,尚沒有國家正式頒布的《信息技術(shù)課程標(biāo)準(zhǔn)》,可以參考中國教育技術(shù)協(xié)會(huì)信息技術(shù)教育專業(yè)委員會(huì)2012年修訂的《基礎(chǔ)教育信息技術(shù)課程標(biāo)準(zhǔn)》1,在小學(xué)部分的課程模塊“結(jié)構(gòu)與算法”里有3點(diǎn)要求:(1) 結(jié)合生活中的具體問題,能夠用自然語言及手工畫流程圖的方式描寫解決問題的過程;能讀懂流程圖;與使用自然語言相比較,體驗(yàn)使用流程圖方式的優(yōu)點(diǎn);(2) 熟悉一種積木式程序設(shè)計(jì)工具的圖形化編程環(huán)境;(3) 結(jié)合實(shí)例使用積木式程序設(shè)計(jì)工具,體驗(yàn)程序設(shè)計(jì)作為一種特殊的信息加工處理方式的特點(diǎn)和優(yōu)勢。其中第(2)點(diǎn)用Scratch軟件即可實(shí)現(xiàn),第(3)點(diǎn)教師們普遍感到無從下手,因?yàn)闆]有一種足夠“弱類型”的語言,讓學(xué)生不用過多關(guān)注語言本身,而是作為一種信息加工處理方式去體驗(yàn)程序的必要性和優(yōu)勢?,F(xiàn)在Python語言可以解決這個(gè)問題,它的特點(diǎn)就是“弱類型”,我們用對(duì)比的方式進(jìn)行說明。眾所周知的C語言就是強(qiáng)類型,要處理字符型的數(shù)據(jù),一定要聲明字符數(shù)組或字符串,并要包含字符串頭文件,#include
在初中階段,《基礎(chǔ)教育信息技術(shù)課程標(biāo)準(zhǔn)》里提出了“了解高級(jí)程序設(shè)計(jì)語言的概念,熟悉一種可視化程序開發(fā)工具的編程環(huán)境,借助實(shí)例理解控件、對(duì)象、屬性等基本概念,掌握程序的編輯、編譯、運(yùn)行的方法”等11點(diǎn)要求。Python語言即是實(shí)現(xiàn)這些標(biāo)準(zhǔn)是最佳選擇,舉一個(gè)“面向?qū)ο蟆钡睦?:
這是一個(gè)“找完全平均數(shù)”的小程序,第1行是導(dǎo)入數(shù)學(xué)庫,意味著要用到數(shù)學(xué)相關(guān)的運(yùn)算,第3行用對(duì)象的引用符“.”,所以稱它結(jié)合了面向?qū)ο笳Z言的優(yōu)點(diǎn)。
筆者建議義務(wù)教育階段的教師在技術(shù)上不用講解太深,只需用一本“Python語言基礎(chǔ)教程”方面的教材,根據(jù)課程標(biāo)準(zhǔn),結(jié)合學(xué)生特點(diǎn),重點(diǎn)是演示程序的工作方式,介紹算法的原理,教學(xué)中多列舉一些數(shù)字計(jì)算的例子,因?yàn)樾W(xué)高年級(jí)和初中生已經(jīng)具備了一定的數(shù)學(xué)基礎(chǔ),快速的數(shù)字計(jì)算是人類的弱項(xiàng),恰好是計(jì)算機(jī)和程序的強(qiáng)項(xiàng),先讓學(xué)生們用紙筆計(jì)算,應(yīng)用建構(gòu)主義理論,再拿出一段程序去演示,對(duì)比的教學(xué)方式一定會(huì)讓學(xué)生們被計(jì)算機(jī)和程序的神奇所吸引,產(chǎn)生極大的興趣。Python在語言規(guī)則方面障礙低,功能強(qiáng),能否利用好它的特點(diǎn),不拘泥于某種語言,是教師培養(yǎng)學(xué)生信息素養(yǎng)的最佳途徑。
在高中階段,2017年國家正式頒布了《普通高中信息技術(shù)課程標(biāo)準(zhǔn)》4,在課程結(jié)構(gòu)設(shè)計(jì)上,加入了當(dāng)前熱門的模塊四-人工智能,這部分對(duì)于一般語言來說切入難度較大,但是Python的“類庫”十分豐富,包含了人工智能部分,“類庫”即功能模塊,越豐富,完成的功能越多,效率越高,被形象地稱作“內(nèi)置電池”,而且還有大量的第三方庫,可拿過來直接使用。高中階段的教師對(duì)“選擇性必修”模塊應(yīng)根據(jù)學(xué)生的接受能力主要從質(zhì)性角度去講解,從性質(zhì)、特點(diǎn)、功能的介紹調(diào)動(dòng)學(xué)生的興趣,如“數(shù)據(jù)結(jié)構(gòu)”的“樹”型結(jié)構(gòu),它的主要應(yīng)用是“棋類”搜索,并啟發(fā)學(xué)生是否還有其他用途,“圖”型結(jié)構(gòu)主要用于“交通類”程序等等,如果把功夫用在內(nèi)部細(xì)節(jié)上,課時(shí)肯定不夠用,與“課標(biāo)組”的初衷背道而馳,還扼殺了學(xué)生對(duì)課程的興趣。
Python語言還要其他很多優(yōu)點(diǎn):不考慮內(nèi)存,動(dòng)態(tài)加載,膠水語言等等5,就像其他語言一樣,它也有缺點(diǎn),但這不影響Python的普及,每種語言都有它自己的用途。還是那句話,我們教孩子寫程序的目的不是要培養(yǎng)“程序猿”,而是幫助孩子表達(dá)自我和組織觀點(diǎn)的新途徑,鍛煉孩子的邏輯思維,培養(yǎng)孩子的科學(xué)素養(yǎng)。
參考文獻(xiàn):
[1] 基礎(chǔ)教育信息技術(shù)課程標(biāo)準(zhǔn)(2012版) [EB/OL].[2012-05].https://wenku.baidu.com/view/ 51e9513331b765ce04081447.
[2] David Beazley & Brian Jones. Python Cookbook[M].北京:人民郵電出版社,2015:16-17.
[3] Mark Summerfield. Python編程實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,26-29.
[4] 普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017版)[EB/OL].[2017].https://wenku.baidu.com/view/ 5681a5752379168884868762c aaedd3383c4b594.html.
[5] 你都用Python做什么?[EB/OL].[2015-10-28]. https://www.zhihu.com/question/.