【關係判斷方式與編程思維】
我們知道,程序設計的基本流程是由構建數學模型、設計算法、編寫程序代碼、調試程序等環節所構成的,這種用計算機解決問題的過程是最受肯定的基於計算思維學習方式。
學習者往往在接觸程式語言之初,更側重計算機程式語言的語法格式學習,即使因為模仿的作用設計算法,也仍然是根據程序思考過程來進行。如此,不容易體會到計算思維的特質——計算機是如何思考、解決問題的。
以分支結構程序為學習內容,採用「判斷狗狗與人的相當年齡」為問題解決,我們體會計算思初步形成過程。
第一步,對事物的描述
狗狗是人類的好朋友,成為很多老年人的好夥伴。但是,面臨的嚴重問題之一是狗狗會因為衰老、疾病等原因往往會比主人去世更早,給產生深厚感情的他們造成傷痛。為了解狗狗年齡的規律,也為疏通狗狗主人情感,擬對狗狗年齡與人類年齡進行對比,揭示其生命周期。
至此,完全是事物描述,沒有明確問題解決方案。能想到與人類年齡對比,這是事物分析能力和邏輯思維的表現,並非數學思維,也非計算思維。
第二步,構造數學模型
通過網絡調查研究,發現很多與狗狗年齡分析相關的方式。與人類年齡對比,又分幾種情況,可構成如下分段函數。
設相當人的年齡是y,狗狗的實際年齡是x。
y=1 (x=1)
y=22 (x=2)
y=22+(x-2)*5 (x>2)
至此,構建數學模型完全是數學思維下的問題分析,與計算思維尚不搭邊。但是,為計算思維的順利產生打好了基礎。這說明,數學的確是科學技術之母。
第三步,設計算法
人們對設計算法往往容易與數學模型的構建混淆。實際上,這是基於計算思維的設計過程。解決本項問題的核心是判斷,所以分析程序結構是其中的關鍵。以下採用自然語言方式描述算法:
輸入狗狗年齡
註:不考慮用變量賦值,是為了提高程序的通用性,這是明確的計算思維。
如果x小於0 進行錯誤提示
註:這是計算機的容錯處理,屬於計算思維範疇。分支算法也是。
否則,繼續判斷如果x=1則顯示1歲;
否則,繼續判斷如果x=2則顯示22歲;
否則,則顯示22 + (x -2)*5歲。
至此,把數學思維與基於計算分支程序相結合,初步產生了解決方案,這是基於理論層次的計算思維體現。
第四步,編寫程序代碼
選用Python程序設計語言,按照其語法規則實現相應算法。程序代碼如下:
x = int(input("請輸入狗狗的年齡: ")) print("對應人類年齡: ", y = 22+(age-2)*5)以上程序代碼,採用int()函數轉化字符串為數值,採用if elif進行判斷設計,這些都是遵循以上算法。
至此,在編程中的計算思維表現主要是在程序語法規範、代碼實現上,體現在程序編寫技能,這是實踐層次的計算思維。特別是,能夠設計對輸入字符的數值轉化、對否定情況的分支嵌套,這完全是編程能力,如果從思維角度說自然是屬於計算(機)思維方式的體現。
第五步,調試程序
在以往的調試程序中,我們可能只局限於運行程序、糾正錯誤,這雖然是非常重要的。但是,更對學習者來說更重要是發現問題而改進程序,並非只完成基本問題就可結束。比如,我們可以思考讓程序重複執行,採用循環來改進程序,也可以採用自定義函數模塊來優化程序。
至此,優化程序(調試)這個進一步思考過程也是建立在計算思維的形成基礎上的。
反思整體過程,我們能夠更深入地體會到,計算思維在利用程序來解決問題的一般過程與方法上具有理論、實踐多重表現。