邵紅祥



摘要:計算思維是信息技術學科核心素養之一,是信息技術課堂培養學生的重要素養,而項目學習是培養計算思維的有效途徑。本文以“編程計算網購文具總價”項目的實踐為例,按照計算思維發展路徑,將知識建構、思維培養與創新發展融合到項目實踐過程中,有效訓練和發展計算思維。
關鍵詞:計算思維;項目學習;信息技術
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2022)10-0049-03
《普通高中信息技術課程標準(2017年版)》凝練了信息意識、計算思維、數字化學習與創新、信息社會責任四個學科核心素養,提出了“把握項目學習本質,以項目整合課堂教學”的要求,鼓勵教師在教學中要緊緊圍繞學科核心素養,把項目整合到課堂教學中,重構教學組織方式。如何基于項目學習,整合知識與技能的學習來發展學生的計算思維,一直是筆者探索的問題。下面,筆者以具體項目為例探討如何圍繞計算思維培養的核心目標,將知識建構、思維培養與創新發展融合到項目實踐過程中。
● 利用項目學習有利于計算思維的培養
在項目學習實踐中,教師創設真實情境,讓學生經歷分析問題、提出問題、形成學科問題的過程,避免了傳統教學中教師直接給出學科問題的弊端,提供了計算思維中抽象與形式化表達能力鍛煉的機會;學科問題解決過程也是學生新知學習、實踐探索的過程,在此過程中,學生需要掌握計算機科學領域的思想方法,運用計算機科學特有的解決問題的方式,形成學科解決方案,通過問題驅動的方式培養學生計算思維中的構造和自動化能力;項目學習一般倡導學生能形成一定的成果,通過對成果的評價,引導學生對解決該問題的過程進行總結、歸納和提煉,思考解決該問題運用了哪些知識技能、思想方法,該解決方案還能解決哪些同類問題等問題,從而內化所學的知識技能、思想方法,并形成實際解決方案,而該方案在學科解決方案的基礎上已進行了提升與拓展,更適用于現實世界中同類問題的解決,也能更好地培養學生的遷移應用能力。這樣,“真實情境中的真實問題”“學科問題”“學科解決方案”“實際解決方案”就形成了一個循環,利用項目學習培養計算思維的過程如下圖所示。
● 項目學習實踐發展計算思維的路徑
通過項目學習來發展計算思維,需要按照“創設真實情境”“問題驅動解決學科問題”“成果導向概括實際解決方案”“遷移應用解決同類問題”等環節讓學生經歷抽象—形式化表達—構造—自動化的方法路徑。下面,以“編程計算網購文具總價”項目的實踐為例,探討項目學習實踐發展計算思維的路徑。
1.項目背景
編寫計算機程序來解決問題是信息技術學科發展學生計算思維的重要途徑和方式。對學生而言,需要掌握某一種編程語言的基本知識,目前高中教材多使用Python語言,雖然學生之前已經學習了算法與問題解決、編程解決問題的一般過程等相關內容,但在運用Python語言編程解決問題時,還需要學習Python語言的環境、數據類型、變量、運算符、表達式等基本知識,傳統的程序設計教學常錯誤地把語言的學習作為教學目標,而實際上語言僅僅是載體,計算思維的培養才是核心目標。[1]因此,程序設計教學需要通過項目學習來發展計算思維。
2.創設真實情境
教師根據項目所涉及的教學內容和設定的教學目標,創設如下真實情境:
網購文具有著較大的市場需求,買家只需要支付一筆不高的快遞費,就可以在家收到自己喜歡的文具。例如,某文具店的部分文具的價格如表1所示,現在想設計一個簡單的結賬程序,能根據買家購買的文具品種和數量,計算總金額。
基于該真實情境,學生在界定“編程計算總金額”的問題后,需要運用之前所學的相關知識,即“編程解決問題的一般過程:抽象建模、設計算法、編寫程序、運行調試”來解決問題。針對“抽象建模”,學生需要抽象出該問題的“總價、單價、數量、快遞費”等關鍵特征,然后通過假設來梳理這些特征之間的關系,即假設某買家購買了m支鋼筆和n本筆記本這兩種文具,快遞費為10元,總價設為pay元,則這兩種文具對應單價分別為28.5和18,構建的模型為:pay=28.5×m+18×n+10。根據抽象出的關鍵特征和模型,運用“數據、運算、控制轉移”算法三要素的設計原則,設計如下算法:
①輸入購買的鋼筆數量m和筆記本數量n。
②計算總金額pay,其中pay=28.5×m+18×n+10。
③輸出需支付的總金額pay。
3.問題驅動解決學科問題
用Python語言編寫程序來實現上述算法是該項目的關鍵。對于沒有Python語言基礎的學生來講,該任務具有很大的挑戰性。教師要引導學生討論和思考“在實現過程中遇到了哪些問題”,經過整理和歸納,大致會有如下問題:①m和n在程序中如何表示?②怎么輸入和輸出?③計算公式怎么編寫?然后,圍繞這些問題展開新知學習和實踐探索。
解決“m和n在程序中如何表示”這個問題,學生需要學習“數據類型”和“變量”等相關知識,掌握計算機中存儲的數據一般需要區分不同的類型(常見的數據類型有整型、實型、字符型、布爾型),了解不同數據類型的表示方式和適用場景(數據在計算中可用變量、常量等來表示,變量命名要符合一定的規則等)。在掌握這些相關知識的基礎上,教師提供表2讓學生實踐。
解決“怎么輸入和輸出”這個問題,學生需要學習“內建函數”和“賦值語句”等相關知識,掌握Python語言對數據的輸入和輸出提供的“input()”和“print()”內建函數,其中,input()函數會將用戶輸入的數據以字符型接收到程序中,若需要接收整型或實型數據,則需要應用int()和float()函數進行轉換,然后通過“=”賦值語句將結果賦值給相應變量。學生基于前面“數據類型”和“變量”的相關知識來理解這些函數和賦值語句的功能與用法就相對容易了。在掌握這些相關知識的基礎上,教師可讓學生分別用相應語句表示算法中的步驟①和③。
解決“計算公式怎么編寫”這個問題,學生需要學習“算術運算符”的相關知識,掌握計算機中的常見運算及表示。掌握了這些知識以后,就可以用相應的語句表示算法中的步驟②。在解決了上述三個問題以后,對應算法的程序已經編寫完成,學生可通過調試運行來檢驗程序的正確性。基于解決“編程計算網購文具總價”真實問題的情境,將知識與能力融入到學生“問題生成新知”的過程之中,逐步提升構造和自動化的能力。
4.成果導向概括實際解決方案
該項目的成果是學生編寫出的“網購文具支付總價”程序,從計算思維培養的角度看,學生不僅要能編寫出該程序,還要內化編寫該程序的過程中運用到的知識技能與思想方法等,要能將“學科解決方案”提升到“實際解決方案”的高度,運用類似的過程與方法解決更多的同類問題。因此,教師要基于該項目的成果,引導學生進一步討論與思考:編程解決問題的過程是怎樣的?你的程序不能編寫完成的原因在哪里?你的程序不能成功運行的原因是什么?你覺得學習或生活中的哪些問題也可以采用這種過程與方法來解決……學生通過總結、歸納和提煉,進一步理解“計算機中數據的存儲與表示、數據的運算”等相關的原理,融通知識間的聯系,掌握遵循Python語言的語法規則編寫程序的基本技能,內化編程解決問題的思想與方法,促進深度學習的有效發生,避免學科知識的淺層化和思維的表層化。
5.遷移應用解決同類問題
項目學習能有效促進知識間的內在聯系,將零散的知識整合處理,使其圍繞“主題意義”形成結構化知識,進而內化知識,遷移運用知識。而遷移應用解決同類問題恰好是計算思維的內在要求。因此,教師要在原有項目的基礎上,對項目任務進行適當拓展與延伸,如增加“策劃一次促銷活動,文具購買金額每超過100元可以減免20元”“文具購買金額超過100元可以減免快遞費”等要求,若學生已具備了一定的計算思維能力,會按照“抽象建模—設計算法—編寫程序—調試運行”的過程,基于遇到的新問題,通過實踐探索建構新的知識,促進新技能的掌握,從而進一步發展計算思維。
● 結束語
計算思維是信息技術學科核心素養之一,是信息技術課堂需要培養的學生的重要素養,而項目學習為計算思維的培養提供了具體的依托和支撐。面向計算思維的項目學習是一種滲透式教學,它將計算思維這一學科核心素養滲透、融入到項目實施的每個環節,在計算思維路徑的引導下推進項目學習有效實施。思維培養和課堂教學有機結合,項目隨著思維的擴散而推進,思維隨著項目的完善而進階,最終使能力在思維的訓練下得以提升。
參考文獻:
[1]中華人民共和國教育部.普通高中信息技術課程標準(2017年版) [M].北京:人民教育出版社,2018.
[2]王榮良.基于思維視角的計算思維教育落實[J].中小學數字化教學,2020(01):20-23.
[3]姜浪.新課標下信息技術項目式教學教案設計思路[J].中國現代教育裝備,2020(02):36-37.