張漢城
計(jì)算思維是當(dāng)今三大科學(xué)思維之一,在教學(xué)中的運(yùn)用越來(lái)越受到教育單位的重視。雖然早已存在,但其被廣泛認(rèn)同的定義直到2006年3月才被周以真教授提出:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),以及人類(lèi)行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。在編程教學(xué)中重視計(jì)算思維培養(yǎng),可提高學(xué)生分析問(wèn)題和解決問(wèn)題的能力。
Scratch是一款由麻省理工學(xué)院(MIT)設(shè)計(jì)開(kāi)發(fā)的少兒編程工具,筆者結(jié)合Scratch的教學(xué),談?wù)勅绾闻囵B(yǎng)計(jì)算思維中常見(jiàn)的約簡(jiǎn)思維、轉(zhuǎn)化思維和啟發(fā)思維。
一、建構(gòu)模型,培養(yǎng)約簡(jiǎn)思維
計(jì)算思維的目的在于解決問(wèn)題,而解決問(wèn)題的起點(diǎn)在于確定問(wèn)題。在編程教學(xué)中,問(wèn)題的確定往往是通過(guò)建構(gòu)模型的方式實(shí)現(xiàn)的,即把自然語(yǔ)言描述的問(wèn)題變成計(jì)算機(jī)能夠處理的模型。這一過(guò)程具有很強(qiáng)的抽象性,更要求教師注重約簡(jiǎn)思維的滲透,將易于理解的生活情境置于導(dǎo)入環(huán)節(jié),借助學(xué)習(xí)單讓學(xué)生建構(gòu)出問(wèn)題模型。
對(duì)Scratch而言,授課對(duì)象為8~16歲的學(xué)生。根據(jù)此年齡段學(xué)生的認(rèn)知能力特點(diǎn),將程序設(shè)計(jì)的學(xué)習(xí)置于學(xué)生熟悉的生活情境,不但有助于激發(fā)學(xué)生學(xué)習(xí)興趣,而且更易于讓學(xué)生明確學(xué)習(xí)任務(wù),并得到情感、態(tài)度與價(jià)值觀(guān)的升華。如,《玩轉(zhuǎn)賽道小車(chē)》課始,在觀(guān)看世界級(jí)的四驅(qū)車(chē)大賽視頻之后,筆者讓學(xué)生結(jié)合玩四驅(qū)車(chē)的經(jīng)歷,談?wù)勊尿?qū)車(chē)在賽道中行駛的特點(diǎn),了解編程參照對(duì)象運(yùn)動(dòng)特點(diǎn),初步掃清思維障礙;然后,匯總小車(chē)智能行駛必須解決的問(wèn)題,明確學(xué)習(xí)任務(wù),并讓學(xué)生意識(shí)到本課不僅是在學(xué)習(xí)Scratch程序的設(shè)計(jì),還在參與現(xiàn)實(shí)社會(huì)熱點(diǎn)問(wèn)題——智能行駛汽車(chē)的設(shè)計(jì)研究,瞬間使學(xué)生對(duì)問(wèn)題的解決變得更加期待,為學(xué)生約簡(jiǎn)思維的培養(yǎng)營(yíng)造了良好的氛圍。
明確學(xué)習(xí)任務(wù)后,還需要幫助學(xué)生將學(xué)習(xí)任務(wù)細(xì)化成能夠運(yùn)用計(jì)算機(jī)求解的模型。筆者為此設(shè)計(jì)了一種適合兒童約簡(jiǎn)思維訓(xùn)練的學(xué)習(xí)單,將學(xué)習(xí)任務(wù)進(jìn)一步細(xì)化,分析任務(wù)中涉及哪些對(duì)象、每個(gè)對(duì)象包含哪些動(dòng)作效果,進(jìn)而建構(gòu)出計(jì)算機(jī)能夠解決的模型。在動(dòng)作效果分析中,還注重學(xué)生自然語(yǔ)言描述的規(guī)范性訓(xùn)練,強(qiáng)化對(duì)循環(huán)、選擇和順序三種算法控制結(jié)構(gòu)的認(rèn)識(shí)。借此學(xué)習(xí)單,學(xué)生思維逐步理順,需要完成的每步操作更加清晰,約簡(jiǎn)思維自然得到很好的培養(yǎng)。
二、化難為易,培養(yǎng)轉(zhuǎn)化思維
計(jì)算思維的本質(zhì)是抽象和自動(dòng)化。學(xué)生在明白“做什么”之后,還需要讓計(jì)算機(jī)知道“怎么做”。為此,如何把一個(gè)看起來(lái)困難的問(wèn)題重新闡述成一個(gè)我們知道怎樣解決的問(wèn)題,就是轉(zhuǎn)化思維的培養(yǎng)重點(diǎn)。可以通過(guò)聚焦指令、代入角色等方式,將復(fù)雜問(wèn)題各個(gè)擊破,從而使之轉(zhuǎn)化為能夠用計(jì)算機(jī)處理的形式。
編程教學(xué)中,對(duì)新指令塊的學(xué)習(xí)理解屬于教學(xué)重點(diǎn)。如果讓學(xué)生聚焦新指令塊的使用環(huán)境,以提問(wèn)方式逐步引導(dǎo),直至其發(fā)現(xiàn)相關(guān)指令塊,在體驗(yàn)轉(zhuǎn)化的過(guò)程中掌握使用要點(diǎn),就可以讓學(xué)生學(xué)得更深入、理解更透徹。如,小車(chē)在賽道中智能行駛,關(guān)鍵要借助“顏色……碰到顏色……”指令塊實(shí)現(xiàn)判斷。筆者讓學(xué)生關(guān)注賽道背景圖并進(jìn)行思考:①觀(guān)察封閉賽道,以及賽道外側(cè)背景和內(nèi)側(cè)背景的顏色;②判斷小車(chē)需要返回賽道的情況;③找找能讓小車(chē)判斷該返回賽道的指令塊。這樣指引學(xué)生抽絲剝繭般將小車(chē)需要返回賽道前的判斷轉(zhuǎn)化為左前輪碰到賽道外側(cè)顏色、右前輪碰到賽道內(nèi)側(cè)顏色兩種狀態(tài),并發(fā)現(xiàn)實(shí)現(xiàn)此判斷的程序指令塊——偵測(cè)類(lèi)別中的“顏色……碰到顏色……”。通過(guò)聚焦指令,形象的表達(dá)轉(zhuǎn)化為抽象的指令塊,思維的難度得到降低,轉(zhuǎn)化思維培養(yǎng)更顯成效。
編程教學(xué)中,學(xué)生要學(xué)會(huì)賦予計(jì)算機(jī)中的角色一定的程序,讓它們按照要求動(dòng)起來(lái)。如果角色動(dòng)作較為簡(jiǎn)單,學(xué)生編程時(shí)就得心應(yīng)手;而如果角色動(dòng)作較為復(fù)雜,學(xué)生編程時(shí)就常抓耳撓腮。但是,如果引導(dǎo)學(xué)生把自己想象成Scratch編程中的角色,按照問(wèn)題要求進(jìn)行運(yùn)動(dòng),往往會(huì)有意想不到的收獲。如,在教學(xué)小車(chē)該往哪個(gè)方向旋轉(zhuǎn)時(shí),筆者請(qǐng)三位學(xué)生到講臺(tái)前,左右兩邊的學(xué)生分別扮演賽道外側(cè)、賽道內(nèi)側(cè),中間的學(xué)生扮演小車(chē),并按照前進(jìn)方向兩手分別扮演小車(chē)的左、右前輪。當(dāng)筆者說(shuō)出“當(dāng)左前輪碰上賽道外側(cè)背景的白色”時(shí),扮演小車(chē)的學(xué)生做出向扮演賽道外側(cè)背景學(xué)生傾斜的動(dòng)作。筆者順勢(shì)提問(wèn):“小車(chē)該向哪個(gè)方向旋轉(zhuǎn)呢?”全班學(xué)生馬上知道要向相反方向旋轉(zhuǎn),“向右旋轉(zhuǎn)……度”指令塊就水到渠成了。通過(guò)這樣的方法,學(xué)生體驗(yàn)得到增強(qiáng),思維也順利實(shí)現(xiàn)轉(zhuǎn)化訓(xùn)練,難點(diǎn)便不攻自破了。
三、糾錯(cuò)優(yōu)化,培養(yǎng)啟發(fā)思維
編程教學(xué)中,隨著腳本搭建的完成,檢查程序運(yùn)行能否與預(yù)期情況一致便提上日程,糾錯(cuò)與優(yōu)化就成為主旋律。在這不確定性因素很多的階段,學(xué)生將面臨更大挑戰(zhàn)。為此,要注重啟發(fā)思維訓(xùn)練,引導(dǎo)學(xué)生聯(lián)想、領(lǐng)悟,讓啟發(fā)思維成為一種常態(tài)。
當(dāng)腳本運(yùn)行結(jié)果與預(yù)期情況不相符時(shí),糾錯(cuò)便開(kāi)始了。由于Scratch軟件的特點(diǎn),出現(xiàn)的錯(cuò)誤往往是更具隱蔽性的邏輯錯(cuò)誤。因此,筆者采取“大膽假設(shè)→小心求證”的啟發(fā)思維訓(xùn)練模式:“大膽假設(shè)”指針對(duì)程序調(diào)試中觀(guān)察到的非預(yù)期現(xiàn)象進(jìn)行啟發(fā),鼓勵(lì)學(xué)生勇敢地猜想可能產(chǎn)生問(wèn)題的要素;“小心求證”指針對(duì)可能產(chǎn)生問(wèn)題的要素進(jìn)行啟發(fā),引導(dǎo)學(xué)生在盡可能排除干擾的情況下逐步調(diào)試,逐個(gè)排除懷疑對(duì)象,直至程序調(diào)試成功。如,針對(duì)小車(chē)沖出賽道這個(gè)常見(jiàn)錯(cuò)誤,學(xué)生猜測(cè)是由車(chē)速過(guò)快、旋轉(zhuǎn)方向錯(cuò)誤、旋轉(zhuǎn)角度不合理等因素引起的,并進(jìn)行逐個(gè)求證。在“車(chē)速過(guò)快”的求證中,學(xué)生將“移動(dòng)……步”指令塊的參數(shù)調(diào)成“1”,發(fā)現(xiàn)小車(chē)慢悠悠地在賽道中智能行駛,糾錯(cuò)過(guò)程順利完成。在糾錯(cuò)調(diào)試的過(guò)程中,學(xué)生再次經(jīng)歷問(wèn)題解決的全過(guò)程,預(yù)設(shè)求證的啟發(fā)思維入腦入心。
腳本能夠按照預(yù)期情況執(zhí)行,代表問(wèn)題得到了解決,但并不代表計(jì)算思維培養(yǎng)的結(jié)束。此時(shí),筆者從程序是否最簡(jiǎn)潔、執(zhí)行效果是否最合理、能否進(jìn)行再創(chuàng)作等角度讓學(xué)生放飛思維,在對(duì)程序進(jìn)行優(yōu)化提升的過(guò)程中達(dá)到啟發(fā)思維的再訓(xùn)練。如:學(xué)生發(fā)現(xiàn),緊隨旋轉(zhuǎn)指令塊后面的“移動(dòng)……步”指令塊不是必須的,一下子就減少了兩個(gè)指令塊的使用,使程序變得更加簡(jiǎn)潔;學(xué)生也發(fā)現(xiàn),通過(guò)改變旋轉(zhuǎn)的角度和移動(dòng)的步數(shù)兩個(gè)參數(shù),小車(chē)運(yùn)行速度會(huì)出現(xiàn)差別;一部分同學(xué)甚至開(kāi)始設(shè)計(jì)更復(fù)雜的賽道來(lái)挑戰(zhàn)自己的編程能力。整個(gè)階段,學(xué)生思維得到有效發(fā)散,程序的優(yōu)化提升更具條理性。
利用編程教學(xué)培養(yǎng)學(xué)生的計(jì)算思維,并非一朝一夕可以達(dá)成。但在小學(xué)階段充分利用Scratch編程教學(xué),合理滲透約簡(jiǎn)、轉(zhuǎn)化、啟發(fā)等計(jì)算思維的培養(yǎng),能為提高學(xué)生今后學(xué)習(xí)、生活中的問(wèn)題解決能力打下良好的基礎(chǔ),從而使之成為合格的數(shù)字化公民。
(作者單位:福建省廈門(mén)市集美區(qū)內(nèi)林小學(xué)?搖?搖?搖責(zé)任編輯:莊嚴(yán)?搖?搖?搖黃曉夏)