張淑紅
【摘 要】算法是信息科技的課程標準六條邏輯主線之一。在課堂中我們可以運用自然語言描述算法、流程圖設計算法、編程驗證算法、在生活中的應用算法四步驟逐步培養學生的算法思維,提升學生分析問題和解決問題的能力。
【關鍵詞】算法思維;分析問題;描述算法;流程圖
【中圖分類號】G434? ?【文獻標志碼】A
【論文編號】1671-7384(2024)06-061-02
2022版信息科技課程標準第三學段(5~6年級)“身邊的算法”模塊指出:“本模塊以身邊的算法為載體,使學生了解利用算法求解簡單問題的基本方式,培養學生初步運用算法思維的習慣,并通過實踐形成設計和分析簡單算法的能力。”[1]算法是計算機科學的核心問題所在,算法思維可以理解為發現并確定問題、分析問題的構成要素,對問題進行分析分解,為問題的解決提供相對有效的途徑和方法。新課標進一步擴展了算法的范疇,指出算法教學的基本思路是從“計算機算法”發展到“身邊的算法”。“身邊”有兩方面的要求:一方面是通過算法,編寫計算機程序解決一些問題,這是“用”計算機解決身邊的問題;另一方面以算法的思路,形成與優化問題解決的步驟,這是“以”計算機編程等的工程思維方式解決身邊更多的問題,是計算思維的體現[2]。
那如何在平時課堂中落實學生算法思維的培養呢?小學五年級的學生認知發展處于從具象思維到抽象思維的過渡時期,結合學生的思維特點,我們可以選取貼近學生生活的例子,創設真實情境,運用自然語言描述算法、流程圖設計算法、編程驗證算法、在生活中的應用算法的步驟展開教學,培養學生的算法思維。描述算法主要是指梳理真實問題解決步驟,然后用自然語言描述;設計算法是指提取自然語言的關鍵詞,把問題解決步驟轉換為更符合計算機處理問題步驟的邏輯圖示;驗證算法是指運用圖形化編程把邏輯圖示轉換成計算機小程序;應用算法是指運用學到的算法遷移到更廣泛的問題解決之中。
本文以“猜數游戲”為例具體闡述課堂如何實施教學。“猜數游戲”是編程學習中一個非常經典的游戲,趣味性足,可以激發學生的探究興趣。在這個游戲中有明確的輸入(猜測的數字)和輸出(反饋“大了”“小了”“正確”),流程清晰簡單,比較適合作為算法學習的入門課。這個游戲設計算法的過程中需要應用到分支和循環兩種結構,設計算法的過程可以提升思維的縝密性,培養學生嚴謹的思維習慣。同時猜數游戲中還包含著計算機經典算法——二分法,可以讓學生在玩游戲的過程中去理解二分法,同時理解二分法在生活中的應用。
親歷游戲,用自然語言描述算法
計算機解決問題時,算法通過程序能將一定規范的輸入在有限的時間內轉化為所要求的輸出。因此,在分析簡單問題時,學生首先要能對問題進行描述,其次對問題的條件進行分析,最后明確求解問題的目標結果[3]。
上課伊始,教師出示游戲規則:老師隨機在紙上寫一個數,請學生來猜,老師會說“回答正確”“大了”“小了”,學生可根據老師的回答再次猜測,“回答正確”后游戲結束。接著教師提出問題,請學生用自己的語言描述一下游戲的步驟。學生1回答:老師寫一個數字、學生猜測、老師回答、游戲結束;學生2補充:我認為他的描述不太完整,缺少一個步驟,應該是老師寫一個數字、學生猜測、老師回答“大了”“小了”或“回答正確”、學生再次猜測直,到答對為止、游戲結束。
本教學環節教師先跟學生玩猜數游戲,當學生對游戲有了一個整體感知的時候,教師再引導學生用自己的語言描述猜數游戲的步驟,促使學生深入思考游戲的整個過程,抽象出猜數游戲的關鍵步驟。總結梳理的過程讓學生對猜數游戲有了全面的認識和系統的分析,從抽象到具象,提取出了問題的關鍵特征,從而促進學生思維的發展。
合作探究,運用流程圖設計算法
算法是通過明確的、可執行的操作步驟描述的問題求解方案。設計算法需要學生在明確輸入輸出的基礎上,將問題的求解方案設計為明確的、可執行的操作步驟。熊璋教授曾指出,信息科技課程不應該局限于讓學生對現有程序設計語言的掌握,而應讓學生學習使用計算機解決問題的思維和實踐方法。
本環節教師再次提出問題:能否用流程圖來描述一下猜數游戲的過程。師生先一起梳理游戲的關鍵步驟:教師出數字,學生猜數字,教師回答大了、小了或正確,重復猜測直到答對為止;再思考這些步驟對應到Kitten里面是哪些積木塊,學生能很快思考出“教師出數”對應設置一個變量為隨機數,“猜數字和回答”對應“詢問……并獲得答復”積木塊,重復猜測需要用到重復積木塊,判斷的過程需要用到“如果……否則……”。至此,學生完成了由自然語言向計算機語言的轉換。這正是促使學生分解、抽象、建模,用計算機解決問題的思維去思考問題的過程。
接著教師出示流程圖模塊,要求學生小組合作運用在線流程圖編輯軟件繪制猜數游戲流程圖并展示匯報。學生在繪制流程圖的過程中提出疑問:為什么沒有“猜小了”這個積木塊?教師引導學生可以自己添加并思考這個積木塊是否必要。學生在匯報的過程中出現一正一誤兩種流程圖。教師引導學生思考分析兩種流程圖所代表的計算機程序執行方式,指出計算機在執行任務時只能逐步判斷,不能一下子判斷三種情況,所以錯誤的流程圖不符合計算機語言的執行流程;思考的過程讓學生把現實問題的步驟與計算機解決問題的步驟對應起來,逐步養成算法思維。最后教師再次提出問題“猜小了”這個積木塊是否必須,學生意識到除了判定“猜對了”“猜大了”就只有第三種情況,因此非必須。在修正流程圖的過程中,學生學會以計算機解決問題的方式去分解問題、設計算法,從而促進了學生思維的發展。
動手實踐,運用圖形化編程驗證算法
從計算機解決問題的途徑來看,學生需要將形式化的描述轉變為可以實現的結果。編寫程序、執行程序是驗證算法實現的一種方式。從學生的認知發展角度來看,學生需要將描述算法時的推演結果轉變為編程的預測結果,然后執行程序驗證結果,從而完成從自然語言到程序設計語言的過程。
當猜數游戲流程圖拼完整后,教師提出問題:根據流程圖嘗試用Kitten編寫猜數小程序。教師指導學生分析算法流程圖中每個步驟對應的積木塊,提供編寫好的積木塊,讓學生動手拼接在一起,降低編寫程序的難度。學生動手拖動組合完成猜數小游戲的程序。編完后,試玩的過程會出現問題,如有的小組只能猜測一次,有的小組每次猜測的反饋是相反的,該說“大了”卻說“小了”。教師指導學生對照流程圖修改程序錯誤,讓學生建立流程圖描述算法與程序設計語言執行算法的聯系,對計算機執行算法有個整體的感知。
拓展提升,在生活中應用算法
猜數游戲的猜數技巧涉及二分法。二分法在生活中有著廣泛的應用。教師提出問題:如何用盡量少的次數猜中數字?學生很快想到要先猜中間數字,并說出可以把猜數的范圍縮小一半的想法,教師適時提出二分法。了解二分法的概念后,教師拋出電線電纜故障問題,100公里長的電纜中間出現故障,如何快速找到故障點,學生根據二分法作出反應,先從中間50公里處開始找,然后逐步縮小范圍,只需經過6次檢測就可以把故障點鎖定在0.2公里之內了。由猜數游戲到二分法,讓學生由了解算法、掌握算法到在生活中以算法的思維去解決真實問題,體現了更高的學科價值與作用。
參考文獻
李鋒. 新版課程標準解析與教學指導·小學信息科技[M]. 北京:北京師范大學出版社,2022.
武健,康小微.從算法、思維到問題解決實踐:三步轉譯編程教學法引發的思考[J]. 中國信息技術教育,2023(15): 9-11.
黃榮懷,熊璋.義務教育信息科技課程標準(2022年版)解讀[M]. 北京:北京師范大學出版社,2022.