查文庫>論文> 基於計算思維培養的Scratch教學論文

基於計算思維培養的Scratch教學論文

基於計算思維培養的Scratch教學論文

  以“想象、創作、分享”為主題的Scratch,趣味性、易學性、實踐性、創新性都適合中小學生,特別是作為簡單易學的程式設計工具,用拖動指令塊代替敲程式碼,學生可以避開程式設計語言語法的學習和除錯,集中精力對問題進行求解,這為學生計算機思維的培養提供了便利條件。筆者以《大魚吃小魚》一課為例,就如何培養學生的計算思維同大家一起探討。學生此前已經學會了Scratch中常見的指令塊,本節課是Scratch的綜合應用課。課程任務是:在10秒鐘內記錄大魚吃掉小魚的總條數。

  ● 利用面向物件的方法抽象出問題求解的模型

  計算思維作為一種思維過程,很難用知識描述的方式顯性呈現出來。其中方法是計算思維的重要內容。計算思維的方法可分為數學方法和工程方法,其中數學方法涉及抽象、遞迴、證明、形式化表達等,工程方法包括系統方法、分治法、面向過程和麵向物件方法等。教師透過這兩類方法的傳授,把有關計算思維的相關思維特徵和方法分解到每一個具體的教學內容之中。

  “大魚吃小魚”遊戲實現起來比較複雜,因為它不是一個結構化很強的問題,沒有明確要求先做什麼再做什麼,前後邏輯性不是很嚴密,小魚在遊,大魚也在遊,時間還在走,當小魚碰到大魚,要被吃掉,其他小魚依然不受影響,繼續遊,時間繼續走。程式中出現了幾個並行的流程時,如何進行任務統籌呢?如何貼近實際進行程式的最佳化提高效益呢?利用求解的順序步驟很難解決問題,這需要從另外一個思路思考問題求解的方法——面向物件的方法。把問題抽象出“物件+觸發事件”模型,分析遊戲中涉及哪些物件,這些物件的初始狀態是什麼,哪些物件是靜態的,哪些物件是動態的,動態物件的激發事件是什麼,除錯執行後,是否達到最初的預期,沒有達到如何最佳化。學生從具體的事例中抽象出計算機能夠解決的模型,從而達到解決問題的目的。

  教學片段1:

  師:遊戲中有哪些物件?

  生:一條大魚,許多條小魚,背景,被吃小魚計數器、計時器。

  師:它們初始狀態是什麼?

  生:計數器初始化為零,計時器初始化為零。舞臺背景選擇與“海底世界”類似的畫面;大魚初始位置為隨機(如圖1);小魚初始狀態為遊動(如圖2)。

  師:分析完後,有哪些物件處於初始狀態?並思考將要發生哪些事件?

  生:事件1,當鍵盤上的方向鍵被按下的時候,大魚的遊動會發生變化;事件2,當大魚碰到小魚的時候,小魚被吃掉,被吃小魚計數器自增1;事件3,如果計時達到10秒,遊戲結束,並顯示被吃小魚的條數。

  在Scratch教學中,如果教師不把分析的過程、思考的過程及最佳化的過程呈現出來,那麼學生也僅僅獲得知識,因缺乏必要的思維訓練,他們也無法獲得舉一反三、觸類旁通的能力以及普適的技能。讓學生從本質上和全域性上來建立對問題的解決思路,便於學生進入到類似問題的求解中。

  ● 利用約簡、模擬等方法抽象出事件的處理過程

  計算思維的本質是抽象和符號化,在Scratch數字作品創作過程中,無論是動畫故事的編制還是遊戲的開發,都需要把具體的問題抽象成符號或物件,並使用指令塊把相應的問題“計算”出來。Jeannette M.Wing教授認為這種能將一個問題清晰、抽象地描述出來,並將問題的解決方案表示為一個資訊處理流程的思維過程就是計算思維的訓練過程。計算思維是透過約簡、嵌入、轉化和模擬等方法,把一個看似困難的.問題重新闡釋成一個人們知道怎樣解決的問題。計算機模擬大魚吃小魚這一現實問題,怎樣讓學生經歷一個透過約簡、嵌入、轉化、模擬等方式進行化難為簡的過程,體會計算思維的本質——抽象和自動化,是計算思維培養的突出表現。

  教學片段2:

  師:大魚(碰到鍵盤上的方向鍵)觸發什麼事件?

  學生操作如圖3所示。

  師:如何模擬大魚吃掉小魚的情境。現實中看到的場景是大魚張開嘴巴,小魚消失……

  生:可以使用“碰到”大魚的時候,小魚“隱藏”的方式,模擬小魚被吃掉的場景(如圖4)。

  師:很好,同學們已經學會使用“模擬”方式來解決問題。其實計算機模擬是一種很好的思路。例如,實體機器人因為成本高,難以普及,所以市場上出現了模擬機器人,也能讓初學者體驗到機器人的搭建和感測器應用等功能。當時間達到規定時間10秒時,遊戲結束。

  學生執行如圖5所示操作。

  在教師的引導下,學生對實現大魚遊動的程式進行了簡化,抽象出透過按鍵控制大魚橫縱座標值的變化,大魚吃小魚的場景,模擬為小魚碰到大魚時則消失,並抽象為Scratch功能塊——隱藏,計數變數自增1。學生在觸發事件的處理過程中,不斷使用簡化、模擬等計算思維的方法把現實問題轉化成Scratch的功能塊,從而達到利用計算機解決問題的目的。

  ● 利用糾錯最佳化除錯程式

  計算思維是透過冗餘、賭錯、糾錯的方式,在最壞的情況下進行預防、保護和恢復的一種思維。當學生在Scratch中編寫指令碼進行程式設計時,糾錯最佳化是始終伴隨其中的。當學生執行程式發現與預期的情況不同時,糾錯的行為就開始了,他們會去尋找到底哪裡出現了問題,糾錯就是透過測試和除錯去實現,而糾錯同樣是計算思維的重要概念之一。

  教學片段3:

  師:在除錯中,發現小魚遊動的畫面非常機械,如何改進?

  生:在小魚遊動的程式中,新增 可以使小魚遊動的畫面更加自如。

  師:當小魚隱藏後,遊戲重新開始時,原先被吃掉的小魚不再出現,那麼如何修改?

  生:在小魚初始化程式塊中新增。

  師:上述實現的是一條小魚,實際情況中,應該有好多小魚,那麼如何修改?

  生:其他小魚與第一條小魚的不同點是外觀不同(大小、形狀、顏色),相同點是功能相同(來回遊動,碰到大魚消失)。

  師:外觀不同,可以透過選擇相簿中不同的角色,也可以複製原角色,利用Scratch自帶的圖片編輯工具填充不同的顏色區域。功能相同意味著指令碼相同,可複製獲得,利用程式碼複製可以簡化程式設計工作。除錯執行後,發現複製指令碼能讓許多小魚具有相同的位置和狀態。這麼多小魚不可能從同一點出發,不符合實際情況。利用隨機數字模組可以解決小魚起點出現在相同位置的問題。