国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

巧用Scratch作圖培養(yǎng)小學(xué)生計(jì)算思維策略

2017-09-30 22:30郭巍丹
中國(guó)信息技術(shù)教育 2017年18期
關(guān)鍵詞:正三角形蜘蛛網(wǎng)指令

郭巍丹

隨著Scratch教學(xué)的深入開展,教師在教學(xué)中經(jīng)常會(huì)遇到一些問(wèn)題:學(xué)生躍躍欲試卻無(wú)從下手,學(xué)生反復(fù)調(diào)試卻效果不佳,學(xué)生學(xué)會(huì)了案例卻創(chuàng)意不足。分析這些現(xiàn)象的原因所在,深入思考Scratch教學(xué)的本質(zhì),筆者發(fā)現(xiàn),Scratch圖形化指令直觀明了,學(xué)生可以很快掌握這些指令,編寫簡(jiǎn)單的小程序。但隨著學(xué)習(xí)的深入,任務(wù)變得復(fù)雜,角色開始增多,每個(gè)角色的功能增加,用到的指令越來(lái)越多,程序也越來(lái)越復(fù)雜,這時(shí)就需要運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題和設(shè)計(jì)系統(tǒng),利用遞歸思維和啟發(fā)式推理來(lái)尋求解答,也就是如今所說(shuō)的在Scratch教學(xué)中要培養(yǎng)小學(xué)生的計(jì)算思維。結(jié)合Scratch教學(xué)中發(fā)現(xiàn)的問(wèn)題和小學(xué)生的認(rèn)知水平,筆者認(rèn)為利用Scratch作圖的創(chuàng)作過(guò)程可以有效培養(yǎng)小學(xué)生的分解、遞歸等算法思維及概括、推理等計(jì)算思維。

● 分析任務(wù):由外到內(nèi)逐層分解

充分理解案例、學(xué)會(huì)分析任務(wù)是解決任何編程問(wèn)題的第一步。理解之后,可以做出一個(gè)大致的解決方案,然后將其劃分為多個(gè)主要任務(wù)進(jìn)行突破,幾個(gè)主要的任務(wù)又可以各自作為大任務(wù)再分解成小任務(wù)進(jìn)行解決,這樣的順序稱為由外到內(nèi)逐層分解。在用Scratch作圖時(shí),教師經(jīng)常會(huì)用到這樣的分析方法,這種方法同樣也可以運(yùn)用到其他類別的Scratch作品的創(chuàng)作中。

例如,學(xué)生拿到“蜘蛛網(wǎng)”案例時(shí),雖然直觀上感覺對(duì)圖形非常熟悉,也知道這是一個(gè)特殊圖形,但由于缺乏計(jì)算思維的訓(xùn)練,在編程時(shí)仍無(wú)從下手,而這正凸顯了動(dòng)手編程前任務(wù)分析的重要性。在程序?qū)崿F(xiàn)之前,教師要引導(dǎo)學(xué)生對(duì)圖形進(jìn)行觀察,發(fā)現(xiàn)圖形生成具有的規(guī)律,幫助學(xué)生一層層地推理和分析。筆者以在Scratch中做出“蜘蛛網(wǎng)”圖形為例,引領(lǐng)學(xué)生一起分析,得出如下兩種圖形分解思路。

第一種(如上頁(yè)圖1):從最外層分解,這個(gè)“蜘蛛網(wǎng)”圖形首先可以分成5個(gè)大的六邊形;再進(jìn)一步分解,每個(gè)大六邊形又可以分解成6個(gè)大小一樣的正三角形,最終歸到一個(gè)基礎(chǔ)圖形“三角形”。只要能畫出這個(gè)最小的正三角形,通過(guò)變換就能得到最小的正六邊形,再通過(guò)變換將小六邊形邊長(zhǎng)增加,就可以制作成一個(gè)“蜘蛛網(wǎng)”圖形。

第二種(如上頁(yè)圖2):將這個(gè)“蜘蛛網(wǎng)”圖形分解成六個(gè)大小一致的大正三角形;每個(gè)大正三角形由5個(gè)邊長(zhǎng)依次增加的小正三角形組成,最終也是歸到小正三角形上。只要先制作出這個(gè)小正三角形,就可以通過(guò)程序指令生成一個(gè)“蜘蛛網(wǎng)”圖形。

從案例中可以發(fā)現(xiàn),對(duì)復(fù)雜問(wèn)題由外到內(nèi)逐層分解可以幫助學(xué)生化繁為簡(jiǎn),體驗(yàn)從復(fù)雜問(wèn)題到具體問(wèn)題的分解過(guò)程,學(xué)生掌握了這種分析任務(wù)的切入口,找到了解決問(wèn)題的方法,就會(huì)從無(wú)從下手發(fā)展到躍躍欲試。

