丁潔月
《普通高中信息技術課程標準(2017年版)》(以下簡稱《新課標》)凝練了四個維度的學科核心素養——信息意識、計算思維、數字化學習與創新、信息社會責任,很好地體現了學科的科學本質和育人價值,其中特別強調培養學生的計算思維能力。程序設計是培養學生計算思維的有效途徑,但很多學生在實際應用中會無從下手。筆者認為,這主要是因為學生在腦海中沒有相關的表征,不知道要做什么、怎么做。下面,筆者結合自己的教學實踐,就如何借用流程圖在程序設計教學中發展學生計算思維談一些看法。
計算思維和流程圖的映射關系
在程序設計教學中,最重要的不是寫程序,而是設計。這就好比建筑、機械等行業要畫設計圖、施工圖,程序設計的思路也有必要以圖的形式畫出來。流程圖的使用和計算思維要素之間的關系,如右表所示。
顯然,流程圖是學生理清思路、輔助程序設計、發展計算思維的一種有效工具。在日常的程序設計教學中,學生畫好流程圖,練好基本功,能科學有效地輔助抽象建模、幫助綜合資源求解問題,進而促進知識的遷移運用,這也是計算思維培養的內涵所在。
流程圖在程序設計教學中的應用
1.課前構建流程圖,科學識別抽象建模
計算機歸根到底執行的是數值計算,只有將現實問題轉換成數學問題才能通過計算予以解決,也就是說,要將現實問題抽象為“可計算”問題。而設計與分析的過程就是不停地進行抽象和封裝,并確定各個系統實體的細節。因此,在程序設計教學中,教師要提出問題,讓學生圍繞問題進行抽象、建模,然后引導學生用流程圖把抽象出來的內容進行關聯。在此過程中,可設置頭腦風暴等活動,在激發學生興趣的同時幫助學生構建思維框架,培養學生系統分析、抽象思維的能力。下面,筆者以《選擇排序》的第一課時為例進行教學實踐。
環節一:教師播放動畫,激發學生學習興趣,鼓勵學生觀察分析。
環節二:頭腦風暴,引導學生歸納總結,畫出對應流程圖(如下頁圖1)。
在傳統教學中,教師一般會直接告知學生算法思想,這樣會導致學生因缺少分析、概括的鍛煉而忽略了其中的邏輯聯系。因此,在課前,教師通過引導學生畫流程圖的辦法迅速進入主題,對主題內容進行梳理,理清其邏輯結構,這樣能有效激活學生的背景知識,有助于他們快速地檢索相關知識以及準確地進行分析判斷。
2.課中完善流程圖,綜合資源求解問題
結構化程序設計的觀點認為,任何復雜的算法,都可以以順序、選擇、循環這三種基本結構(如圖2)作為“建筑單元”,對問題進行抽象和構造。通過“自頂向下,逐步求精”的程序設計方法,教師要將大的問題劃分為小問題,將復雜問題變為相對簡單的問題,找出問題的關鍵、重點,然后通過帶有語義規則的符號定性、定量地去描述,進而通過編程實現自動化。經過課前的準備活動,學生原有的知識和認知結構進入了激活狀態,對程序設計也有了一定的把握,具備了“逐步求精”的心理狀態。教師將課中活動以提問的方式展開,要求學生完善相應的流程圖,如下頁圖3、圖4所示。
問題1:既然是重復找最值,若有n個數,需要重復幾遍?
問題2:每遍怎么找出最值?
問題3:兩數互換怎么實現?
在設計過程中,流程圖記錄并顯性化呈現學生的思維發展變化。通過細化、完善程序設計,人腦對計算實施原理與過程進行思考,用計算的方法來規范,并運用計算來設計系統,實現問題求解。
3.課后運用流程圖,舉一反三遷移應用
流程圖是以圖表表征的形式幫助學生理清思路、構建思維。在程序設計中,設計是否清晰合理,對問題的解決非常重要。學生只有自己的思路清晰了,才能夠有條不紊、高效高質地完成程序設計。因此,筆者嘗試設計有利于促進學習遷移的活動,幫助學生牢固掌握并深入挖掘相關知識的內涵。
(1)運用流程圖輔助算法優化
在介紹完選擇排序的相關知識后,筆者趁熱打鐵,引導學生進一步對算法進行設計,嘗試優化。教師提出:同樣解決排序問題,有不同的算法。雖然結果一致,但有的算法會更好更高效,如堆排序、歸并排序或其他排序,請思考這些排序算法有何區別。學生課后查資料,思考,完成流程圖的設計并做相關分析。
(2)運用流程圖輔助系統設計
在實際生活中,排序算法很實用,其他地方可能會用到,因此可以把代碼打包成“函數”,其他地方想用這個函數,就直接寫出函數名,傳入數據即可。當然,這個函數也可以調用另一個函數,或者用于其他更復雜的函數。在使用時,復雜度被隱藏,不需要知道內部的循環和變量,結果會像魔術一樣返回,如下頁圖5所示。在此基礎上,筆者引導學生運用模塊化設計的思想,嘗試思考并設計:模擬電子地圖,搜索A城市到B城市的最短路徑。
綜上所述,如果教師僅介紹思想、算法實現會顯得單薄。借助流程圖,則可以激發學生進一步思考,增加程序的設計感,鍛煉學生的知識遷移應用能力,也豐富了所學知識。
應用策略
1.理論與實踐相結合
要在程序設計教學中落實計算思維的培養,就要對客觀世界進行合理抽象建模,畫好流程圖,也要將設計出的藍圖付諸實踐,編程調試運行。然后,結合實踐反思設計,進一步提高學生的理論認識。在這個過程中,學生和教師一起經歷“抽象—形式化表達—構造—自動化”的過程,有效地實施計算思維的培養。
2.應用與表征相結合
表征是指某(些)事物和事物屬性能確切地表示另一(些)事物和事物屬性。課前,教師鼓勵學生用流程圖把形象的客觀世界進行抽象建模,并把抽象出來的內容進行關聯;課中,完善流程圖,將抽象出來的內容通過帶有語義規則的符號定性、定量地去描述;課后,運用流程圖繼續輔助深入挖掘,不斷豐富知識。不同階段有不同的表征,但無論如何,教師都應注意與實際應用相結合,且流程圖要注意留白,為課中的完善、課后的深入挖掘做準備。另外,在用流程圖輔助程序設計時,不同的符號有不同的含義,不同的結構有不一樣的表征作用,規范使用有助于形成規范的行為習慣,養成良好的思維品質。
3.理念與技術相結合
作為信息技術教師,要緊跟時代潮流,更新教學觀念,運用多種手段輔助教學,提升自身數字化學習與創新的應用能力。同時,還要根據學生情況、教學內容,選用合適的工具輔助,使課堂效率事半功倍。例如,在繪制流程圖時,可以選用常規的辦公軟件Word、WPS、PPT,也可以用Viso、OmniGraffle等專業繪制工具。當然,也可以在iPad和智能手機上畫好圖再投屏,或者邊講解邊畫等。
結束語
根據新課標的價值取向和培養目標,筆者聯系自身教學實際,以“圖解程序設計,描繪思維藍圖”為教學切入點,把計算思維內涵的三個層次作為培養目標,踐行和分析了新課改大背景下如何把握信息技術學科的科學本質和育人價值,進而促進信息素養的提升。筆者相信,為培養出適應數字時代的建設者,一線教學不僅堅持教學的真理,還需要有好的方法傳道授業解惑,更需要不斷進行最平凡的教學研究。