任春霞 浙江省紹興市上虞區實驗小學
《義務教育信息科技課程標準(2022年版)》明確指出信息技術學科核心素養由信息意識、計算思維、數字化學習與創新、信息社會責任四個要素組成。[1]計算思維是個體運用計算機科學領域的思想方法,在形成問題解決方案的過程中產生的一系列思維活動,由算法思維、評估、抽象、分解、概括等要素組成。本文以浙江攝影版小學信息技術教材(2020)五年級下冊第二單元第7課《詢問交互》為例,進行基于計算思維培養的課堂教學探究與實踐。
本課以觀看《達拉崩吧》的音樂動畫片段引入。《達拉崩吧》是學生感興趣的歌曲之一,用學生感興趣的歌曲引入并以此為主題,可以讓學生的興趣保持較強的穩定性。在興趣的驅使下學生可以一步步深入探索,克服困難解決問題。此音樂動畫片段的歌詞及劇情如圖1所示。

圖1
動畫片段中交待了故事發生的背景,通過國王和勇士的對話、勇士和惡龍的對話引出課題“詢問交互”。在勇士與惡龍交談之后動畫片段戛然而止。“接下來的故事是怎么發展的呢?我們來看一位小導演的設計。”筆者打開根據《達拉崩吧》動畫設計的圖形化編程小游戲——“拯救公主”,并與學生一起玩游戲。
通過玩游戲可以了解游戲的規則:公主被惡龍抓進了山洞,惡龍守在山洞口,勇士要救出公主,必須回答惡龍提出的5個問題。答對了給出答對提示:惡龍身體變小并離開山洞一段距離;答錯了給出答錯提示:惡龍身體變大,位置不變。
利用計算思維解決問題,是指運用計算機領域的思想方法,對問題進行抽象、分解、建模,并設計算法形成解決問題的方案,且通過算法的實現、測試來驗證方案的有效性,最后再反思優化方案。抽象是此過程中的第一步,也是至關重要的一步。抽象是指從眾多事物中抽取出共同的、本質性的特征,而舍棄其非本質特征的過程。[2]抽象的過程就是根據要解決的問題,抓取事物中與問題解決有關的重點屬性,忽略與問題解決無關的部分屬性。建模是通過抽象后,將問題轉變為適合在計算機中表示的數據結構和形式化的數學模型。“拯救公主”游戲抽象后建立的模型如圖2所示。

圖2
根據皮亞杰認知發展階段論,五年級學生的思維處于具體運算階段,此時的學生能從一個概念的各種變化中抓住實質,但思維狀態還離不開具體事物的支持,正處在從以具體形象思維為主逐步過渡到以抽象思維為主的過程中,且此階段的思維運算是零散的,還不能組成一個完整的系統。所以,對五年級的學生來說抽象和建模較為困難,于是筆者以三個簡單具體的問題引導學生:①游戲中的角色有哪些?②這些角色分別做了什么事情?③這些角色做了事情之后有什么變化?
在回答了這三個問題之后,可以得知有“勇士”“惡龍”“用戶”這三個角色。其中用戶即勇士,勇士的行為就是回答問題。惡龍的行為是:①提出問題(可以提出一個或多個問題);②設置正確答案;③判斷勇士的回答。由此可知,主要行為集中在惡龍這個角色身上,同時,惡龍還有相關屬性的變化,如語言、造型、大小、顏色、位置等。

圖3
計算思維中的分解是指將一個比較復雜的問題分解成若干個容易解決和實現的小問題。在這個游戲中,惡龍的行為最為復雜,讓學生直接編寫腳本較為困難。根據對模型的分析可以由大到小將其分解成4級問題(如下頁表),其中惡龍的第3級和第4級問題均可自由發揮。將問題分解之后,便可根據問題逐個設計算法,編寫程序。
算法是解決問題的方法和步驟,經過建模和分解之后,學生已經可以用自然語言清楚地描述游戲的流程。自然語言雖然通俗易懂,但書寫起來較為繁雜,對復雜問題需要用很多文字才能表達清楚,無法做到一目了然。與自然語言相比,流程圖更加簡潔明了,形象直觀,便于查看和參考。于是,筆者提供流程圖圖框,請學生討論分析并將相關內容填進圖框內,引導學生畫好流程線,一起將自然語言轉化為流程圖。學生可以根據流程圖圖框(如圖3)到對應的區域尋找代碼積木塊。在流程圖的指引下,腳本編寫便水到渠成(如上頁圖4)。其中,“所提問題及答案”“答對提示”“答錯提示”由學生自主創造有趣的問題并設置對應提示。

圖4

有流程圖的引導,學生能夠自主編寫腳本,但由于個體差異,不是所有學生都能夠順利進行,于是筆者提供以下建議引導學生自主獲取知識:①鼠標指向積木塊,根據指令文字提示操作指令,了解相關指令功能;②參考課本獲取操作知識點;③查看教師提供的微課獲取相關知識點;④與同學和教師交流獲得知識和方法。
以上建議層層遞進,大部分學生可以通過尋找相關提示和參考課本完成操作,少部分學生需要查看教師提供的微課,極個別學生需要同學和教師的幫助。
調試就是對程序進行測試,模擬用戶使用的狀態,找到程序中的不妥與錯誤之處并對應進行修改完善,讓程序變得更加完美。
本課中學生在調試時發現一個問題:當游戲中的問答結束后,如果想重新玩游戲,惡龍并不會自動回到最原始的狀態,即無法重新玩游戲。為了解決這個問題,學生思考并提出需要將游戲進行初始化設置。在進行初始化設置時應根據惡龍的大小、形狀、顏色、位置等做相應的初始狀態設置,每位學生根據自己游戲中惡龍的實際情況進行初始化腳本編寫(如圖5)。

圖5
在評價環節,筆者請學生互玩游戲,找找對方的游戲和自己的游戲的不同,在互玩的過程中拓展了學生的思維,并進一步激發了學生的靈感。學生在課后繼續討論交流游戲故事,思考實現過程,在碰撞中推進游戲進程,在設計游戲中提高了思維的深度和廣度,這樣既促進計了計算思維的形成,也發展了自主學習和深入學習的能力,使信息素養得以提升。
編程教學可以使學生逐漸養成良好的思維習慣,讓學生能夠在真實情境中發現問題,提取問題的基本特征,對問題進行抽象、分解、建模,制訂解決方案,并執行優化方案,是培養學生計算思維的有效途徑。作為信息技術教師應讓學生能夠使用計算機科學領域的思想方法去解決問題并能有意識地總結解決問題的方法,將其遷移到其他問題的求解中,只有這樣才能促進學生核心素養的形成與發展,使學生具有能夠適應終身發展和社會發展需要的必備品格和關鍵能力。