● 程序?qū)崿F(xiàn):由內(nèi)到外逐層遞歸

通過(guò)前面由外到內(nèi)的逐層分析,能夠在復(fù)雜問(wèn)題中分解出要解決的具體小任務(wù)。集中解決好復(fù)雜問(wèn)題中的小問(wèn)題,把各個(gè)細(xì)節(jié)問(wèn)題解決好,再進(jìn)行合理的組裝,就能由內(nèi)到外一步步解決問(wèn)題。因此,在這個(gè)程序?qū)崿F(xiàn)過(guò)程中,教師要著眼于具體的小任務(wù)。

在繪制“蜘蛛網(wǎng)”的案例中提到了兩種分解過(guò)程,筆者在這里用第一種思路講解如何由內(nèi)到外一層層編程,再結(jié)合問(wèn)題分析結(jié)果。最內(nèi)層的過(guò)程就是實(shí)現(xiàn)正三角形的繪制,學(xué)生很快能夠編寫出繪制正三角形的程序:重復(fù)執(zhí)行3次移動(dòng)數(shù)值(這里以100為例)和旋轉(zhuǎn)(120度)兩個(gè)指令。這就是解決任務(wù)中最內(nèi)層的過(guò)程,命名為Triangle。但考慮到外層過(guò)程中,正三角形的邊長(zhǎng)是要變化的,不能固定100,所以Triangle中必須還有一個(gè)自變量length(如圖3)。

第二層過(guò)程是實(shí)現(xiàn)每旋轉(zhuǎn)60度繪制一個(gè)正三角形直至一周。只要每旋轉(zhuǎn)60度,執(zhí)行一次過(guò)程Triangle即可,將這個(gè)繪制正六邊形的過(guò)程命名為Hexagon,同樣要設(shè)置自變量length(如圖4)。

最外層過(guò)程是實(shí)現(xiàn)繪制5個(gè)依次增加邊長(zhǎng)的六邊形。利用同樣的解決思路,重復(fù)執(zhí)行5次Hexagon。由于每執(zhí)行一次,變量length要增加一定的值,所以length需要用新的變量進(jìn)行控制,將這個(gè)頂層的過(guò)程命名為SpiderWeb。主程序只要調(diào)用最外層過(guò)程SpiderWeb,就能繪制出精美的蜘蛛網(wǎng)了(具體代碼如上頁(yè)圖5)。

由內(nèi)到外的程序?qū)崿F(xiàn)過(guò)程,給學(xué)生編程提供了明確的線索,幫助學(xué)生理清任務(wù)與任務(wù)之間、問(wèn)題與問(wèn)題之間的邏輯關(guān)系。在整個(gè)編寫過(guò)程中,就如同提供了一步步的腳手架,通過(guò)用計(jì)算機(jī)自動(dòng)繪制出這些神奇的圖形,讓學(xué)生感受到計(jì)算機(jī)程序設(shè)計(jì)的強(qiáng)大魅力。

● 定義過(guò)程:減少程序的漏洞

簡(jiǎn)單是程序設(shè)計(jì)的目標(biāo),就像工廠里的流水生產(chǎn)線往往被劃分成若干個(gè)工位,每一個(gè)工位執(zhí)行標(biāo)準(zhǔn)化、程序化的動(dòng)作,這就是單一責(zé)任。在程序設(shè)計(jì)中,單一責(zé)任是指某個(gè)代碼的功能,應(yīng)該保證只有單一、明確的執(zhí)行任務(wù)。任務(wù)越單一,代碼越簡(jiǎn)單,越簡(jiǎn)單的代碼占用時(shí)間越少,漏洞越少,并且易于修改。當(dāng)其他功能部分發(fā)生變化時(shí),也能夠盡可能降低對(duì)其他組件的影響。在“蜘蛛網(wǎng)”的案例中,將每個(gè)分步都定義為一個(gè)過(guò)程(如圖6),每個(gè)過(guò)程只做單一的任務(wù),如Triangle只負(fù)責(zé)繪制某一邊長(zhǎng)的正三角形。

定義過(guò)程不僅有利于學(xué)生理清編程的思路,也方便程序的調(diào)試。在調(diào)試程序的過(guò)程中,可以將總目標(biāo)分解成一層層由內(nèi)向外的過(guò)程進(jìn)行逐一調(diào)試。案例中可以先調(diào)試是否能畫出一個(gè)三角形,調(diào)試成功后,再調(diào)試是否能成功畫出六邊形。以此類推,直至成功。

● 應(yīng)用拓展:從范例學(xué)習(xí)到個(gè)性創(chuàng)意

