甘永龍
【關(guān)鍵詞】Scratch圖形化編程;計(jì)算思維;對(duì)象建模;調(diào)試優(yōu)化
【中圖分類號(hào)】G623.58 ?【文獻(xiàn)標(biāo)志碼】A ?【文章編號(hào)】1005-6009(2019)65-0078-03
計(jì)算思維是信息技術(shù)學(xué)科核心素養(yǎng)之一。美國(guó)計(jì)算機(jī)科學(xué)家周以真(Jeannette M. Wing)教授認(rèn)為:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。[1]在Scratch圖形化編程教學(xué)的探索和實(shí)踐中,筆者發(fā)現(xiàn),在程序教學(xué)的每個(gè)環(huán)節(jié)中有重點(diǎn)地培養(yǎng)計(jì)算思維的四種意識(shí),能在潛移默化中發(fā)展學(xué)生的計(jì)算思維能力。
1.增強(qiáng)問(wèn)題分解意識(shí),在對(duì)象建模中弄清角色的邏輯關(guān)系。
教學(xué)中,我們會(huì)發(fā)現(xiàn),學(xué)生在用計(jì)算機(jī)進(jìn)行程序創(chuàng)編,解決具體問(wèn)題時(shí)往往想到哪里,做到哪里,缺乏問(wèn)題分解的意識(shí)。這要求教師有意識(shí)地圍繞實(shí)際問(wèn)題的求解步驟來(lái)組織教學(xué),從而使學(xué)生運(yùn)用所學(xué)知識(shí)將具體問(wèn)題分解成若干個(gè)易于解決的小問(wèn)題,并抽象出一個(gè)個(gè)適宜的數(shù)學(xué)模型。
例如:要畫出花朵(見圖1),可以先用Scratch中的畫圖工具畫出其中的一片花瓣(見圖2),然后建模,將8個(gè)花瓣圍成360°。通過(guò)編程將每個(gè)花瓣圍繞下端中心點(diǎn)旋轉(zhuǎn)45°完成自動(dòng)化繪制,最終畫出花朵。這種從抽象到編程實(shí)現(xiàn)的過(guò)程非常直觀,有的學(xué)生甚至可以在此基礎(chǔ)上創(chuàng)編出更有趣的花朵。
上例中僅有花瓣這一個(gè)角色,建模比較簡(jiǎn)單。對(duì)于復(fù)雜的游戲,我們可以通過(guò)列表格的方式,描述解決問(wèn)題所涉及的各種角色以及角色間的關(guān)系。如:五年級(jí)的“小貓抓魚”游戲是利用搖桿控制小貓移動(dòng)并統(tǒng)計(jì)規(guī)定時(shí)間內(nèi)抓魚數(shù)量的游戲。該游戲角色多、任務(wù)多、相互之間的關(guān)聯(lián)比較復(fù)雜,還有許多并行的流程。對(duì)此,我們可以通過(guò)列表格或畫思維導(dǎo)圖的方式將無(wú)形的思維過(guò)程轉(zhuǎn)化為直觀的圖表(見下頁(yè)表1)。
問(wèn)題分解和對(duì)象模型建構(gòu)能讓學(xué)生從本質(zhì)上和全局上找到問(wèn)題解決的思路,明確游戲制作所需的角色,弄清角色之間的相互關(guān)系,同時(shí)這也能為接下來(lái)的局部分析,設(shè)計(jì)每個(gè)角色的造型、腳本、狀態(tài),以及每句指令、參數(shù)、先后執(zhí)行順序提供方向和思路,并能有效發(fā)展學(xué)生的計(jì)算思維。
2.增強(qiáng)有序組合意識(shí),在腳本設(shè)計(jì)中培養(yǎng)學(xué)生的算法思維。
計(jì)算思維中的算法是有窮規(guī)則的集合,是任務(wù)執(zhí)行與問(wèn)題求解的一系列有序步驟。在Scratch中,編程就像在搭積木,學(xué)生可以直觀地看到各種腳本設(shè)計(jì)呈現(xiàn)出的實(shí)際效果。筆者在使用表格將大問(wèn)題分解為一個(gè)個(gè)現(xiàn)實(shí)的小問(wèn)題后,引導(dǎo)學(xué)生有序組合各類積木指令,清晰描述“貓抓小魚”的情景。
由于學(xué)生的設(shè)計(jì)經(jīng)驗(yàn)不足,學(xué)生很難理解算法中的分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。為此,教師可以借助流程圖幫助學(xué)生描述算法,也可以針對(duì)不同的角色,直接拖拽選好的圖形積木指令,不斷嘗試各類指令的有序組合,修改指令的各種參數(shù),完成相應(yīng)的Scratch腳本設(shè)計(jì)。以下,圖3、圖4分別為傳統(tǒng)樣式流程圖和積木塊組合式流程圖,兩圖都可以直觀地描述“仿真”貓碰到魚的腳本執(zhí)行情況:貓碰到魚顯示“抓魚”造型,否則顯示“造型1”。
3.增強(qiáng)糾錯(cuò)優(yōu)化意識(shí),在程序調(diào)試中培養(yǎng)學(xué)生的思維品質(zhì)。
“糾錯(cuò)”是Scratch教學(xué)的重要環(huán)節(jié),“優(yōu)化”是腳本程序歸納、簡(jiǎn)化、改進(jìn)的過(guò)程。從學(xué)生設(shè)計(jì)腳本程序開始,糾錯(cuò)和優(yōu)化的行為就伴隨始終。學(xué)生在調(diào)試作品時(shí),需要像計(jì)算機(jī)執(zhí)行程序一樣去思考執(zhí)行語(yǔ)句,知曉執(zhí)行每段積木塊應(yīng)該出現(xiàn)的現(xiàn)象,并與實(shí)際的執(zhí)行結(jié)果進(jìn)行比較。當(dāng)發(fā)現(xiàn)效果與預(yù)想的有偏差時(shí),就要糾錯(cuò)、優(yōu)化程序,采用不同的算法實(shí)現(xiàn)效果。如在“小貓抓魚”的教學(xué)過(guò)程中,筆者組織學(xué)生一起討論腳本運(yùn)行時(shí)的問(wèn)題,并進(jìn)行糾錯(cuò)和優(yōu)化。
師:從舞臺(tái)效果看,我們發(fā)現(xiàn)小魚游動(dòng)的畫面不太真實(shí)、比較機(jī)械,大家想想怎么辦?
生:在小魚游動(dòng)的腳本程序中,我們可以添加命令“在1秒內(nèi)滑行到X:-15 Y:13”,使小魚游動(dòng)的畫面更加自然。
師:當(dāng)小魚被吃掉隱藏后,如果游戲重新開始,就看不到小魚了,該怎么優(yōu)化?
生:在小魚腳本程序塊中添加初始狀態(tài)為“顯示”。
師:上述實(shí)現(xiàn)的是一條小魚,實(shí)際情況是應(yīng)該有好多條小魚,該怎么修改?
生:其他小魚外觀不同、位置不同,功能是相同的(來(lái)回游動(dòng),碰到貓消失)。
師:外觀不同,可以通過(guò)選擇圖庫(kù)中不同的角色,也可以利用Scratch繪制,填充不同的顏色。功能相同意味著腳本相同,利用代碼復(fù)制可以簡(jiǎn)化編程工作。用隨機(jī)數(shù)字模塊“在1到10間隨機(jī)選一個(gè)數(shù)”,就可以解決小魚起點(diǎn)出現(xiàn)在相同位置的問(wèn)題。
以上教學(xué)中,“仔細(xì)閱讀腳本”“為腳本添加注釋”“像計(jì)算機(jī)執(zhí)行程序一樣思考”“尋找舞臺(tái)效果與預(yù)想情況的偏差”“設(shè)計(jì)程序作品調(diào)試任務(wù)單”等,都是發(fā)展學(xué)生計(jì)算思維品質(zhì)的好方法。通過(guò)這樣的“糾錯(cuò)”和“優(yōu)化”,程序的腳本設(shè)計(jì)會(huì)更加合理,指令的數(shù)量會(huì)更加簡(jiǎn)約,呈現(xiàn)的效果會(huì)更加生動(dòng)、豐富。
4.增強(qiáng)交流分享意識(shí),在作品評(píng)價(jià)中充分體驗(yàn)成長(zhǎng)的快樂。
每一個(gè)學(xué)生都有自己的知識(shí)背景和生活經(jīng)驗(yàn),在作品創(chuàng)作中都會(huì)加入自己的想法。在教學(xué)中,筆者有意識(shí)地讓學(xué)生展示、分享自己的作品,這既是對(duì)學(xué)生的肯定,也是引導(dǎo)學(xué)生再學(xué)習(xí)的一種方式。
在“貓抓小魚”游戲的設(shè)計(jì)和制作中,有的學(xué)生將舞臺(tái)設(shè)置得非常炫酷,添加了動(dòng)態(tài)的珊瑚、貝殼、海草等海洋角色;有的對(duì)魚的造型進(jìn)行裝飾,甚至把魚換成了星星等其他有趣的角色;有的改變了小貓抓魚的方式,如在水里抓、在岸上釣……作品的交流和分享促進(jìn)了學(xué)生的思考,打開了學(xué)生的思維空間,學(xué)生的作品比原來(lái)更有個(gè)性、更有創(chuàng)意。
【參考文獻(xiàn)】
[1]JENANETTE M WING.Computational Thinking[J]. Communications of the ACM,2006(3):34-35.
[2]王志強(qiáng),毛睿,張艷.計(jì)算思維導(dǎo)論[M].北京:高等教育出版社,2012.
[3]牟琴,譚良.計(jì)算思維的研究及其進(jìn)展[J].計(jì)算機(jī)科學(xué),2011(3):10-15.
(作者單位:南京市高淳區(qū)寶塔小學(xué))