陳旭佳



一、正確理解信息技術課程中計算思維的本質
計算思維是利用計算機科學的思想方式,在形成問題解決方法的過程中產生的思維活動。它強調的是具備利用計算機可解決、可界定問題、可抽象建模、可組織數據、可合理形成有效方案等綜合性、項目性的能力。在課堂中教師對問題的處理都是按照“問題—編程—測試—結果”流程,基本上都把計算思維歸類于算法,更有甚者把數學中的“算術思維”當成了計算思維。針對這類情況,筆者從三個方面探究信息技術課程中計算思維的內在本質。
1.正確深入剖析問題是計算思維的前提
在課堂上,教師經常用“提問”作為教學手段。因此教學的重點落在問題解決,而忽略引導學生把問題進行分解和剖析。例如,利用python設計出一個具備輸入內容并把內容輸出的功能界面。教師對這個問題的處理是先列出相應的程序語句(input和print),然后設計算法,最后是編程。這種處理方式抑制著學生對問題作深入性剖析和思維探究的發展。筆者認為,正確理解并剖析問題比把問題解決更加重要。
教師在課堂上引導學生對問題的剖析,可依據以下表中的四個步驟依次進行。
2.準確建立問題的“模型”是計算思維的基礎
模型是問題的抽象化體現。問題解決的條件、方法、手段都要根據這個模型去進行。這個過程我們稱為“建模”。在課堂中,學生經常把“怎樣做”擺在首位,而忽略了“做什么”。計算思維中強調“建模”的作用,就是針對學生缺乏“做什么”的思維過程。筆者認為,計算思維強調了“建模”過程的三個方面,即模型的組織結構、模型元素的相互關系和模型的具體抽象化。本文以利用python 3制作一個簡單的點菜系統為例子進行闡述。
(1)模型的組織結構(如圖1所示)
(2)模型元素的相互關系(如圖2所示)
(3)模型的具體抽象化(如圖3所示)
3.尋求問題最佳“算法”是計算思維的靈魂
計算思維離不開算法,但算法并不等同計算思維。利用計算思維處理問題是一個綜合性的過程,它涵蓋了計算機科學理念、數學理念和工程理念,而算法或編程只是把整個過程進行描述或具體化而已。在計算思維過程中,應借助“算法”將問題“化繁為簡”,以清晰的思路、具有可操作性的方法、有效率的途徑將問題解決。教師可從三個思維角度去引導學生尋求解決問題的最佳算法:一是順序性的功能實現(多次代碼實現);二是循環性的功能實現(代碼一次實現);三是結構性的功能實現(函數封裝)。通過這三個角度能讓學生在探索問題過程中向項目化、系統化的計算思維角度去靠攏。
二、python教學中計算思維的合理體現
1.利用python中條件循環結構體現邏輯思維
在計算思維中強調正確陳述、剖析問題,將復雜的關系轉成清晰的邏輯結構助力于問題的解決。問題的邏輯結構不外乎就是條件判斷和循環兩者的有機結合。例如上文的點菜系統,看似內容復雜繁多,但基本上可分類于以下幾種邏輯結構:(1)整個系統是否有條件循環?(while語法結構)(2)點菜過程是否有條件選擇?用戶輸入格式是否有條件限制?(if語法結構)(3)用餐費用結算是否有條件選擇?(if語法結構)
2.利用python中的函數結構體現抽象思維
python函數中具備將功能操作進行封裝的特點。在將問題進行剖析之后,應對問題解決的步驟進行分塊,這個過程應引導學生合理地進行函數功能設計,但不必要去思考函數的具體實現。進行函數設計之后,再去思考這些函數之間的數據傳遞關系,從而將函數間的關系進一步明確。
3.利用python中turtle模塊體現建模思維
Turtle模塊能讓學生感受到問題解決的過程及結果的體現。教師可以借助Turtle引導學生對問題進行建模。例如,制作一個立體的動態星空。這個問題教師可以引導學生在Turtle中先畫出黑色背景和一個白色的小五角星。然后以此為基礎,再依次變化呈現出星空的狀態。如圖4所示。
三、利用python教學對計算思維的初步形成
在計算思維解決問題的過程中,教師在課堂上要引導學生從“輕算法、重方法”“輕結果、重分析”“輕過程、重系統”三個方面去向計算思維靠近,并逐步把計算思維融入問題的處理過程中,讓學生慢慢養成一種思維習慣。
實例:python課程中的列表處理數據。(電子地圖上城市的經緯度列表)
1.創建python列表
創建一個名為“map”,關于電子地圖城市的列表。
map=[“北京”,“石家莊”,“沈陽”,“廣州”]
通過創建列表問題,讓學生掌握將分散的元素(城市)轉化為集合形式(列表)。在這點上體現計算思維中的建模思想。教師還可以進一步地把問題加以擴展,將數據添加到列表中對應的元素中。
2.添加python列表數據
向列表中元素添加對應的數據,教師可從不同的角度去引導學生,通過對比指導學生在問題解決過程中要尋找“最佳算法”。
算法一:使用“insert”和“append”,向“map”列表直接添加數據。
map.insert(1,“N:39E116”)
map.insert(2,“N:37E114”)
map.insert(3,“N:41E123”)
map.insert(4,“N:41E123”)
這個方法需要按照列表元素位置的逐一添加,是一一對應的關系,位置序號不能搞混。
算法二:在創建列表時候加入數據
map=[“北京”,“N:39E116”,“石家莊”,“N:37E114”,“沈陽”,“N:41E123”,“廣州”,“N:41E123”]
3.顯示python列表數據
教師可引導學生逐步的將列表中的數據顯示出來,采用print語句,如:Print(map[1],map[2], map[3],map[4])。接著,教師可適當地提高學生的思維能力,比如采用循環思想解決具有規律性的問題。例子如下。
num=1
While num<=len(map):
print(map[num])
num=num+1
經過上面三個階段教師再讓學生多作深入探究問題,多尋求解決問題的方法。在此基礎上教師可再設計出一系列與列表相關的問題,如運用列表解決企業人員薪資問題、商品價格查詢問題、消費種類及消費金額問題等。
計算思維教學過程應該重點關注學生思考、探索、尋求問題解決方法的過程,而不是問題解決的結果。學生學習計算思維本身就是一個系統化的過程。教師不能“斷章取義”,將計算思維過程中某個環節作為課堂的教學和訓練。教師需在理論上把計算思維理解透徹,在課程設計上逐漸滲透,把計算思維有機地融入教學過程中,從而將計算思維變成學生一種“慣性”的思考習慣。
參考文獻:
[1]嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017(12).
[2]王亞萍.計算思維培養視域下《Python程序設計》課程的教學改革實踐[J].電腦知識與技術,2018(2).
[3]賈瑞鳳,馬曾,侯春龍.以Python為工具培養學生計算思維[J].電腦知識與技術,2018(2).
[4]柳青.Python系列課程的案例教學實踐[J].電腦知識與技術,2018(15).
[5]馮艷紅,王楠,許冀偉.Python語言程序設計教學模式探索[J].福建電腦,2018(10).