Scratch的教學(xué)本身就是“為了創(chuàng)作而教”,無(wú)論什么主題的作品都不能忽視自由創(chuàng)作。在繪制圖形的案例中,學(xué)生主要是學(xué)習(xí)了問(wèn)題的分解與具體問(wèn)題達(dá)成的邏輯,重在方法的剖析,而非圖形本身。這為學(xué)生走出范例進(jìn)行個(gè)性化創(chuàng)作奠定了良好的基礎(chǔ)。

1.修改變量過(guò)程,變化效果

幾何圖形的變換千姿百態(tài),但核心思想不變。在圖形繪制中只需要修改某一個(gè)變量(邊長(zhǎng)、邊數(shù)、旋轉(zhuǎn)角度)或者修改過(guò)程中執(zhí)行的命令,就可以帶來(lái)各種各樣的效果。當(dāng)然,修改之前需要先有總體的架構(gòu),明確自己的目標(biāo)圖形。例如,在學(xué)生學(xué)會(huì)繪制正三角形和正三角形變換得到的蜘蛛網(wǎng)案例后,可要求其自行設(shè)計(jì)繪制正方形,并將繪制正方形的過(guò)程作為底層過(guò)程函數(shù),創(chuàng)作更加復(fù)雜的圖案(如上頁(yè)圖7)。

2.巧用問(wèn)詢模塊,實(shí)現(xiàn)交互

在繪圖的創(chuàng)作過(guò)程中,有學(xué)生提出不要固定繪制的圖案,如上面案例中實(shí)現(xiàn)實(shí)時(shí)繪制6個(gè)花瓣、7個(gè)花瓣……只要將第三個(gè)過(guò)程函數(shù)的重復(fù)執(zhí)行次數(shù)設(shè)為變量,并在主程序中加入問(wèn)詢的指令(如上頁(yè)圖8),那么,當(dāng)回答不同的數(shù)值時(shí),count的值就會(huì)不同,調(diào)用過(guò)程函數(shù)Rotated Squares后的圖案也會(huì)發(fā)生變化(如圖9)。

3.設(shè)置畫筆性質(zhì),美化圖案

畫筆模塊中有多條與畫筆屬性相關(guān)的指令,學(xué)生將這些指令合理地添加到子程序中,就可以繪制出更加精美的圖案。例如,某學(xué)生在上面案例中的子程序Square中,每次執(zhí)行就增加畫筆的顏色值,并在Rotated Squares子程序中恢復(fù)畫筆起始顏色,成功繪制出了色彩豐富的花瓣(如圖10)。

幾何圖形的創(chuàng)作周期和需要考慮的內(nèi)容明顯小于一個(gè)好玩的游戲、動(dòng)畫等互動(dòng)性作品的創(chuàng)作,也正因?yàn)槿绱耍瑢W(xué)生發(fā)揮的創(chuàng)意可以很小,也可以很大。但是,無(wú)論是簡(jiǎn)單修改變量還是顏色,通過(guò)不同邏輯的嵌套后,最后的成品都是豐富多彩的。這樣簡(jiǎn)單的操作,卻能收獲豐富的即時(shí)的可視化的作品,能更加激發(fā)學(xué)生對(duì)邏輯的探究,并體驗(yàn)到圖形繪制的趣味。

總之,由于Scratch軟件存在可視化編程環(huán)境、畫筆的多種性質(zhì)、過(guò)程函數(shù)的方便調(diào)用,以及可以結(jié)合其他指令達(dá)到更多交互功能等優(yōu)勢(shì),使得Scratch作圖變得既有趣又簡(jiǎn)單,大大激發(fā)了學(xué)生的創(chuàng)作激情。幾何圖形的創(chuàng)作并不能涵蓋Scratch軟件的所有功能指令。因此,Scratch作圖旨在培養(yǎng)學(xué)生的編程思維,而非Scratch指令的系統(tǒng)學(xué)習(xí)。筆者希望學(xué)生通過(guò)對(duì)Scratch作圖的學(xué)習(xí),學(xué)會(huì)分析問(wèn)題、體驗(yàn)解決問(wèn)題的方法,并將學(xué)習(xí)中滲透的計(jì)算思維運(yùn)用到Scratch指令的學(xué)習(xí)中,為Scratch作品的創(chuàng)作提供解決問(wèn)題的策略。endprint

猜你喜歡
正三角形蜘蛛網(wǎng)指令
一樣,不一樣
無(wú)限追蹤(二)
路遇一張蜘蛛網(wǎng)
蜘蛛網(wǎng)大戰(zhàn)
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
新機(jī)研制中總裝裝配指令策劃研究
蚊子和蜘蛛網(wǎng)
一道不等式擂臺(tái)題的改進(jìn)與相關(guān)問(wèn)題
蜘蛛網(wǎng)
讓三角形倒立