基于計(jì)算思維培養(yǎng)的Scratch教學(xué)論文
以“想象、創(chuàng)作、分享”為主題的Scratch,趣味性、易學(xué)性、實(shí)踐性、創(chuàng)新性都適合中小學(xué)生,特別是作為簡單易學(xué)的編程工具,用拖動指令塊代替敲代碼,學(xué)生可以避開程序設(shè)計(jì)語言語法的學(xué)習(xí)和調(diào)試,集中精力對問題進(jìn)行求解,這為學(xué)生計(jì)算機(jī)思維的培養(yǎng)提供了便利條件。筆者以《大魚吃小魚》一課為例,就如何培養(yǎng)學(xué)生的計(jì)算思維同大家一起探討。學(xué)生此前已經(jīng)學(xué)會了Scratch中常見的指令塊,本節(jié)課是Scratch的綜合應(yīng)用課。課程任務(wù)是:在10秒鐘內(nèi)記錄大魚吃掉小魚的總條數(shù)。
● 利用面向?qū)ο蟮姆椒ǔ橄蟪鰡栴}求解的模型
計(jì)算思維作為一種思維過程,很難用知識描述的方式顯性呈現(xiàn)出來。其中方法是計(jì)算思維的重要內(nèi)容。計(jì)算思維的方法可分為數(shù)學(xué)方法和工程方法,其中數(shù)學(xué)方法涉及抽象、遞歸、證明、形式化表達(dá)等,工程方法包括系統(tǒng)方法、分治法、面向過程和面向?qū)ο蠓椒ǖ。教師通過這兩類方法的傳授,把有關(guān)計(jì)算思維的相關(guān)思維特征和方法分解到每一個具體的教學(xué)內(nèi)容之中。
“大魚吃小魚”游戲?qū)崿F(xiàn)起來比較復(fù)雜,因?yàn)樗皇且粋結(jié)構(gòu)化很強(qiáng)的問題,沒有明確要求先做什么再做什么,前后邏輯性不是很嚴(yán)密,小魚在游,大魚也在游,時間還在走,當(dāng)小魚碰到大魚,要被吃掉,其他小魚依然不受影響,繼續(xù)游,時間繼續(xù)走。程序中出現(xiàn)了幾個并行的流程時,如何進(jìn)行任務(wù)統(tǒng)籌呢?如何貼近實(shí)際進(jìn)行程序的優(yōu)化提高效益呢?利用求解的順序步驟很難解決問題,這需要從另外一個思路思考問題求解的方法——面向?qū)ο蟮姆椒。把問題抽象出“對象+觸發(fā)事件”模型,分析游戲中涉及哪些對象,這些對象的初始狀態(tài)是什么,哪些對象是靜態(tài)的,哪些對象是動態(tài)的,動態(tài)對象的激發(fā)事件是什么,調(diào)試運(yùn)行后,是否達(dá)到最初的預(yù)期,沒有達(dá)到如何優(yōu)化。學(xué)生從具體的事例中抽象出計(jì)算機(jī)能夠解決的模型,從而達(dá)到解決問題的目的。
教學(xué)片段1:
師:游戲中有哪些對象?
生:一條大魚,許多條小魚,背景,被吃小魚計(jì)數(shù)器、計(jì)時器。
師:它們初始狀態(tài)是什么?
生:計(jì)數(shù)器初始化為零,計(jì)時器初始化為零。舞臺背景選擇與“海底世界”類似的畫面;大魚初始位置為隨機(jī)(如圖1);小魚初始狀態(tài)為游動(如圖2)。
師:分析完后,有哪些對象處于初始狀態(tài)?并思考將要發(fā)生哪些事件?
生:事件1,當(dāng)鍵盤上的方向鍵被按下的時候,大魚的游動會發(fā)生變化;事件2,當(dāng)大魚碰到小魚的時候,小魚被吃掉,被吃小魚計(jì)數(shù)器自增1;事件3,如果計(jì)時達(dá)到10秒,游戲結(jié)束,并顯示被吃小魚的條數(shù)。
在Scratch教學(xué)中,如果教師不把分析的過程、思考的過程及優(yōu)化的過程呈現(xiàn)出來,那么學(xué)生也僅僅獲得知識,因缺乏必要的思維訓(xùn)練,他們也無法獲得舉一反三、觸類旁通的能力以及普適的技能。讓學(xué)生從本質(zhì)上和全局上來建立對問題的解決思路,便于學(xué)生進(jìn)入到類似問題的求解中。
● 利用約簡、仿真等方法抽象出事件的處理過程
計(jì)算思維的本質(zhì)是抽象和符號化,在Scratch數(shù)字作品創(chuàng)作過程中,無論是動畫故事的編制還是游戲的開發(fā),都需要把具體的問題抽象成符號或?qū)ο,并使用指令塊把相應(yīng)的問題“計(jì)算”出來。Jeannette M.Wing教授認(rèn)為這種能將一個問題清晰、抽象地描述出來,并將問題的解決方案表示為一個信息處理流程的思維過程就是計(jì)算思維的訓(xùn)練過程。計(jì)算思維是通過約簡、嵌入、轉(zhuǎn)化和仿真等方法,把一個看似困難的.問題重新闡釋成一個人們知道怎樣解決的問題。計(jì)算機(jī)模擬大魚吃小魚這一現(xiàn)實(shí)問題,怎樣讓學(xué)生經(jīng)歷一個通過約簡、嵌入、轉(zhuǎn)化、仿真等方式進(jìn)行化難為簡的過程,體會計(jì)算思維的本質(zhì)——抽象和自動化,是計(jì)算思維培養(yǎng)的突出表現(xiàn)。
教學(xué)片段2:
師:大魚(碰到鍵盤上的方向鍵)觸發(fā)什么事件?
學(xué)生操作如圖3所示。
師:如何模擬大魚吃掉小魚的情境,F(xiàn)實(shí)中看到的場景是大魚張開嘴巴,小魚消失……
生:可以使用“碰到”大魚的時候,小魚“隱藏”的方式,模擬小魚被吃掉的場景(如圖4)。
師:很好,同學(xué)們已經(jīng)學(xué)會使用“仿真”方式來解決問題。其實(shí)計(jì)算機(jī)仿真是一種很好的思路。例如,實(shí)體機(jī)器人因?yàn)槌杀靖,難以普及,所以市場上出現(xiàn)了仿真機(jī)器人,也能讓初學(xué)者體驗(yàn)到機(jī)器人的搭建和傳感器應(yīng)用等功能。當(dāng)時間達(dá)到規(guī)定時間10秒時,游戲結(jié)束。
學(xué)生執(zhí)行如圖5所示操作。
在教師的引導(dǎo)下,學(xué)生對實(shí)現(xiàn)大魚游動的程序進(jìn)行了簡化,抽象出通過按鍵控制大魚橫縱坐標(biāo)值的變化,大魚吃小魚的場景,仿真為小魚碰到大魚時則消失,并抽象為Scratch功能塊——隱藏,計(jì)數(shù)變量自增1。學(xué)生在觸發(fā)事件的處理過程中,不斷使用簡化、仿真等計(jì)算思維的方法把現(xiàn)實(shí)問題轉(zhuǎn)化成Scratch的功能塊,從而達(dá)到利用計(jì)算機(jī)解決問題的目的。
● 利用糾錯優(yōu)化調(diào)試程序
計(jì)算思維是通過冗余、賭錯、糾錯的方式,在最壞的情況下進(jìn)行預(yù)防、保護(hù)和恢復(fù)的一種思維。當(dāng)學(xué)生在Scratch中編寫腳本進(jìn)行程序設(shè)計(jì)時,糾錯優(yōu)化是始終伴隨其中的。當(dāng)學(xué)生運(yùn)行程序發(fā)現(xiàn)與預(yù)期的情況不同時,糾錯的行為就開始了,他們會去尋找到底哪里出現(xiàn)了問題,糾錯就是通過測試和調(diào)試去實(shí)現(xiàn),而糾錯同樣是計(jì)算思維的重要概念之一。
教學(xué)片段3:
師:在調(diào)試中,發(fā)現(xiàn)小魚游動的畫面非常機(jī)械,如何改進(jìn)?
生:在小魚游動的程序中,添加 可以使小魚游動的畫面更加自如。
師:當(dāng)小魚隱藏后,游戲重新開始時,原先被吃掉的小魚不再出現(xiàn),那么如何修改?
生:在小魚初始化程序塊中添加。
師:上述實(shí)現(xiàn)的是一條小魚,實(shí)際情況中,應(yīng)該有好多小魚,那么如何修改?
生:其他小魚與第一條小魚的不同點(diǎn)是外觀不同(大小、形狀、顏色),相同點(diǎn)是功能相同(來回游動,碰到大魚消失)。
師:外觀不同,可以通過選擇圖庫中不同的角色,也可以復(fù)制原角色,利用Scratch自帶的圖片編輯工具填充不同的顏色區(qū)域。功能相同意味著腳本相同,可復(fù)制獲得,利用代碼復(fù)制可以簡化編程工作。調(diào)試運(yùn)行后,發(fā)現(xiàn)復(fù)制腳本能讓許多小魚具有相同的位置和狀態(tài)。這么多小魚不可能從同一點(diǎn)出發(fā),不符合實(shí)際情況。利用隨機(jī)數(shù)字模塊可以解決小魚起點(diǎn)出現(xiàn)在相同位置的問題。
【基于計(jì)算思維培養(yǎng)的Scratch教學(xué)論文】相關(guān)文章:
計(jì)算思維能力培養(yǎng)論文06-29
培養(yǎng)發(fā)散思維的地理教學(xué)論文07-22
數(shù)學(xué)解題思維培養(yǎng)的論文06-22
也談計(jì)算教學(xué)中學(xué)生思維品質(zhì)的培養(yǎng)教育論文06-30
以文本為載體,培養(yǎng)發(fā)散思維(教學(xué)論文)12-06
歷史教學(xué)中思維能力的培養(yǎng)論文06-29