王 芳 陳仕洪
《義務教育信息科技課程標準(2022年版)》指出,計算思維是指個體運用計算機科學領域的思想方法,在問題解決過程中涉及的抽象、分解、建模、算法設計等思維活動。具備計算思維的學生能對問題進行抽象、分解、建模,并通過設計算法形成解決方案;能嘗試模擬、仿真、驗證解決問題的過程,反思、優化解決問題的方案,并將其遷移運用于解決其他問題。[1]
國際教育技術協會(ISTE)聯合計算機科學教師協會(CSTA)共同給出計算思維操作性定義:計算思維是一個問題解決的過程,該過程包括確認問題、分析數據、抽象、設計算法、選擇最優方案、遷移推廣6大要素。
結合信息技術解決一般性問題的具體特點,我們認為,一般性問題解決中的計算思維培養應該具備若干特定要素(如下頁表1所示)。

表1 一般性問題解決中的計算思維培養應具備的要素
中小學信息技術非程序設計課程內容存在大量計算思維培養的核心要素。北京市特級教師李冬梅認為,中小學信息技術教學需要從學科價值、思維方式的角度重新組織教學內容,學生即使不編寫程序,只是運用現成的技術和軟件工具去解決問題,也屬于計算思維的參與過程。[2]
也就是說,在表格處理、動畫制作、網頁制作等軟件學習中,學生借助工具解決問題,感受計算機處理問題的過程,可以提升應用信息技術解決問題的意識,發展計算思維。
本研究的一般性問題解決指在中小學信息技術課程學習過程中,使用計算機應用軟件計算思維解決問題、完成任務、設計項目等。一般性問題解決的步驟、方法究竟如何體現計算思維培養的基本要求呢?
中小學信息技術課程教學往往采用遞進式的設計,各個任務的設計均可以滲透計算思維的培養,或者說可以按照計算思維培養的要求去設計學習任務。另外,中小學信息技術課程中不同應用軟件都有其特有的功能和操作特征,并且對應不同類型問題的解決,其培養計算思維的內容和方法也各有側重。下面以表格數據處理為例闡述如何在一般性問題解決中培養計算思維。
表格數據處理是中小學信息技術課程中的常見內容,本課例《公式與函數》選自蘇教版教材《初中信息技術》第3 章第2 節。本課的主要任務是學習公式及常用函數的使用,是后期學習數據挖掘與分析的基礎。本案例圍繞在電子表格中模擬拋硬幣實驗展開,在明確問題的基礎上分析問題、抽象數據;再選用合適的結構來組織數據,從而將問題轉換成可以用計算機解決的問題,為自動化執行奠定基礎;最后遷移推廣,靈活運用所學知識解決問題。
根據《義務教育信息科技課程標準(2022年版)》對計算思維的解讀,問題界定是關鍵要素之一,是指向計算思維培養的問題解決的起點。
本節課的主要任務是用電子表格模擬拋硬幣實驗。學生要先明確拋硬幣實驗的內容,以及在拋硬幣實驗中會得到哪些結果,需要統計哪些結果,拋硬幣實驗的目的是什么,等等。唯有對課堂問題有清晰的認識,才能更好地設計問題解決方案,感受計算機解決問題的過程,發展計算思維。
根據本研究對計算思維的關鍵要素的規定,解決問題的過程先是界定問題,即明確一個能夠用計算機來處理的問題,再針對該問題分析和組織數據,設計合理的算法以實現自動化解決方案,最后對解決方案進行總結。
通過對問題的確認,讓學生明確本節課的主要目標,即用電子表格來模擬拋硬幣實驗。有了明確的問題,下一步需要分析如何用電子表格工具來模擬拋硬幣實驗的過程,收集實驗中可能需要收集的數據。
在表格中模擬拋硬幣的過程可以分解為:
1.規劃工作表,設計合理的字段名;
2.生成隨機數表示硬幣是正面向上或者反面向上(0表示反面,1表示正面);
3.模擬多次拋硬幣過程;
4.統計正面向上和反面向上的次數;
5.計算正面向上和反面向上次數的比值。
為此,我們設計了如下問題鏈來引導學生思考,尋找解決方案(如表2所示)。

表2 拋硬幣實驗問題鏈
通過以上幾個問題,學生明確了拋硬幣實驗中需要用到的數據,進而思考這些數據如何產生,如何用電子表格來存儲,如何統計匯總正面(反面)向上的次數等問題。
在此環節中,通過對問題的分析,學生能夠明確問題解決過程中需要收集和處理的數據,明確分析數據的目的是為了合理地組織數據和為實現數據的邏輯化組織奠定基礎。
分析數據的目的是結構化組織數據,并以此設計解決問題的算法。在上一個環節中,學生已經分析了模擬拋硬幣實驗中可能產生的數據,接下來應對照工作表的規劃,設計合理的工作表標題名和字段名。
本環節的主要目的是將問題抽象成表格。唯有經過抽象,才能將現實問題轉化成可以用計算機解決的符號或系統,為實現自動化計算奠定基礎。
自動化解決是計算思維的核心,只有將問題轉換成可以用計算機或其他工具解決的方案才能體現計算思維的意義。本案例中主要是生成隨機數,將1(0)與正面(反面)對應起來,并統計出正面或反面的次數,主要借助RANDBETWEEN(最小整數,最大整數)、IF(測試條件,真值,假值)以及COUNTIF(數據區,條件)三個函數來實現。這一環節讓學生經歷自動化計算的過程,感受自動化計算的優勢,使學生樹立用計算機解決問題的意識,形成計算思維。
將所學知識推廣應用,是遷移能力的體現。本環節依然圍繞拋硬幣實驗展開,提出一個現實問題:一次拋硬幣是否能夠代表概率問題?并基于此設計了以下兩個子問題:
問題1:如何模擬多次拋硬幣實驗?
問題2:如何統計多次拋硬幣實驗中正面向上和反面向上的次數?
這個環節主要考查的是學生對已有知識填充柄工具的應用,以及COUNTIF(單元格區域,“正面”)函數的應用。本節課中學生已經學會了如何統計一次拋硬幣的實驗結果,在此,推廣至統計多次拋硬幣的結果,加深了對COUNTIF函數的理解,實現了對課堂學習內容的檢驗,也是對該技能的遷移應用。
本節課圍繞拋硬幣實驗展開,經歷計算思維培養的主要過程,即界定問題、分析數據、抽象特征、結構化組織數據、自動化解決方案和遷移推廣(如圖1 所示)。在該項目實踐中學生感受計算機處理問題的過程,在拋硬幣實驗的現象描述中培養學生問題分析能力,在工作表的規劃中培養學生的抽象思維能力,在數據處理中培養學生的算法實現能力,在對拋硬幣實驗完整過程的總結歸納中培養學生的遷移應用能力。

圖1 計算思維培養的過程