李炳銳
【摘 要】計算思維培養(yǎng)是中小學信息技術教育領域研究的熱點。Scratch是一款可視化的編程工具,是培養(yǎng)中小學生計算思維的有效載體。本文首先結合計算思維的概念與內涵分析了Scratch程序設計課程中蘊含的計算思維,再以Scratch項目“迷宮尋寶”為例,對Scratch程序設計教學實踐中的計算思維培養(yǎng)進行了詳細描述。
【關鍵詞】計算思維;Scratch;程序設計
【中圖分類號】G434? 【文獻標識碼】A
【論文編號】1671-7384(2020)04-068-03
《普通高中信息技術課程標準(2017版)》明確指出信息技術學科核心素養(yǎng)由信息意識、計算思維、數(shù)字化學習與創(chuàng)新、信息社會責任四個要素組成[1]。其中,計算思維培養(yǎng)已經成為中小學信息技術教育領域關注的焦點,而程序設計教學是培養(yǎng)學生計算思維的有效方法之一。Scratch具有“低門檻、高界限、闊空間”的特點,是中小學開展程序設計教學的有效載體。
計算思維的概念與內涵
2006年,周以真教授將計算思維定義為運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[2]。2013年,英國南安普敦大學Cynthia Selby 和 John Woollard提出計算思維由算法思維、評估、抽象、分解、概括等要素組成[3]。
計算思維源于計算機學科,但并不是像計算機一樣思考,其本質是抽象與自動化,是人的思維,與人們的學習和生活密切相關,正如閱讀、寫作和算術一樣,是不可或缺的思維方式。
Scratch程序設計與計算思維
Scratch是美國麻省理工學院開發(fā)的一款可視化編程工具,與LOGO、Basic等代碼編程語言相比,其最大的優(yōu)勢是不需要學生記憶代碼,用鼠標拖動相應的指令塊到腳本區(qū)就可以輕松實現(xiàn)程序的編寫,大大降低了中小學生學習程序設計的門檻。
在Scratch程序設計課程中,學生需要對任務進行抽象和分解,理清不同角色之間的關系,再設計出解決問題的算法步驟,編寫腳本并對程序進行糾錯和優(yōu)化,最后對作品進行評價和拓展。利用Scratch進行程序設計的過程包含了計算思維的關鍵要素,這一學習和體驗的過程,也是學生計算思維能力得到培養(yǎng)的過程。
基于計算思維培養(yǎng)的Scratch教學案例
在基于計算思維培養(yǎng)的Scratch程序設計教學中,教師應當依據計算思維的關鍵要素來設計學習活動。下面筆者通過“迷宮尋寶”教學案例來分析如何在Scratch程序設計教學中培養(yǎng)學生的計算思維能力。
1.情境體驗
情境體驗的目的是通過教學情境的創(chuàng)設激起學生的探究欲望,并引導學生對較復雜問題進行梳理并提取出關鍵點。首先讓學生體驗“迷宮尋寶”小游戲,然后引導學生描述游戲規(guī)則:當按下鍵盤上的方向鍵,小貓就往相應的方向移動1步,當小貓碰到迷宮墻壁時需要回退相應的步數(shù)(這時玩家需要重新尋找路徑),直到小貓碰到寶物出現(xiàn)提示消息“闖關成功!”。
2.抽象建模
所謂抽象建模,是指通過忽略一些復雜的細節(jié)將問題轉變?yōu)檫m合在計算機中表示的數(shù)據結構和形式化的數(shù)學模型。抽象是解決問題的關鍵步驟,學會抽象可以更容易地找到解決問題的切入點。對于“迷宮尋寶”這個編程任務來說,游戲規(guī)則就是角色從迷宮入口出發(fā),避開障礙物,最后到達寶物的位置。迷宮可能有各種各樣的形式,但經過抽象建模,可以嘗試從迷宮是一條筆直的通道這種特殊情況入手,角色從起點出發(fā)一直移動到終點,碰到寶物即為完成任務。這樣,我們就很容易理清角色的行為以及不同角色之間的關系,為下一步的任務分解奠定基礎。
3.任務分解
計算思維中的分解指的是將一個大的問題重新闡述成一系列較小的可管理的問題。在Scratch程序設計教學中,筆者引導學生對每個角色的行為進行分解,并考慮角色之間是如何交互的,從而找到問題解決的關鍵點。學生對任務分解后發(fā)現(xiàn),“迷宮尋寶”任務實現(xiàn)的關鍵是小貓角色行走的控制及其碰到迷宮墻壁的處理。
(1)角色行走的控制。筆者引導學生進行分析發(fā)現(xiàn),玩家可以利用鍵盤上的方向鍵來控制角色的行走方向。進一步引導學生對任務進行分解:如果上移鍵被按下,將Y坐標增加;如果下移鍵被按下,將Y坐標減小;如果左移鍵被按下,將X坐標減小;如果右移鍵被按下,將X坐標增加。
(2)角色碰到迷宮墻壁的處理。學生經過分析得出結論:可以利用條件語句來進行判斷,即如果角色碰到迷宮墻壁時位置發(fā)生相應的改變。如何限制角色穿過墻壁呢?筆者引導學生進一步分解問題:如果向右行走時碰到迷宮墻壁,需要向左回退相應的距離使角色遠離迷宮墻壁,通過類比可以得到向左、向上和向下行走時的解決方案。
4.算法設計
算法是有窮規(guī)則的集合,是一系列解決問題的清晰指令,是計算思維中的重要概念。在經過抽象建模和任務分解后,學生已經能夠用自然語言對這個案例進行描述。但分支和循環(huán)很難用自然語言來描述清楚,因此,筆者借助流程圖引導學生進行算法設計。在自然語言描述的基礎上,筆者以小貓向右移動為例,給出以下流程圖。
流程圖的特點是直觀、結構清晰,能夠幫助學生更有效、更規(guī)范地對算法進行描述。同時,使用流程圖可以將復雜的問題直觀化,幫助學生加深對程序運行過程以及邏輯關系的理解,提高編寫腳本的效率。
5.程序實現(xiàn)
筆者引導學生按照算法設計環(huán)節(jié)的流程圖在Scratch中找到對應的指令塊并進行腳本編寫,在這個過程中,對腳本的糾錯和優(yōu)化是始終伴隨其中的。通過類比分析,學生編寫出小貓往其他三個方向移動的腳本。
6.評價拓展
評價是計算思維培養(yǎng)的關鍵要素之一,其貫穿于解決問題的全過程。在學生進行Scratch程序設計的過程中,筆者引導他們進行自我評價。同時,筆者引導學生對他人的作品進行評價:學生將完成的作品以“作品名稱+姓名+組別”的格式命名并發(fā)布到在線編程社區(qū),并對本小組其他成員的作品進行評分,最后每個小組推選出代表在全班進行展示和分享。在教學實踐中發(fā)現(xiàn),學生在評價和分享的過程中會吸取他人更好的創(chuàng)意、更優(yōu)的算法及程序思路,并對自己的項目進行了拓展,如增加倒計時功能、利用體感來控制角色的移動、設置不同的難度級別等。
Scratch程序設計避開了繁瑣枯燥的編程語法,是計算思維培養(yǎng)的有效載體。教師應充分利用其直觀有趣的特點,結合計算思維的關鍵要素,合理選擇教學內容與設計學習活動。本案例中設計的Scratch學習活動有情境體驗、抽象建模、任務分解、算法設計、程序實現(xiàn)、評價拓展等,每一個環(huán)節(jié)都滲透著計算思維的培養(yǎng),同時學生的問題解決能力得到了提升。當然,學生計算思維的培養(yǎng)需要在教學中進行長期有效的訓練,希望更多的教師關注計算思維,為社會培養(yǎng)出更多適應未來發(fā)展的人才。
注:本文系東莞市教育科研2017年度規(guī)劃課題“基于Scratch和計算思維的初中信息技術課堂教學研究”的研究成果,課題號:2017GH294
參考文獻
[1]中華人民共和國教育部. 普通高中信息技術課程標準[S]. 2018-01-16.
[2]WING J M. Computational thinking[J]. Communications of the ACM,2006,49 (3): 33-35.
[3]Selby C,Woollard J.Computational thinking:the developing definition[J].Special Interest Group on Computer Science Education,2014.
作者單位:廣東東莞外國語學校