林達(dá)春
(廣東省佛山市順德區(qū)杏壇梁銶琚初級(jí)中學(xué),廣東佛山 528325)
在信息飛速傳播和發(fā)展的今天,“人工智能+”逐步取代“互聯(lián)網(wǎng)+”滲透到社會(huì)的各行各業(yè),計(jì)算思維被視為21世紀(jì)兒童的一項(xiàng)關(guān)鍵技能。近年來(lái),世界各國(guó)相繼將“計(jì)算思維”(Computational Thinking,簡(jiǎn)稱CT)培養(yǎng)納入到信息技術(shù)及其它課程教學(xué)框架[1]?!坝?jì)算思維”作為信息技術(shù)學(xué)科四大核心素養(yǎng)之一,教育工作者更加重視它所激發(fā)與促進(jìn)的創(chuàng)造力、合作精神與問(wèn)題解決能力。卡法爾等人(Kafai et al.,2014)呼吁教學(xué)重點(diǎn)轉(zhuǎn)向計(jì)算參與(Computational Participation),強(qiáng)調(diào)需要引導(dǎo)學(xué)生開發(fā)有用的應(yīng)用程序、構(gòu)建良好的社區(qū),關(guān)注學(xué)生喜歡的重用(Remix)行為,以及各類實(shí)體化(Tangibles)的電子制品[2]。編程無(wú)疑是培養(yǎng)學(xué)生的問(wèn)題解決能力、發(fā)展思維能力有力的切入點(diǎn)。為此,本文探索了創(chuàng)新編程思維的培養(yǎng)模式和實(shí)踐,來(lái)提升學(xué)生的思維能力,培養(yǎng)學(xué)生的計(jì)算思維。
2019年3月,教育部新印發(fā)的《2019年教育信息化和網(wǎng)絡(luò)安全工作要點(diǎn)》中指出,計(jì)劃對(duì)2萬(wàn)名義務(wù)教育階段學(xué)生進(jìn)行信息素養(yǎng)評(píng)測(cè),推動(dòng)在中小學(xué)階段設(shè)置人工智能(AI)相關(guān)課程[3],逐步推廣編程教育。這個(gè)工作要點(diǎn)把編程教育上升到國(guó)家政策層面,這也從側(cè)面反映出,編程教育將是未來(lái)教育的一個(gè)重要發(fā)展方向。
編程教育已在全球人才戰(zhàn)略上占領(lǐng)一席之地[4],國(guó)家也如此重視編程教育,但仍然有很多家長(zhǎng)認(rèn)為編程就是坐在計(jì)算機(jī)前敲打代碼,孩子很有可能將來(lái)不是從事編程或者與編程相關(guān)的工作,學(xué)習(xí)編程的用處不大。這其實(shí)是對(duì)編程的誤解,編程教育核心不是傳授技能,而是培養(yǎng)思維方式[5]。編程并不僅僅教授孩子計(jì)算機(jī)語(yǔ)言,而是通過(guò)賦予孩子在動(dòng)手設(shè)計(jì)代碼的過(guò)程中掌握數(shù)字時(shí)代里解決問(wèn)題和創(chuàng)新的能力[6]。如果把編程說(shuō)成是一種工具,那中小學(xué)編程就是培養(yǎng)學(xué)生創(chuàng)造性思維的工具,因?yàn)榫幊痰膶W(xué)習(xí)內(nèi)容幾乎涵蓋所有的教育目標(biāo),例如:邏輯思維能力、抽象思維能力、專注力、記憶力、問(wèn)題解決能力、創(chuàng)造力等。現(xiàn)在中小學(xué)編程的學(xué)習(xí)方式很多,都注重如何培養(yǎng)學(xué)生編程思維,并且隨著圖形化編程的引入,學(xué)生學(xué)習(xí)編程的成本大幅下降,編程學(xué)習(xí)也一改以往枯燥呆板的印象,學(xué)習(xí)方式趨于趣味化。
編程思維不僅僅包含解決問(wèn)題的技能,更包含了一種想象的方法,從具象到抽象。對(duì)于新接觸編程的孩子來(lái)說(shuō),起初總要先經(jīng)歷一段從無(wú)到有的過(guò)程,而編程教育獨(dú)特性在于其如同動(dòng)手搭積木一般的創(chuàng)造性過(guò)程,需要對(duì)藍(lán)圖、流程的概念化理解,考驗(yàn)學(xué)生將大程序分解成中小模塊的能力,以此從小培養(yǎng)孩子的邏輯和設(shè)計(jì)思維[7]。開展編程教育,呈現(xiàn)編程學(xué)習(xí)方式的多樣性和趣味性,解決學(xué)習(xí)和生活遇到的問(wèn)題的實(shí)例,就是同時(shí)擁有幫助孩子深度學(xué)習(xí)其他學(xué)科和解決問(wèn)題的能力,用創(chuàng)造程序的邏輯方式解決實(shí)際問(wèn)題,持續(xù)學(xué)習(xí)新的技術(shù)、語(yǔ)言和其他科學(xué)學(xué)科[8]。由此,筆者采用科學(xué)研究的基本邏輯模式“分析問(wèn)題——提出問(wèn)題——解決問(wèn)題——持續(xù)改進(jìn)”,來(lái)培養(yǎng)孩子的創(chuàng)新編程思維能力(如下圖)。
創(chuàng)新編程思維培養(yǎng)模式
筆者以指導(dǎo)學(xué)生參加超級(jí)軌跡賽為例,闡明如何采用創(chuàng)新編程思維培養(yǎng)模式來(lái)培養(yǎng)學(xué)生的編程思維。
在第二十屆全國(guó)中小學(xué)電腦制作活動(dòng)中,超級(jí)軌跡賽是集競(jìng)速和做任務(wù)于一體的機(jī)器人比賽項(xiàng)目,在隨機(jī)場(chǎng)地上擺放著若干任務(wù),機(jī)器人必須按照?qǐng)龅氐木€路,順序完成在場(chǎng)地上的任務(wù)。機(jī)器人巡線過(guò)程和完成任務(wù)的過(guò)程都必須有選手根據(jù)現(xiàn)場(chǎng)情況完成自主編程,并且要保證成功率,還要保證速度足夠快,所以比賽要求選手具備超強(qiáng)編程能力和現(xiàn)場(chǎng)應(yīng)變能力。超級(jí)軌跡賽正好契合了國(guó)家推廣編程教育的大方向。
在央館發(fā)布比賽規(guī)則后,筆者及時(shí)跟學(xué)生一起研究,把超級(jí)軌跡賽的規(guī)則劃分為若干個(gè)小任務(wù),并歸類。依據(jù)2018年的比賽規(guī)則,任務(wù)根據(jù)難易程度來(lái)劃分,分為低難度、中難度和高難度。其中“國(guó)家交流”“海洋探測(cè)”和“驛站”,這類任務(wù)僅需要播放國(guó)家名字、在屏幕顯示相應(yīng)顏色和更換裝備即可,屬于難度較低的任務(wù)。對(duì)于“走出國(guó)門”“開辟道路”“修建鐵路”“互惠互利”,這些任務(wù)都需要機(jī)器人做一些較為精細(xì)的動(dòng)作,但不需要輔助結(jié)構(gòu)即可完成,可歸類為中難度任務(wù)。而“貨品交易”這類任務(wù),則需要機(jī)器人攜帶貨品從起始位置出發(fā),順利將貨品放到易貨區(qū)的天平上,并使天平往貨品一端傾斜(以秤托的高度判定向哪一方傾斜)。任務(wù)過(guò)程中道具被破壞或者被撞倒,任務(wù)將判定失敗。完成此任務(wù)的關(guān)鍵在于設(shè)計(jì)拼裝出一個(gè)輔助機(jī)械結(jié)構(gòu),用于把“貨品”穩(wěn)妥的放進(jìn)天平托盤里,為高難度任務(wù)。這樣歸類后任務(wù)就明朗了:低難度任務(wù)直接用控制器完成任務(wù),中難度任務(wù)在車頭安裝一條橫桿,增大推動(dòng)的接觸范圍,高難度任務(wù)需要搭建輔助結(jié)構(gòu)。在不考慮高難度任務(wù)的情況下,通過(guò)化整為零,分析各個(gè)任務(wù),然后再通盤考慮,化零為整,設(shè)計(jì)出一個(gè)小車搭建的整體方案
超級(jí)軌跡競(jìng)賽規(guī)則發(fā)布后,通常廠家會(huì)接著發(fā)布參考方案,參考方案中完成高難度任務(wù)“貨品交易”是使用類似拋石機(jī)一樣的結(jié)構(gòu),但筆者發(fā)現(xiàn)這種結(jié)構(gòu)并不穩(wěn)定,砝碼容易在拋過(guò)天平的時(shí)候掉下來(lái),因而需要對(duì)參考方案進(jìn)行修改,甚至要重新設(shè)計(jì)結(jié)構(gòu)。在方案改善過(guò)程中,教師和學(xué)生一起研究,模擬手動(dòng)放砝碼進(jìn)天平,發(fā)現(xiàn)只有垂直放砝碼是最穩(wěn)定的。因此必須要設(shè)計(jì)能夠垂直放砝碼的機(jī)械結(jié)構(gòu),但由于車身限定了出發(fā)時(shí)的寬度,出發(fā)后可以自由伸展。競(jìng)賽團(tuán)隊(duì)想到了設(shè)計(jì)一個(gè)能夠伸展的機(jī)械結(jié)構(gòu),把砝碼穩(wěn)妥放到天平托盤上,從而擺脫被廠家“拋石機(jī)”思路牽絆的困境。這種方案在當(dāng)年是最先進(jìn)的方案之一。
通過(guò)一個(gè)任務(wù),嘗試多種解決方法并不斷改善,最終獲得最優(yōu)的解決方法的過(guò)程非常難得。在日常編程中,這種最優(yōu)化的思維對(duì)于孩子用于機(jī)器人項(xiàng)目問(wèn)題解決上更加可貴。所以筆者時(shí)常鼓勵(lì)學(xué)生跳出局限,多渠道多角度去尋求問(wèn)題解決的方法,逐漸培養(yǎng)孩子的最優(yōu)化編程思維。
按照預(yù)設(shè)的方案,學(xué)生是可以完成編程的,但學(xué)生未必能發(fā)揮如意;比賽中的失誤也可能導(dǎo)致任務(wù)失敗。那怎么才能避免意外情況發(fā)生呢?筆者認(rèn)為需要設(shè)計(jì)容錯(cuò)機(jī)制,因而平時(shí)學(xué)生在學(xué)習(xí)機(jī)器人的時(shí)候必須要有個(gè)容錯(cuò)的理念。例如在“海洋探測(cè)”任務(wù)中,檢測(cè)完海洋資源顏色后機(jī)器人需要重新回到線上,繼續(xù)后續(xù)任務(wù)。學(xué)生經(jīng)過(guò)多次訓(xùn)練,發(fā)現(xiàn)方案不穩(wěn)定,在機(jī)器人走過(guò)海洋后,有時(shí)在線的左側(cè),有時(shí)在線的右側(cè),有時(shí)僅僅偏離一點(diǎn)點(diǎn),有時(shí)偏離得比較多,這種不確定性極大打擊了學(xué)生的自信。針對(duì)這種情況,容錯(cuò)機(jī)制可以依據(jù)如下的思路:不管機(jī)器人偏哪邊和偏多少,都在回線前先往左轉(zhuǎn)一定的角度,這個(gè)角度足以保證機(jī)器人每次都是在線左邊,這樣可以避免出現(xiàn)變量,然后再用轉(zhuǎn)彎,讓機(jī)器人返回到線上。這個(gè)思維就是容錯(cuò)思維,把機(jī)器人出現(xiàn)不確定的變量,變成一個(gè)確定的定量,只需要考慮這個(gè)定量如何處理即可。
沒有完美的程序,也沒有完美的方案,所以在訓(xùn)練中,必須教會(huì)學(xué)生要學(xué)會(huì)細(xì)心觀察,發(fā)現(xiàn)漏洞,及時(shí)補(bǔ)漏洞,這也是編程思維中的重要思維之一。
在設(shè)計(jì)巡線小車結(jié)構(gòu)時(shí),考慮到小車前面的滾輪如果使用萬(wàn)向輪,轉(zhuǎn)彎很難控制,容易轉(zhuǎn)得太快,一下飛出線外,學(xué)生經(jīng)過(guò)對(duì)比后,覺得使用平面滾輪效果更佳。訓(xùn)練的前期,使用平面滾輪巡線沒發(fā)現(xiàn)有任何問(wèn)題,偶然一次訓(xùn)練,小車轉(zhuǎn)彎時(shí)被一個(gè)凸起的泥沙卡住,導(dǎo)致平面輪設(shè)計(jì)的小車無(wú)法轉(zhuǎn)過(guò)去。經(jīng)過(guò)分析,由于結(jié)構(gòu)的漏洞,使用平面輪當(dāng)萬(wàn)向輪確實(shí)有可能出現(xiàn)這種情況,雖然幾率很小,但不能忽視這個(gè)影響,那怎么辦?由于已經(jīng)接近區(qū)賽的情況下,并不合適大改外部結(jié)構(gòu),同時(shí)把平面滾輪換成萬(wàn)向輪也難以克服轉(zhuǎn)彎脫線的困難。既然此時(shí)硬件不適宜大改,只能從程序入手。考慮到孩子已經(jīng)熟悉了原來(lái)的程序,程序也不能大改,經(jīng)過(guò)不斷嘗試,筆者最終找到一個(gè)較好的解決方法:在原來(lái)轉(zhuǎn)彎的程序加入一個(gè)變量,機(jī)器人轉(zhuǎn)彎的過(guò)程中,隨著時(shí)間的推移,變量會(huì)被累加到轉(zhuǎn)彎的速度里面。當(dāng)機(jī)器人轉(zhuǎn)彎被卡住的時(shí)候,機(jī)器人就會(huì)越轉(zhuǎn)越快,從而跨過(guò)卡住的地方,實(shí)現(xiàn)繼續(xù)轉(zhuǎn)彎的動(dòng)作。這就是學(xué)生非常難忘的經(jīng)歷,從一個(gè)幾率很小的事故中找出漏洞,分析原因,并解決問(wèn)題, 培養(yǎng)了學(xué)生嚴(yán)謹(jǐn)?shù)乃季S。
近幾年,筆者在機(jī)器人編程教育中應(yīng)用創(chuàng)新編程思維培養(yǎng)模式,不斷優(yōu)化,培養(yǎng)人才方面獲得了一定的成績(jī)(如下表),可見遵循這種創(chuàng)新編程思維培養(yǎng)模式,巧妙結(jié)合個(gè)性化教與學(xué)方式,制定切實(shí)可行的教學(xué)方案,是有成效的。學(xué)生在這個(gè)學(xué)習(xí)過(guò)程中逐漸形成了整體框架分析思維,提升了問(wèn)題解決能力,培養(yǎng)了整體規(guī)劃能力。
近幾年輔導(dǎo)學(xué)生機(jī)器人參賽成績(jī)
這種模式在大班編程普及教學(xué)實(shí)踐中同樣得到良好的效果。學(xué)生通過(guò)編程的學(xué)習(xí),信息技術(shù)素養(yǎng)和能力得到提升,在分享他人創(chuàng)新思維過(guò)程中學(xué)會(huì)思辨,對(duì)比自己的思路和方法,獲得更多的啟示;在相互評(píng)價(jià)的過(guò)程中深度思考,提升了自己的溝通能力,獲得自信心。與以往傳統(tǒng)的方式對(duì)比,創(chuàng)新思維培養(yǎng)模式下更能激發(fā)學(xué)生的動(dòng)手操作欲望,期末考核也總體比傳統(tǒng)方式考核形式更加多樣化和個(gè)性化,學(xué)生的想法更多,驚喜更多。尤其是參與了機(jī)器人訓(xùn)練和比賽的孩子,在學(xué)習(xí)方法上趨向多樣化,思維更靈活,甚至在數(shù)理化學(xué)習(xí)上更是進(jìn)步明顯。
基于機(jī)器人項(xiàng)目的問(wèn)題解決的計(jì)算思維培養(yǎng)模式,以問(wèn)題為導(dǎo)向,將計(jì)算思維的核心要素融入到解決問(wèn)題、構(gòu)建應(yīng)用的具體編程實(shí)踐教學(xué)環(huán)節(jié)當(dāng)中。在創(chuàng)設(shè)應(yīng)用的過(guò)程中,學(xué)生之間相互協(xié)作、交流,改變了以往計(jì)算思維教育中片面地強(qiáng)調(diào)編程或算法學(xué)習(xí)的狀況。
所以編程并不是讓學(xué)生成為程序員,而是讓學(xué)生學(xué)會(huì)編程思維,來(lái)面對(duì)復(fù)雜的問(wèn)題,能夠分解成一個(gè)個(gè)小問(wèn)題,再找到問(wèn)題的關(guān)鍵和問(wèn)題之間存在的關(guān)聯(lián),從而想辦法將問(wèn)題逐一解決,這就是編程教給學(xué)生最重要的能力。所以,作為指導(dǎo)教師,筆者認(rèn)為編程教育的本質(zhì)不在于讓學(xué)生學(xué)到的編程知識(shí)有多少,而是學(xué)習(xí)編程的邏輯思維,在比賽之外,更能用這種思維解決已知甚至未知的問(wèn)題。