馬富泰 遼寧省大連市甘井子區紅旗中心小學
《義務教育信息科技課程標準(2022年版)》(以下簡稱“新課標”)中將計算思維列為四大核心素養之一。其對計算思維的描述是:個體運用計算機科學領域的思想方法,在問題解決過程中涉及的抽象、分解、建模、算法設計等思維活動。那么,如何在小學信息科技教學中培養學生的計算思維呢?計算思維中的抽象、分解、算法、驗證、優化、遷移等要素又是如何在教學中體現的呢?下面,筆者以小學五年級圖形化編程《猜數字》一課為例,具體闡述。
新課標指出,學校應模擬真實的生活場景,讓學生在場景中解決問題,并能夠由此遷移到未來生活之中。模擬情境能夠充分調動學生學習的主動性和積極性,讓每個學生都主動參與到學習中去,為計算思維的培養奠定良好的基礎。
教師提問:“同學們,你們有沒有玩過‘猜數字’的游戲?誰愿意給大家表演一下?”教師邀請表演者A、B、C,他們各自的任務如下。A:先在紙上寫一個只有自己知道的1~100以內的整數,并說出猜數者的結果是大了、小了還是對了;B:根據A的提示在1~100之間猜數;C:在黑板上記錄B猜了幾次,如果達到限定的10次,說出提示語“很遺憾,下次繼續努力”。第一輪猜數的學生猜數時沒有技巧,以失敗告終。第二輪學生使用了猜數技巧,挑戰成功!教師順勢提出本節課的問題:能不能用程序編寫一個猜數字的程序?
計算思維中的抽象是指將現實中的對象轉為計算機可以處理的對象,將一個現實問題轉變為計算機可以處理的問題。本課中,如何將“猜數”轉變為計算機可以處理的對象就是計算思維中的“抽象”。
課堂中,筆者采用的方法是先讓學生說一說表演的哪一部分可以用編程中的命令來實現。學生自然而然地將大部分的對象轉變為程序中的命令,個別難以抽象的問題,教師可以讓學生合作探究,這樣更有利于計算思維的培養。
在抽象的過程中如果遇到很復雜的問題,教師可以引導學生對問題進行分解。計算思維中的分解是指將一個復雜的大問題分解為若干個易于解決和實現的小問題。本節課中的“四次判斷”對于剛升入五年級的學生來說比較難,教師可以在黑板上用圖示法將此問題分解(如圖1),這樣不但解決了難點,理順了邏輯順序,而且為進一步提煉算法打下了基礎。
算法是解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制,是計算思維的核心要素之一。小學階段主要是讓學生了解日常生活中的算法,知道任何一個問題都有不同的解決方案,并能根據實際需要選擇最優方案。如何用程序來描述“猜數字”的過程?經過一系列的抽象與分解,學生初步明確了如何編寫程序。由于學生的思維水平不盡相同,編程中難免會出現各種各樣的問題,此時教師不要急于提供答案,可以新課標“素養導向”為引領,采用小組合作探究、觀察流程圖(如圖2)、補充流程圖、繪制流程圖等方法,促進學生的計算思維進一步發展。
驗證優化是培養計算思維不可或缺的重要環節。新課標指出,具備計算思維的學生,能夠嘗試模擬、仿真、驗證解決問題的過程,反思、優化解決問題的方案。由于思維的慣性,學生很難檢查出哪個命令或哪一部分程序有問題。筆者給出的驗證方法是:顯示變量a,在知道答案的前提下逐一驗證程序中的四次判斷;請同組學生幫忙測試;與流程圖對照檢驗等。通過多種方法驗證,學生找出了自己的錯誤,不但完善了程序的設計,而且促進了計算思維的發展。
學生通過不斷嘗試后發現用“減半法”猜數最快,既然用“減半法”猜數字很快,那么計算機程序又是如何運用“二分查找”法來猜數字的呢?逆向推理對學生的計算思維有了更高的要求,在推理驗證的過程中不但探究了“二分查找”算法的算理,而且更好地培養了學生的計算思維。
課堂上,教師先演示“二分查找”法的猜數程序,讓學生感知其查找過程,激發求知欲。在教學算理的過程中,教師讓10位學生用1~10的數字卡片模擬二分查找過程,即先將計算思維形象化,再將直觀形象的表演進行抽象概括,從而培養學生的計算思維向更深層次發展。10張卡片按序排列(說明二分查找的前提是一組有序數列),先查找哪個數?數字5是如何計算出來的呢?討論后得出結論:中間數=向下取整([最小數+最大數)/2]。找到中間數后在卡片上做個標記,將中間數與目標數進行比較,判斷是“大了”“小了”還是“對了”。如果“小了”,那么就將1~5的卡片放下,表示排查出一半;接著查找剩下部分的中間數,這時最小數的變量發生了變化(最小數=最小數+1),再次計算中間數后,同樣做標記,同樣排查出一半。如果“大了”,最大數的變量發生了變化(最大數=最大數-1)。以此類推。最后,教師讓學生把標記過的中間數舉起來,進行算理總結:二分查找就是通過不斷地查找中間數,用中間數與目標數進行比較判斷,從而逐步縮小范圍,直到“中間數=目標數”查找成功為止。有了算理的支持,再加上教師準備的教學支架,程序驗證“二分查找”就迎刃而解了。
新課標指出,具備計算思維的學生能將驗證、優化后的解題方案遷移運用于解決其他問題。本節課可以通過練習環節引導學生將所學知識應用到學習生活中,筆者設計了三道知識遷移練習題(如圖3)。
教師還可以引導學生將本節課的某一個知識點遷移到其他程序編寫中。例如,“回答”與“變量”的比較,這種命令就廣泛地應用于“密碼驗證”“100以內加減法”“知識問答”等程序中。課堂上教師要充分挖掘可遷移的知識點,積極促進學生知識的有效遷移。