思維
要理解什么是計算思維,首先要理解什么是思維。
經典的說法為思維是人腦對客觀事物間接的、概括的反映。
首先,思維是人腦對客觀事物的反映,也就是說,思維的主體是人,而不是其他。思維一定指的是人所具有的。計算思維也一定是人的思維,而不是計算機的思維,因為計算機不能成為思維的主體。至少到目前為止,還沒有證據能論證計算機能思維。至于計算思維中的客體,即客觀事物是什么,將在本文的第二部分討論。
其次,思維具有兩大特性:概括性和間接性。

思維是在人腦對各器官獲取的感性材料的基礎上,把一類事物的共同本質特征的規律抽取出來,加以概括,這就是思維的概括性。例如,“筆”有鉛筆、鋼筆、圓珠筆,其顏色、形狀、材質等外部特征可能各不相同,而“筆是人類創造的專門用于書寫的工具”就是其本質特征的概括。同樣,我們把人們的加減乘除運算行為、計算機對數值和字符的處理動作,都概括為符號串按一定規則變換的過程,也就是計算的概念。
思維的概括性是指能從部分事物相互聯系的事實中找到普遍的或必然的聯系,并將其推廣到同類的現象中去。例如,借助思維,人們可以認識溫度的升降與金屬脹縮的關系,認識計算機的特性對社會生產學習生活的影響。
間接性是思維的另一特性。思維要依靠感性認識,但又遠遠超脫于感性認識的界限之外,去認識那些沒有直接感知過的或根本無法感知到的事物,以及預見和推知事物發展的進程。例如,人們無法感知恐龍的生活情景,但考古學家可以通過化石來推測,這就是思維的間接性發揮作用。同樣,人們無法直接觀察到計算機內部運算器的電流變化,但通過間接信息的輸出,可以得出運算器正在進行某種運算的結論。
再次,我們說思維是人腦對客觀事物概括的和間接的反映,需要說明的是,這里的反映不只是靜態的結果,實際上思維是一個過程。思維的本質是思維主體即人腦的一種運動。思維是指人有意識地、連續性地獲取各種環境信息,由人腦對獲得的環境信息和已有的經驗信息(或稱為已經完成的運算結果)進行一系列的運算,得出應對環境變化方案的運動。在這里,運算包括傳遞、提取、存儲、刪除、對比、排列、組合等多種最簡單、最基本的操作。
學生的學習,就是要通過感知認識事物的個別屬性和外部聯系,獲得感性認識,而且還需要在感性認識的基礎上,通過復雜的思維活動,認識事物的本質和規律,獲得理性認識。因此,學生的學習過程,就是人腦對客觀事物的本質和規律的概括和間接的反映過程,也就是思維的過程。
計算思維是關于計算學科的思維
每一門學科,都會有不同的學科思維。各種學科思維有共性,但不同學科有待解決的基本問題不同、研究方法不同,因而肯定也有不同的思維特征。
數學思維是人腦和數學對象交互作用并按一般的思維規律認識數學規律的過程。具體來說,數學思維就是以數和形及其結構關系為思維對象,以數學語言和符號為思維的載體,并以認識發現數學規律為目的一種思維。邏輯思維就是一種典型的數學思維,其中邏輯推理是其判斷結論的重要工具。在邏輯思維中,首先需要有一個稱為公理的命題集合,然后有一個推理規則,從公理出發嚴格地運用推理規則可以產生相應的結論或定理。
而實證思維就是以物理學為代表的一種典型思維形式。在實證思維模式中,人們通過觀察和實驗,得出一些揭示客觀世界的結論,這些結論最重要的部分都是以定律的形式出現。我們現在所使用的就是基于伽利略、牛頓、愛因斯坦等科學家建立起來的物理科學系統。在這個系統中,我們從少數幾個定律出發,建立起解釋整個客觀世界的架構。其中,實證是實證思維的核心。
當然,并不是數學學科只有邏輯思維,物理學科只有實證思維。數學也有觀察,在實證思維模式中,觀察獲得的數據也需要用數學的方法分析,形成模型。不同學科思維方式和實施方法有交叉,但這不能改變兩種不同學科的兩種不同思維所具有的不一樣的核心思維方式。
歸納起來,以上兩種思維都有這樣的思維特征:其一,思維活動是通過語言和文字為載體來表達的;其二,思維的表達方式必須遵循一定的格式,需要符合一定的語法和語義規則;其三,以合理的方式表達,可以使他人不必重復思維的過程就能相信結論。這三個特征也是一般科學思維的基本特征。
當然,并不是所有的思維都具備這些特征。人類活動中還涉及其他的思維方式,如類比、聯想和靈感,這些思維不僅伴隨著人類活動的全過程,而且還是很多創新思想的源泉。然而,計算思維與邏輯思維和實證思維一樣,是一種具有上述特征的典型科學思維。
作為計算思維,主體一定是人及人腦。客體,即客觀事物,應該是計算、計算規則與過程以及支持計算的裝置。要理解計算思維,首先要知道什么是計算,什么是計算過程,什么是計算裝置。
兩數相加是一種計算,人腦是計算裝置。當然計算不僅僅是算術運算,仔細分析計算過程,兩數相加是加數和被加數由計算裝置即人腦按規則變換后得出計算和。如果把所有的運算數都抽象為字符串,則計算可以描述為:計算是從已有的符號開始,一步一步地改變符號串,經過有限步驟,最終得到一個滿足預定條件的符號串的過程。這里的“有限”很重要,如果沒有規定有限步驟,就不能保證計算能夠完成。
把人腦的計算過程表達出來,用非人腦的裝置實現計算,是一件很有挑戰性的工作。早期的機械式計算器,執行兩數相加等算術運算,利用大小齒輪的關系表達運算規則,可以一步一步實現運算,這稱為機械計算。現在的計算機,盡管用電子裝置代替了機械裝置,但從與人腦的關系來看,與機械裝置有相似,因此,也稱為機械計算。
計算思維一定是人腦的思維,是人腦對計算、計算規則與過程以及計算裝置的概括和間接的反映。這里的計算,應該是指能夠用語言和文字表達的計算,能夠用機械(電子)裝置實現的計算,研究范疇是機械計算。至于人腦計算的研究,其機理相當復雜,屬于腦科學、心理學研究的范疇。
根據國際計算機學會(ACM)給出的定義,計算學科是對描述和變換信息的算法過程進行的系統研究,包括理論、分析、設計、效率、實現和應用等。計算學科涵蓋了對計算過程的分析以及計算機的設計和使用。由此可見,計算學科的研究內容是計算思維的客體,計算思維一定是關于計算學科的思維。當然,計算思維不是計算學科唯一的思維方式。
在數學發展史上,笛卡爾利用坐標技術,實現用代數語言描述幾何,進而成功地把人類的許多思維活動歸結為計算。此后,數學家希爾伯特提出用此思路可以一攬子解決所有的數學問題,即設計出一個完整的算法A,對于任何給定的數學問題,A經過有限次的機械計算,停機并給出問題的正確答案。這就是著名的“希爾伯特綱領”,其核心是把數學還原為一種有限過程。盡管這個綱領最終沒能實現,但相關研究的工作卻真正弄清楚了什么是計算,什么是算法,對計算思維所涵蓋的主要概念進行了深入的揭示。計算思維表達了這樣一個過程:將一個問題用代數語言(或其他約定的規范語言)進行形式化表達,然后按預設的規則進行有限次的字符串變換,最后得到問題的解。
不同于物理學科研究自然規律的實證方法,也不同于數學學科中的邏輯推理方法,計算學科更強調構造性。在數學中,與構造性相對應的是存在性證明,這是數學學科常用的一種證明方法,如證明某一數軸區間中存在實數解,證明某個函數可導等。構造性更強調的是通過一系列步驟給出某個對象,或給出某個對象的計算方法。因此,在計算學科中,關注的是如何構造一個計算模型,如何構造一種算法,然后可以按部就班地經有序步驟進行求解。基于計算學科的構造性,計算思維的標志是有限性、確定性和機械性。計算思維表達的方式必須是一種有限的形式;計算思維表達的語義必須是確定的,在理解上不會出現因人而異、因環境而異的歧義現象;計算思維體現的是一種機械的方式,可以通過機械的步驟來實現。
計算思維是一種技術性思維
技術是指人們利用現有事物形成新事物,或是改變現有事物功能、性能的方法。技術的產生是為了彌補人類自身生理上的不足。技術作為對人的自然軀體缺陷的補充,表現為人的經驗和認知,技術往往是以工具的形式存在并為人類服務。當人從動物界分離出來以后,就與技術結下了不解之緣。特別是當近代科學誕生以后,技術與科學合二為一,使技術的有效性更為彰顯。技術的發展史表明,其發展正是沿著從肢體到軀干到腦的延長的邏輯進行的,計算學科所對應的計算工具研究,就是沿著這一路徑進行的。
隨著社會活動領域的不斷擴大,人類所面臨的問題也越來越多,越來越復雜,技術在解決這些問題過程中所扮演的角色就越來越重要。于是,技術性思維占據了人類的頭腦:所有問題歸根到底都只是技術問題,所有問題都可以通過技術來解決。人類正是憑借技術性思維創造出巨大的物質財富。
技術性思維是一種建立在標準化模式之上,以控制外部自然、追求最佳效率為基本宗旨,以達到物質利益最大化為歸宿的思維方式。計算思維具備技術性思維的一般特征。
計算思維與技術性思維一樣,其原始邏輯是數學。數學的清晰、嚴謹、確定,是建立在撇開具體分析內容的純形式的抽象性和規整性基礎之上的,把世界僅僅歸納為它的量和形的方面。在數學和邏輯分析的基礎上,一切自然被量化和形式化,并能依據公理和規則在數量上精確地加以運算。
計算思維與技術性思維一樣,旨在征服和改造自然,以及控制外部自然。計算思維涉及的對象是通過對計算規則和計算裝置的控制,完成計算過程。按計算思維這一思維方式,人們不僅可以設計和控制機械計算裝置,而且還可以把人自身像運行一部計算機器一樣來組織、協調和管理。
計算思維與技術性思維一樣,反映的是一種效率邏輯,總是把手段的最佳、效果的最好作為價值標準。一項技術一旦被發明出來,它就會以其“效率”“舒適”等功能吸引人們去采用、去適應。計算思維所對應的計算學科,正是以這種特征指導人們從科學的預測出發,權衡利弊,合理地設計計劃或方案,發明新技術,開發新產品。
計算思維與技術性思維一樣,通過標準化方式來規范技術,追求效益,控制自然。標準化促進了現代技術的有效發展,計算思維作為一種技術性思維,在其形式化表達、系統設計、產品制造、工具使用等活動中,可以發現標準化的作用。
盡管業界在關于技術性思維對人類發展的作用方面仍有爭議,但比較計算思維與技術性思維在標準化、對自然的控制要求以及效率最大化追求等方面的相似,有助于理解計算思維。計算思維不是一種純理論的思維,也不是一種純工程的思維,而是在理論指導下的具有明顯技術特征的構造性思維。
計算思維是跨接現實世界和計算機世界的思維
在沒有出現計算機以前,人類面對的現實世界主要是一個物理世界,人們每天處理著大量的物理量,進行著生產、生活以及學習活動。有了計算機以后,計算機構成了一個獨特的世界,它是按人的規定有限地反映現實世界,模仿人類處理現實世界的物理量,同時也構建了與現實世界不一樣的時空觀。我們把這個稱為計算機世界,那么,人、現實世界、計算機世界之間是什么關系呢?顯然,人類是按預設的目標要求,通過對現實世界的分析,來規劃、設計、構造計算機世界的。在這個規劃、設計、構造計算機世界的過程中,蘊涵著人的計算思維。
周以真教授把計算思維的本質論述為2A,即抽象(Abstraction)和自動化(Automation)。除了抽象和自動化,設計也是很重要的特質,可以合理解釋計算思維在現實世界和計算機世界之間的關系和作用。現實世界、計算機世界與反映計算思維的抽象、自動化以及設計關系如下圖所示。
抽象是指在思維過程中對同類事物去其次要的、現象的方面,抽取其主要的、共性的方面。數學抽象的特點是拋開現實世界的物理、化學和生物等特性,僅保留其數的關系和空間的形式。計算思維中的抽象比數學抽象更加豐富,它要依據計算模型對現實世界中要處理對象的屬性、規則、方法進行抽象和形式化表達,為構建計算機世界提供依據。
計算機世界本質上是一個人造物,這個人造物與現實世界中其他的人造物不同之處在于它有自動化的特性,即計算機可以根據人類對現實世界抽象的規則,機械地一步一步地自動執行。設計是計算思維的重要外化,反映了計算思維具有的技術和工程特性。現實世界經抽象形成規則以后,需要經過設計過程,才能實現自動化。而設計的結果,需要在現實世界中檢驗。
因此,計算思維跨接現實世界和計算機世界,它可以指導人們構造計算機世界,認識計算機世界,運用計算的原理與思想認識自然和改造自然。
結論
從思維的定義來看,計算思維是人們面對計算問題時對計算對象能動的、間接的、概括的反映。從計算學科而言,計算思維反映了計算學科的基本問題和基本方法。從心理學角度出發,計算思維是人腦對計算及相關信息的接收、選擇、分析、加工的高級精神活動。站在教育教學角度,計算思維是在對計算的教學和研究過程中體現的思想或心理過程的表現。作為中小學教師,最關心的則是計算思維的教學內容和教學方法。
事實上,計算思維作為一種思維過程,很難用知識描述的方式顯性呈現。工具表現是計算思維的一種外顯形態,討論支持計算思維活動的工具和方法是研究計算思維的一種途徑,或者說,方法是計算思維的重要內容。計算思維的方法可分為數學方法和工程方法,其中數學方法涉及抽象、遞歸、證明、形式化表達等,工程方法包括系統方法、分治法、面向過程和面向對象方法等。通過這兩類方法的傳授,可以有效地培養計算思維。
具備計算思維的人應該具有怎樣的能力,這是計算思維的能力表現。計算思維的能力表現肯定是復合的,不是單一的,但與其他學科相比較,最具特點的主要是兩方面的能力:抽象能力和構造能力。這里的抽象能力不是數學中抽象的狹義理解,而是以問題解決為目標,能夠對現實世界中的事物或對象提取特征、屬性、規則,忽略與問題解決不相關的細節,從而形成對事物或對象的形式化表達。構造能力也是計算思維所特有的能力,是依據已知的條件,能夠理解或設計一種模型、裝置或算法來一步一步解決問題的能力。抽象能力偏重數學和理論,為構造的實現提供基礎;構造能力具有技術和工程屬性,是抽象在計算機等人造物中的具體實現。
嚴謹、敏銳、務實是計算思維的特質。嚴謹是計算思維對數學思維的繼承,體現為概念清晰、判斷正確、推理有據,按規則來構造解決問題的步驟。敏銳性是思維的一項重要的品質,計算思維的敏銳性主要是指能夠準確地預測計算和計算過程,發現其中的問題,并選擇合適的解決方法。例如,在程序調試過程中,就需要人們從計算系統反映的現象,敏銳地提出出錯模型,然后嚴謹地推斷出問題所在,直至最后的問題解決。務實是一種典型的技術性思維特質,計算思維追求的是系統整體優化,針對研究對象的具體情況選擇適當的工程方法,力求節約,尋求以最簡便、成本最低、效率最高的方式方法去完成指定項目。
至于如何開展計算思維教育,是一項具有挑戰性的工作,有待進一步研究。計算思維教育除了傳授計算思維的基本方法以外,還需要培養計算思維能力,還需要探索思維教育過程中存在的一般性問題。計算思維教育要特別強調學生的思辨訓練和良好的思維方法形成,以提升學生的思維品質。探究式學習強調學生主動學習,是實現思維教育的一般途徑。考慮到構成計算機世界的計算裝置這一人造物的工作特性,采用思想實驗反映計算步驟和過程,也是一種具有獨特價值的計算思維教育教學方法。
參考文獻:
[1]李廉.關于計算思維的特質性[J].中國大學教學,2014(11).
[2]楊金華.技術性思維與現代人的生存境遇[J].科學經濟社會,2007(4).
[3]王榮良.計算思維:一種新的學科思維方式[J].中國信息技術教育,2013(6).
[4]王榮良.計算思維教育[M].上海:上海科技教育出版社,2014,7.