陳海林
2017年7月,國務(wù)院印發(fā)了《新一代人工智能發(fā)展規(guī)劃》,將人工智能發(fā)展上升到國家戰(zhàn)略層面。而浙江省早在2014年就將人工智能作為浙攝版《小學(xué)信息技術(shù)》六年級(jí)下冊(cè)教材的重要內(nèi)容,安排了《Scratch趣味編程》《與機(jī)器人零距離》兩個(gè)獨(dú)立單元。隨著編程教育的推進(jìn)和普及,部分教師已經(jīng)開始嘗試在四、五年級(jí)甚至三年級(jí)就進(jìn)行基礎(chǔ)的編程教學(xué),但對(duì)Scratch教學(xué)疑難點(diǎn)的突破鮮有辦法。筆者在本文列舉了Scratch教學(xué)中“X,Y坐標(biāo)”“算術(shù)運(yùn)算”“平面角度”“程序啟動(dòng)”這四個(gè)疑難點(diǎn)的突破案例,以期起到拋磚引玉之效。
一、搭建支架+巧設(shè)習(xí)題:解決“X,Y坐標(biāo)”的知識(shí)難點(diǎn)
坐標(biāo)是Scratch編程中非常重要的腳本之一,有“移動(dòng)到X(),Y(),將X,Y坐標(biāo)設(shè)定為(),將X,Y坐標(biāo)增加()”等腳本命令。如果學(xué)生不理解坐標(biāo)的含義,也就無法精確控制角色在舞臺(tái)中的位置和其他相關(guān)操作。
據(jù)了解,中年級(jí)學(xué)生尚未接觸坐標(biāo)概念,使得Scratch編程學(xué)習(xí)缺少數(shù)學(xué)理論的支撐。為了解決這一知識(shí)難點(diǎn),教師可以利用表格搭建學(xué)習(xí)支架,結(jié)合Scratch坐標(biāo)的特性,引入概念。
教師先繪制一張表格,用X表示列,Y表示行,且列數(shù)和行數(shù)都有負(fù)數(shù)和零的標(biāo)記,因版面限制,只畫10行和10列即可(見圖1)。教師隨意指出一個(gè)單元格的位置,請(qǐng)學(xué)生回答所在行和列的值。通過講解和演示,幫助學(xué)生初步建立行和列的概念后,就可以比較順利地遷移到Scratch中X,Y的坐標(biāo)概念。
學(xué)生對(duì)剛剛建立的Scratch中“X,Y坐標(biāo)”概念并不牢固,因此教師有意設(shè)計(jì)了一組練習(xí)題,用于鞏固新知。
1.請(qǐng)將小貓往右移動(dòng)10步,該用以下哪個(gè)腳本?
A.將y坐標(biāo)設(shè)定為10???B.將x坐標(biāo)設(shè)定為10
C.將y坐標(biāo)增加10???????D.將x坐標(biāo)增加10
2.請(qǐng)將小貓往下移動(dòng)10步,該用以下哪個(gè)腳本?
A.將y坐標(biāo)設(shè)定為10???B.將x坐標(biāo)設(shè)定為10
C?將y坐標(biāo)增加10????????D.將x坐標(biāo)增加10
3.請(qǐng)將小貓移到舞臺(tái)的中心點(diǎn),該用以下哪個(gè)腳本?
A.將y坐標(biāo)設(shè)定為0??????B.將x坐標(biāo)設(shè)定為0
C.將x,y坐標(biāo)都設(shè)定為0
通過以上三道有層次的練習(xí)題,學(xué)生進(jìn)一步明晰了“X,Y坐標(biāo)”的概念,基本能掌握各腳本的使用場(chǎng)景。
二、厘清順序+精準(zhǔn)練習(xí):破解“算術(shù)運(yùn)算”的應(yīng)用難點(diǎn)
Scratch中所有的運(yùn)算符都是單個(gè)呈現(xiàn)的,如果要進(jìn)行多步驟的混合運(yùn)算就需要自行搭建混合運(yùn)算積木。許多初學(xué)者對(duì)于Scratch中搭建混合運(yùn)算積木不夠熟悉,容易混淆邏輯順序,出現(xiàn)意想不到且難以發(fā)現(xiàn)的錯(cuò)誤,造成排除bug的障礙。
例如求正八邊形的一個(gè)內(nèi)角角度。求解公式為(8-2)×180/8。該公式中不僅有乘法、除法、減法,還有括號(hào)算法的優(yōu)先級(jí)。正確的積木搭建如圖2所示,求出角度值為135°。許多初學(xué)者在積木疊放順序時(shí)就出現(xiàn)了各種搭建錯(cuò)誤,圖3就是一種常見的錯(cuò)誤。究其原因,是學(xué)生不能理解Scratch進(jìn)行混合運(yùn)算時(shí)處理各個(gè)層疊積木塊的先后順序。
Scratch混合運(yùn)算層疊積木塊是按照從最上層開始,逐層往下的順序處理運(yùn)算過程的。當(dāng)學(xué)生掌握了Scratch混合運(yùn)算的規(guī)律后,就可以根據(jù)數(shù)學(xué)中運(yùn)算的優(yōu)先級(jí)來構(gòu)建整個(gè)混合運(yùn)算的疊放順序,并通過腳本區(qū)的放大按鈕審視各個(gè)層疊積木塊的疊放順序,避免“算術(shù)運(yùn)算”的錯(cuò)誤(見圖4)。
為了鞏固學(xué)生構(gòu)建層疊積木塊的疊放順序,教師可以設(shè)計(jì)一些精準(zhǔn)指向混合運(yùn)算的習(xí)題,幫助學(xué)生掌握并牢記“算術(shù)運(yùn)算”規(guī)律。
通過計(jì)算以上8個(gè)有代表性的混合運(yùn)算習(xí)題,學(xué)生基本能夠突破Scratch中數(shù)字和邏輯運(yùn)算模塊的應(yīng)用難點(diǎn)。
三、大膽猜想+知識(shí)遷移:突破“平面角度”的認(rèn)知難點(diǎn)
在Scratch編程中表示平面角度值,是用“0°”“180°”“-90°”“90°”分別表示“上”“下”“左”“右”(見圖5)。但這也是學(xué)生“平面角度”的認(rèn)知難點(diǎn)。教師可以鼓勵(lì)學(xué)生大膽猜想,進(jìn)行推理論證,再通過知識(shí)遷移,突破這一認(rèn)知難點(diǎn)。
通過角度值的遞增規(guī)律,學(xué)生很容易做出猜測(cè)——-90°等于270°,并可以通過兩個(gè)簡(jiǎn)單的腳本來驗(yàn)證猜想(見圖6):先點(diǎn)擊綠旗角色面向-90°方向,再按下空格角色面向270°方向。但學(xué)生運(yùn)行程序后,角色并沒有改變方向。學(xué)生查看角色信息,發(fā)現(xiàn)角色依舊面向-90°方向,所以先前的猜測(cè)是成立的。繼而,scratch角度值可以在0°~360°的范圍內(nèi),這樣的表示更為簡(jiǎn)化,便于理解。
學(xué)生在低年級(jí)已經(jīng)學(xué)過有關(guān)鐘面的知識(shí),而認(rèn)知角度值和鐘面有著許多交集區(qū)域(見圖7),如:平面范圍的一圈為360°和時(shí)針走一圈是12小時(shí);順時(shí)針角度值越來越大,反之越小;360°等價(jià)于0°,等等。所以,教師可以將鐘面知識(shí)作為學(xué)生認(rèn)知Scratch角度值的一個(gè)支架,突破“平面角度”的認(rèn)知難點(diǎn)。
值得注意的是,2019年1月2日Scratch3.0正式版發(fā)布,其在角度方面的改版如圖8所示,將平面范圍分成左右兩部分,左半部分為-180°~0°,右半部分為0°~180°,這樣更有利于初學(xué)者對(duì)Scratch平面角度體系有清楚的認(rèn)知。
四、歸因反思+腳本調(diào)整:解除“程序啟動(dòng)”的順序疑點(diǎn)
對(duì)于在Scratch教學(xué)過程中遇到的一些小問題、小疑惑,往往要在全面了解Scratch后才能快速找出答案。其中,程序啟動(dòng)的順序問題就是一個(gè)讓很多學(xué)生陷入困境的小問題,教師要引導(dǎo)學(xué)生進(jìn)行歸因反思,調(diào)整腳本,解除“程序啟動(dòng)”的順序疑點(diǎn)。
以“箭頭射氣球”程序?yàn)槔瑘D9是箭頭角色的主要程序,圖10是氣球角色的主要程序。程序設(shè)計(jì)為:當(dāng)箭頭克隆體觸碰到氣球時(shí),箭頭克隆體與氣球同步消失。很多學(xué)生的作品似乎邏輯都很順利,但實(shí)際操作后發(fā)現(xiàn),箭頭和氣球只能消失其一。將腳本代入閱讀后,學(xué)生發(fā)現(xiàn)箭頭和氣球上的兩個(gè)消失腳本都是通過綠旗點(diǎn)擊觸發(fā)的,看似能夠同步運(yùn)行,實(shí)則不能同時(shí)進(jìn)行。也就是說,Scratch處理腳本看似同步,但實(shí)際底層代碼的運(yùn)行并不同時(shí),所以導(dǎo)致其中一個(gè)腳本相對(duì)滯后。
既然找到了出現(xiàn)bug的原因,就可以通過一個(gè)廣播來解決這類問題,也可以編寫一個(gè)程序來進(jìn)一步確定Scratch運(yùn)行腳本的先后順序。因?yàn)槌绦蜻\(yùn)行順序與建立腳本順序有關(guān),后建立的腳本先運(yùn)行。由于篇幅限定,在此不做贅述。
恒者行遠(yuǎn),思者常新。在Scratch編程教學(xué)中,教師需要不斷學(xué)習(xí)和思考,專業(yè)能力才能得到不斷提升,才能不斷突破和創(chuàng)新,很多看似難以突破的瓶頸也就迎刃而解了。
(浙江省常山縣第一小學(xué)???324200)