吳勇
隨著科技的進(jìn)步和信息技術(shù)的發(fā)展,大數(shù)據(jù)、人工智能(AR)和虛擬現(xiàn)實(shí)(VR)的理論和技術(shù)日益成熟,應(yīng)用領(lǐng)域不斷擴(kuò)大,逐漸滲透到人類社會(huì)的各個(gè)領(lǐng)域,使用計(jì)算機(jī)解決問題并幫助我們更高效的工作、更舒適的生活成為現(xiàn)代社會(huì)人類必備的一項(xiàng)技能。國務(wù)院在2017年7月印發(fā)的《新一代人工智能發(fā)展規(guī)劃》中明確指出“人工智能成為國際競(jìng)爭(zhēng)的新焦點(diǎn),應(yīng)逐步開展全民智能教育項(xiàng)目,在中小學(xué)階段設(shè)置人工智能相關(guān)課程、逐步推廣編程教育。”教育部于2018年4月發(fā)布的《教育信息化2.0行動(dòng)計(jì)劃》也把提升教師和學(xué)生的信息素養(yǎng)作為重要目標(biāo)。通過開展編程教育提升學(xué)生的計(jì)算思維、創(chuàng)新思維,已經(jīng)上升到國家戰(zhàn)略的層面。
一、國內(nèi)外編程教育現(xiàn)狀
目前,在美國、英國、日本等發(fā)達(dá)國家都已經(jīng)將程序設(shè)計(jì)課程納入到中小學(xué)的教學(xué)范圍。美國前總統(tǒng)奧巴馬斥巨資推動(dòng)編程教育,并發(fā)起“編程一小時(shí)”運(yùn)動(dòng),旨在讓全美小學(xué)生開始學(xué)習(xí)編程,更早地開發(fā)計(jì)算思維。美國北喬治亞大學(xué)計(jì)算機(jī)科學(xué)系終身教授Bryson Payne博士在他的《Teach your kids to code》一書中指出:“計(jì)算機(jī)編程是每個(gè)孩子都應(yīng)該學(xué)習(xí)的一項(xiàng)重要技能,理解如何編寫代碼,可以將計(jì)算機(jī)的能力控制在你的指尖。”
近幾年,國內(nèi)關(guān)于程序設(shè)計(jì)對(duì)學(xué)生計(jì)算思維、創(chuàng)新思維培養(yǎng)的研究也愈加豐富,大部分中學(xué)的信息技術(shù)課程中都有程序設(shè)計(jì)的教學(xué)模塊。山東省最新出版的小學(xué)信息技術(shù)教材,在六年級(jí)課本中加入了Python語言相關(guān)內(nèi)容,程序設(shè)計(jì)開始向小學(xué)高年級(jí)進(jìn)軍。人工智能和機(jī)器學(xué)習(xí)領(lǐng)域國際上最權(quán)威的學(xué)者之一吳恩達(dá)提出:“寫代碼就跟識(shí)字一樣,將來人機(jī)交流越來越重要,人人都該學(xué)會(huì)編程,應(yīng)用計(jì)算思維?!?/p>
二、計(jì)算思維概述
計(jì)算思維的概念是隨著計(jì)算機(jī)科學(xué)發(fā)展到一定水平而變得清晰起來的,具有顯著的時(shí)代特征,它區(qū)別于以數(shù)學(xué)為代表的邏輯思維和以物理為代表的實(shí)證思維,主要體現(xiàn)了一種抽象交互關(guān)系和形式化執(zhí)行的思維模式。2006年,時(shí)任美國卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)系主任的周以真教授提出了計(jì)算思維(Computational Thinking)的概念,他把計(jì)算思維概括為:運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。計(jì)算思維以設(shè)計(jì)和構(gòu)造為特征,本質(zhì)是抽象和自動(dòng)化。
簡(jiǎn)單地說,計(jì)算思維可以理解為利用計(jì)算機(jī)求解問題的思維方式。例如:計(jì)算1到100的自然數(shù)的和,如果運(yùn)用邏輯思維的方式求解,可以利用等差數(shù)列求和公式求得結(jié)果。如果運(yùn)用計(jì)算思維求解,則可以把問題抽象為1到100的自然數(shù)的累加,通過設(shè)計(jì)程序的循環(huán)結(jié)構(gòu)和求和語句可以自動(dòng)化地執(zhí)行累加過程,很容易地就求得了結(jié)果。在程序設(shè)計(jì)的范疇,計(jì)算思維主要反映在理解問題的計(jì)算特性,并將計(jì)算特性抽象為計(jì)算問題,進(jìn)而通過程序設(shè)計(jì)語言實(shí)現(xiàn)問題的自動(dòng)求解等方面。
三、Python語言與初中生編程教育
大數(shù)據(jù)和人工智能時(shí)代的來臨使程序設(shè)計(jì)和計(jì)算思維成為21世紀(jì)最具競(jìng)爭(zhēng)力的技能之一。初中階段對(duì)學(xué)生進(jìn)行編程啟蒙并通過程序設(shè)計(jì)教學(xué)訓(xùn)練學(xué)生的計(jì)算思維,既符合學(xué)生的身心發(fā)展規(guī)律,又符合時(shí)代的發(fā)展需求。提及程序設(shè)計(jì)就必然與目前應(yīng)用越來越廣泛的Python語言聯(lián)系在一起。Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語言。
Python語法簡(jiǎn)潔清晰、通俗易懂、簡(jiǎn)單易學(xué),有助于激發(fā)學(xué)生對(duì)計(jì)算機(jī)編程的興趣,非常適合對(duì)初中生進(jìn)行程序設(shè)計(jì)和計(jì)算思維的啟蒙教育,在國外甚至有《Baby Python:Basic Code for Programming》這類的幼兒Python編程教程。為了提高學(xué)生的信息素養(yǎng)進(jìn)而提高其未來社會(huì)競(jìng)爭(zhēng)力,我們有必要在初中階段通過Python程序設(shè)計(jì)課程對(duì)學(xué)生的計(jì)算思維進(jìn)行培育,通過Python程序設(shè)計(jì)教學(xué)培養(yǎng)學(xué)生計(jì)算思維和創(chuàng)新思維的能力,以提高學(xué)生主動(dòng)運(yùn)用計(jì)算思維分析問題、解決問題的信息素養(yǎng),為學(xué)生進(jìn)一步接受更高層次的專業(yè)學(xué)習(xí)筑牢計(jì)算思維和創(chuàng)新思維的根基,從而為培養(yǎng)符合時(shí)代發(fā)展需要的復(fù)合型人工智能人才打下良好的基礎(chǔ)。
四、實(shí)施策略初探
按照信息技術(shù)課程標(biāo)準(zhǔn)的要求和新課程改革的需要,充分利用初中信息技術(shù)課程中程序設(shè)計(jì)教學(xué)模塊,在初中三個(gè)年級(jí)分別開展有針對(duì)性的Python程序設(shè)計(jì)教學(xué),使學(xué)生掌握Python開發(fā)環(huán)境搭建,理解Python程序設(shè)計(jì)語法結(jié)構(gòu)、數(shù)據(jù)類型,熟練使用運(yùn)算符與表達(dá)式、內(nèi)置函數(shù)和常用標(biāo)準(zhǔn)庫,初步了解面向?qū)ο蟮某绦蛟O(shè)計(jì)、常用算法、大數(shù)據(jù)處理和簡(jiǎn)單的游戲開發(fā)等內(nèi)容。根據(jù)不同年級(jí)的學(xué)生學(xué)情創(chuàng)設(shè)情景、預(yù)設(shè)問題,讓學(xué)生用編程設(shè)計(jì)解決方案,并跟蹤學(xué)生學(xué)習(xí)效果,通過課后反思、師生評(píng)價(jià)、對(duì)比分析驗(yàn)證Python程序設(shè)計(jì)對(duì)初中生計(jì)算思維培育的實(shí)際作用。具體實(shí)施過程中主要采取以下策略:
1.研究國內(nèi)外有關(guān)程序設(shè)計(jì)啟蒙和計(jì)算思維培育的相關(guān)理論和實(shí)踐經(jīng)驗(yàn)。收集整理國內(nèi)外有關(guān)Python程序設(shè)計(jì)啟蒙和學(xué)生計(jì)算思維培育的熱點(diǎn)案例和成功經(jīng)驗(yàn)。
2.研究《新一代人工智能發(fā)展規(guī)劃》和《教育信息化2.0行動(dòng)計(jì)劃》中對(duì)學(xué)生智能教育、信息素養(yǎng)教育的要求,研究學(xué)生學(xué)情,制定合理的初中生計(jì)算思維培育目標(biāo)。
3.根據(jù)初中信息技術(shù)課程標(biāo)準(zhǔn)分別對(duì)初中三個(gè)年級(jí)制定有針對(duì)性的Python編程教學(xué)目標(biāo),并參與Python程序設(shè)計(jì)集體備課,與信息技術(shù)學(xué)科教師共同開展Python編程教學(xué)設(shè)計(jì)。
4.持續(xù)跟蹤Python程序設(shè)計(jì)課堂教學(xué),根據(jù)教學(xué)效果和反饋進(jìn)一步修改完善教學(xué)設(shè)計(jì),調(diào)查學(xué)生的學(xué)習(xí)效果和認(rèn)知程度,了解學(xué)生的學(xué)習(xí)進(jìn)展,探索發(fā)現(xiàn)初中生計(jì)算思維的認(rèn)知規(guī)律。
5.結(jié)合生活中的實(shí)際問題,預(yù)設(shè)情景,考查學(xué)生運(yùn)用計(jì)算思維發(fā)現(xiàn)問題、分析問題、解決問題的能力,檢驗(yàn)學(xué)生通過使用Python語言編程解決實(shí)際問題的能力,驗(yàn)證程序設(shè)計(jì)教學(xué)對(duì)其計(jì)算思維培育的效果。
五、Python程序設(shè)計(jì)教學(xué)實(shí)踐
初中階段的Python程序設(shè)計(jì)教學(xué)主要從學(xué)生喜聞樂見的生活中的實(shí)際問題著手,以任務(wù)為驅(qū)動(dòng),以成就激勵(lì)為手段,逐步培養(yǎng)學(xué)生對(duì)編程的興趣,感受程序設(shè)計(jì)的魅力和價(jià)值。以下截取一個(gè)教學(xué)片段來體現(xiàn)通過Python程序設(shè)計(jì)教學(xué)訓(xùn)練學(xué)生計(jì)算思維的方式和方法。文中代碼片段均是Python語言,未考慮縮進(jìn)、層級(jí)關(guān)系和程序完整性。
教師給出一個(gè)問題:請(qǐng)使用Python程序計(jì)算整數(shù)N到整數(shù)N+100之間(不含N+100)所有奇數(shù)的和,整數(shù)N由用戶輸入。
問題給出后,先請(qǐng)學(xué)生歸納并抽象問題的計(jì)算特性。學(xué)生歸納的計(jì)算特性主要有:獲取用戶輸入的N值;判斷N到N+100之間所有整數(shù)的奇偶性;將所有奇數(shù)累加;將累加值輸出。然后請(qǐng)學(xué)生根據(jù)問題的計(jì)算特性抽象出計(jì)算問題,并進(jìn)行編程求解。學(xué)生給出的程序設(shè)計(jì)思路為:設(shè)置和的初始值為零:s=0;遍歷循環(huán)N到N+100的每一個(gè)值:for i in range(N,N+100);判斷是否為奇數(shù):if i%2==1;累加奇數(shù)的值:s+=i。顯然,學(xué)生設(shè)計(jì)的程序可以準(zhǔn)確的求得問題的解。此時(shí),教師會(huì)詢問學(xué)生程序有沒有優(yōu)化的可能?從計(jì)算特性上考慮是否每次循環(huán)都有判斷奇偶性的必要?這時(shí),有的學(xué)生會(huì)恍然大悟:只要判斷出N到N+100之間的第一個(gè)奇數(shù),后一個(gè)奇數(shù)與前一個(gè)奇數(shù)是加2的關(guān)系,這樣就不用每次遍歷都判斷奇偶性了。于是,教師和學(xué)生一起將計(jì)算問題優(yōu)化為:先判斷N的奇偶性,如果N為偶數(shù)則將遍歷的起始值設(shè)為N+1:if N%2==0:N+=1;遍歷時(shí)將步長設(shè)為2,這樣就保證每一個(gè)遍歷的值都為奇數(shù),然后將遍歷的值累加即可求得問題的解:for i in range(N,N+100,2):s+=i。這次程序優(yōu)化讓學(xué)生們興奮異常,大家都感受到了用雙手指揮計(jì)算機(jī)進(jìn)行完美求解的成就感和喜悅感。
這個(gè)問題的求解過程充分體現(xiàn)了計(jì)算思維的抽象和自動(dòng)化本質(zhì),鍛煉了學(xué)生運(yùn)用計(jì)算思維分析問題、解決問題并優(yōu)化問題解決方案的能力。
人工智能和大數(shù)據(jù)的廣泛應(yīng)用使我們的生活變得越來越便捷,效率越來越高,人機(jī)交流的能力也變得越來越重要,計(jì)算思維將成為可以預(yù)見的未來最深層次人機(jī)交流的基礎(chǔ)思維能力。我們應(yīng)該抓住初中階段這一計(jì)算思維培育的黃金期,通過科學(xué)合理的程序設(shè)計(jì)教學(xué),鍛煉學(xué)生的計(jì)算思維能力,提升學(xué)生的信息素養(yǎng),探索培養(yǎng)新時(shí)代“互聯(lián)網(wǎng)+”環(huán)境下國家急需人才的新途徑。
(責(zé)任編輯 ?徐德明)