陳國良?李廉?董榮勝
摘 要:在梳理計算思維發(fā)展過程的基礎(chǔ)上,討論了近年來計算思維在理論和應(yīng)用方面的新進(jìn)展,闡述了在大數(shù)據(jù)和人工智能的推動下,計算思維所賦予的新的內(nèi)涵和形式,進(jìn)一步深化了計算思維在科學(xué)及社會經(jīng)濟(jì)領(lǐng)域的意義和作用。探討了這些新內(nèi)容以及在教學(xué)中應(yīng)該關(guān)注的新動向和新模式。并與傳統(tǒng)的計算思維(即計算思維1.0)做了分析對比,這些新的內(nèi)容稱為計算思維2.0。
關(guān)鍵詞:計算思維;計算模型;數(shù)據(jù)抽象;智能計算;方法遷移;面向領(lǐng)域問題
自周以真于2006年在ACM通訊上提出計算思維以來,計算思維的概念已經(jīng)逐步滲透到大學(xué)的專業(yè)和非專業(yè)教學(xué)內(nèi)容,并進(jìn)一步延伸到中學(xué)和小學(xué),成為新時代公民教育中像語言算術(shù)那樣必不可少的基本素質(zhì)。與此同時,對于計算思維概念本身的研究也在繼續(xù)深入,特別是隨著大數(shù)據(jù)、人工智能等領(lǐng)域的興起,計算思維的深刻內(nèi)涵被進(jìn)一步挖掘。時隔14年以后,人們對于計算思維的認(rèn)識,無論從概念內(nèi)容上,還是從應(yīng)用實踐上,都已經(jīng)有了新的飛躍。本文分三個方面予以闡述,并將新的計算思維內(nèi)容稱為計算思維2.0。
一、什么是計算思維
這是計算思維最基本的問題,對于它的研究也一直沒有停止。2006年,周以真在介紹計算思維時,表述為“計算思維是運(yùn)用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計以及人類行為理解等涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動”[1]。這個定義被廣泛使用,但是其中也有一些問題,例如,計算機(jī)科學(xué)的基礎(chǔ)概念是什么?計算思維僅僅是計算機(jī)科學(xué)的概念嗎?為了回答這個問題,顯然需要在更廣闊的領(lǐng)域和更長遠(yuǎn)的時間跨度來探討。
現(xiàn)代計算及其思維模式的認(rèn)知最早可追溯到1945年,George Polya在他的著作How to Solve It第一次提出了計算和相應(yīng)的思維方式[2]。以后隨著計算機(jī)的進(jìn)步,通過計算解決問題的思想變得越來越普遍和有效,伴隨著計算機(jī)理論和技術(shù)的發(fā)展,特別是計算技術(shù)的廣泛應(yīng)用,推進(jìn)了計算思維的逐步成形和發(fā)展,這是計算思維發(fā)展的一個源頭。另一個源頭來自于物理學(xué),20世紀(jì)30年代,人類對于物質(zhì)的認(rèn)識進(jìn)入量子層面,由于這個層面已經(jīng)不能直接觀察物質(zhì)的本身,必須通過物質(zhì)所攜帶的信息來研究相應(yīng)的規(guī)律,這就促進(jìn)了對于信息分析和處理技術(shù)的發(fā)展,計算機(jī)的出現(xiàn)和算法理論的深入研究使得這一方法成為可行。1982年,理論物理學(xué)家Kenneth Wilson提出了計算科學(xué)的概念,以及與之相伴的關(guān)于計算的思維,他設(shè)計了計算重正化群方程的方法,并建立了相變的臨界理論,獲得1982年的諾貝爾物理學(xué)獎。Wilson認(rèn)為計算是所有科學(xué)的研究范式之一,區(qū)別于理論和實驗,所有的學(xué)科都面臨算法化的“巨大挑戰(zhàn)”,所有涉及自然和社會現(xiàn)象的研究都需要使用計算模型做出新發(fā)現(xiàn)和推進(jìn)學(xué)科發(fā)展[3]。
他的工作以及對于計算方法的大力推薦,激發(fā)了人們對于計算科學(xué)的重視和自覺應(yīng)用。
由于信息處理技術(shù)和計算技術(shù)對于物理學(xué)研究的重要性,隨著計算機(jī)技術(shù)的進(jìn)步,物理學(xué)也融入信息科學(xué)和計算科學(xué)的許多內(nèi)容,逐步改造著物理學(xué)的面貌。相比計算機(jī)科學(xué),物理學(xué)更早地通過信息和信息運(yùn)動去認(rèn)知世界。計算機(jī)技術(shù)的發(fā)展為物理學(xué)家提供了越來越強(qiáng)大的計算武器。一場安靜卻深刻的信息技術(shù)革命從物理學(xué)開始,蔓延到其他學(xué)科,促進(jìn)了很多新的方向和新的發(fā)現(xiàn)。生物學(xué)從DNA研究,開創(chuàng)了生物信息學(xué)的新領(lǐng)域。各種各樣的計算模擬技術(shù)為研究生命體的發(fā)育、成長、競爭、進(jìn)化等提供了嶄新的視角和豐富的成果。以至于1975年諾貝爾生理學(xué)或醫(yī)學(xué)獎得主D. Baltimore認(rèn)為生物學(xué)是信息科學(xué)[4]。事實上,計算思維正在改變著所有學(xué)科的面貌。這種改變的源頭不是從計算機(jī)科學(xué)輸入的,而是學(xué)科自身的發(fā)展從內(nèi)部產(chǎn)生的,計算機(jī)科學(xué)只是跟隨這些學(xué)科的發(fā)展而發(fā)展,并為其他的學(xué)科發(fā)展提供新的算法設(shè)計理論和計算應(yīng)用武器。因此從起源來講,計算思維不是唯一來自計算機(jī)科學(xué)的,而是來自于所有學(xué)科的。
盡管前期的計算思維已經(jīng)萌芽和發(fā)育,但是直到2006年,周以真在ACM通訊上發(fā)表了題為《計算思維》的文章,計算思維才正式作為一種研究對象受到人們的重視,進(jìn)入學(xué)科殿堂。聯(lián)合國教科文組織在2019年發(fā)布的《人工智能教育報告》中寫道:雖然計算思維明顯屬于計算機(jī)科學(xué)領(lǐng)域,但它是一種在其他學(xué)科中普遍應(yīng)用的能力[5]。2018年出版的闡述中國計算機(jī)教育發(fā)展與改革的《計算機(jī)教育與可持續(xù)競爭力》(簡稱“藍(lán)皮書”)寫道:計算思維是以信息和信息運(yùn)動為認(rèn)知對象和操作對象的思想及方法論,因此是涵蓋所有學(xué)科的第三種思維范式[6]。
我們經(jīng)常聽到的說法是,計算思維就是計算機(jī)科學(xué)家解決問題時所用的思維,這個描述雖然形象,但卻不能成為計算思維的定義。計算機(jī)科學(xué)家的思維到底是什么?計算機(jī)科學(xué)家在解決問題時,也常常使用邏輯推理,也需要做實驗來驗證某些結(jié)論,這些卻是屬于數(shù)學(xué)或者物理學(xué)的思維方式。又比如,物理學(xué)家或者生物學(xué)家在研究時,也會采用屬于計算思維的內(nèi)容來考慮問題,尋求解決方案。因此用某個領(lǐng)域的研究方式來說明計算思維并不科學(xué)。我們需要一種能夠解釋計算思維本質(zhì)特征的定義。隨著對于計算思維研究的不斷深入,對于計算思維的定義也在發(fā)展著。其實早在2002年的《中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002》中,就已經(jīng)提出了計算思維的概念,認(rèn)為“計算思維能力是抽象思維能力和邏輯思維能力,算法設(shè)計與分析能力,程序設(shè)計與實現(xiàn)能力,計算機(jī)系統(tǒng)的認(rèn)知、分析、設(shè)計和應(yīng)用能力”[7]。自從周以真于2006年給出了有關(guān)計算思維的刻畫之后,又有一些新的關(guān)于計算思維的定義,我們選擇其中的一些。陳國良等認(rèn)為,計算思維并不是僅僅為計算機(jī)編程,而是在多個層次上抽象的思維,是一種以有序編碼、機(jī)械執(zhí)行和有效可行方式解決問題的模式。計算思維是一項根本能力,是每一個人在現(xiàn)代社會中必須掌握的[8]。Alfred Aho于2011年提出,計算思維是一個思想過程,涉及描述問題使得它們的解決能夠通過計算步驟和算法,被信息處理裝置有效實現(xiàn),計算模型是核心概念[9]。美國國際計算機(jī)教師協(xié)會(ISTE)將計算思維定義為具有以下特征的問題解決過程:以一種能夠使用計算機(jī)和其他工具制訂解決問題的方案,合理組織和分析數(shù)據(jù),通過模型和模擬等抽象手段表示數(shù)據(jù),通過算法思維(一系列有序步驟)實現(xiàn)解決方案的自動化,分析和評價解決方案以實現(xiàn)最有效的過程和資源組合,將問題解決方案和過程遷移到其他類型的問題[10]。徐志偉等認(rèn)為,計算思維是通過操作數(shù)字符號變換信息的過程,涉及信息在時間、空間、語義層面的變化。計算思維是有效地認(rèn)識世界、解決問題、表達(dá)自我的一種思維方式[11]。《計算機(jī)教育與可持續(xù)競爭力》一書中提出:“計算思維是以信息的獲取和有效計算,進(jìn)行算法求解、系統(tǒng)構(gòu)建、自然與人類行為理解為主要特征,實現(xiàn)認(rèn)知世界和解決問題的思想與方法。”[6]歐洲信息聯(lián)盟主席E. Nardelli在2019年的ACM通訊上發(fā)文提出,計算思維是涉及建立計算模型,并且使用計算設(shè)備可以有效操作以達(dá)到某種目標(biāo)的思維過程,如果沒有計算模型和有效計算,就僅僅是數(shù)學(xué)[12]。
近十幾年來,隨著對于計算思維理論的深入研究,以及實踐應(yīng)用的經(jīng)驗增長,關(guān)于計算思維的本質(zhì)內(nèi)涵也有了越來越深刻的認(rèn)識,上面舉出的對于計算思維定義的演進(jìn)過程也說明了這一點(diǎn)。計算思維不僅僅是計算機(jī)科學(xué)家解決問題的思想方法,也是所有科學(xué)家在使用計算時所具有的思維模式,它的關(guān)鍵是計算模型,而在物理學(xué)、生物學(xué)等不同的學(xué)科里,計算模型具有不同的形式和性質(zhì)。計算思維是覆蓋所有學(xué)科的思維模式,并且在不同學(xué)科中有不同的表現(xiàn)和內(nèi)容。計算思維不是從計算機(jī)科學(xué)輸入到其他科學(xué)的,而是在每一個學(xué)科里,都蘊(yùn)含著豐富的計算思維內(nèi)容,我們的任務(wù)是把它開發(fā)出來。
二、計算思維2.0的新內(nèi)容
既然稱為計算思維2.0,那么它的新內(nèi)容是什么呢?
Denning 2017年在《科學(xué)美國人》上發(fā)表的文章指出,計算思維最本質(zhì)的概念是計算模型。作為現(xiàn)代科學(xué),模型是十分重要和基礎(chǔ)的,所有學(xué)科的研究都是在一個或者幾個模型架構(gòu)上展開的,即使對于社會科學(xué)和人文科學(xué)也是如此[13]。當(dāng)然不同的學(xué)科對于模型的結(jié)構(gòu)和性質(zhì)是不同的,僅就計算而言,傳統(tǒng)的物理學(xué)主要依賴于確定的和非確定的計算模型,人工智能卻主要依賴各種學(xué)習(xí)模型,而社會科學(xué)則更多使用統(tǒng)計計算模型。2011年圖靈獎得主J. Pearl多次論述過模型在科學(xué)研究中的重要性。古代巴比倫和希臘在天文學(xué)的研究中都取得了巔峰的成就,但是巴比倫人更多的是現(xiàn)象的描述,并沒有建立這些現(xiàn)象的模型,而希臘人首先建立了相關(guān)的模型,例如認(rèn)為地球是圓形的,漂浮在大海之中,不管這種模型現(xiàn)在看來多么荒謬,但是卻啟發(fā)了希臘人去測量地球的直徑,這是在模型理論指導(dǎo)下的創(chuàng)新工作。而擅長各種測量的巴比倫人,盡管測量精度遠(yuǎn)遠(yuǎn)超越了當(dāng)時的希臘人,卻無法做出觀察之外的成果。在科學(xué)觀察和科學(xué)思維兩個方面,希臘人無疑在后者做得更好,因此希臘人的理性主義發(fā)展成為現(xiàn)代科學(xué)的支柱之一[14]。在現(xiàn)代科學(xué)體系中,每一個學(xué)科都依賴于模型來表達(dá)研究對象和基本思想。計算模型對于計算學(xué)科來說也不例外,因此計算模型構(gòu)成了計算思維的核心概念,既是區(qū)別于其他思維形式的特征,也是劃分計算思維發(fā)展臺階的圭臬。
《關(guān)于計算思維的特質(zhì)性》一文曾經(jīng)指出,計算思維的兩大特征是關(guān)聯(lián)關(guān)系和交互式證明(區(qū)別于數(shù)學(xué)證明的另一種證明模式)[15]。這兩大特征分別對應(yīng)于兩種重要的模型。第一個對應(yīng)于各種學(xué)習(xí)模型。隨著大數(shù)據(jù)和人工智能的發(fā)展,當(dāng)前各種模型層出不窮,它們的共同特點(diǎn)是揭示了數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,而不是因果關(guān)系。交互式證明對應(yīng)于交互式圖靈機(jī)模型。這是使用交互方式進(jìn)行計算(證明)的模型,傳統(tǒng)的數(shù)學(xué)證明是其一個特例。交互式證明模型不僅在計算問題的復(fù)雜度分類和可行性方面提供了很好的理論,而且也是一些學(xué)習(xí)模型,例如生成對抗網(wǎng)絡(luò)(GAN)的理論基礎(chǔ)之一。人工智能中使用的學(xué)習(xí)模型與傳統(tǒng)的物理學(xué)和數(shù)學(xué)使用的模型是不同的,不同的模型反映了對于世界解釋的不同觀點(diǎn)和方法。
當(dāng)前,云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和移動計算被認(rèn)為是信息領(lǐng)域最有代表性的應(yīng)用,在這些領(lǐng)域里,模型或者架構(gòu)問題都是第一性和基礎(chǔ)性的。如果說,云計算、物聯(lián)網(wǎng)、移動計算代表了技術(shù)發(fā)展高峰,那么大數(shù)據(jù)和人工智能則更多帶來思想觀念的啟迪。在大數(shù)據(jù)計算領(lǐng)域,一些具有新型架構(gòu)的并行計算被陸續(xù)提出,利用新的算法理論(例如PAC算法或者可拓展算法)極大提高了問題求解的效率。對于NP類問題,用并行計算改善求解精度,對于P類問題,則用并行技術(shù)提高求解速度[16]。針對數(shù)據(jù)流動性的在線計算則是另一種全新的計算方法。傳統(tǒng)的計算都是假定數(shù)據(jù)已經(jīng)輸入好,并且在計算過程中,這些數(shù)據(jù)不會發(fā)生變化,但是在線計算卻是在數(shù)據(jù)的不斷輸入過程中隨時接收新的數(shù)據(jù)(包括原有數(shù)據(jù)的變動),完成計算任務(wù),因此這是一種新的計算模型。
在機(jī)器學(xué)習(xí)領(lǐng)域,卷積網(wǎng)絡(luò)揭示了圖像信息的局部相似性和局部特征的獨(dú)立性,這與人類識別圖像有著異曲同工之妙。深度學(xué)習(xí)采取了自適應(yīng)逐層編碼的思想,這與人類在認(rèn)知過程中,分層次處理和重編碼信息是類似的方法。曾經(jīng)多次完勝圍棋高手的AlphaGo,通過蒙特卡洛樹的搜索和增強(qiáng)學(xué)習(xí)技術(shù),以及深度學(xué)習(xí)網(wǎng)絡(luò),具備了從少量數(shù)據(jù)甚至是無數(shù)據(jù)情況下進(jìn)行學(xué)習(xí)的能力,同時也具備了這種能力的自我演化提升,已經(jīng)擁有了與人類學(xué)習(xí)和認(rèn)知相似的一些特征[17]。
隨著計算模型的不斷創(chuàng)新和完善,計算思維的特征得到了持續(xù)的豐富,所有的屬于計算思維的特征都與模型相聯(lián)系,并且在解決不同的問題時展現(xiàn)了多元的側(cè)面和技巧。從這個角度來理解計算思維及其在各個領(lǐng)域的表現(xiàn),就容易抓住計算思維的本質(zhì)。
不僅是計算機(jī)科學(xué)對于計算模型的研究取得了持續(xù)的進(jìn)步,在其他學(xué)科,有關(guān)計算和計算模型的重要性也在日益提升。根據(jù)《信息簡史》一書的介紹,當(dāng)代物理學(xué)、生物學(xué)等各學(xué)科也提出了一些新的計算模型,并且對于學(xué)科的發(fā)展起到了創(chuàng)新甚至革命的作用[18]。
在生物學(xué)中,基因連同相應(yīng)的操作構(gòu)成了生物學(xué)的計算模型,其中的表達(dá)、轉(zhuǎn)移、復(fù)制、糾錯等功能被逐漸發(fā)現(xiàn),例如RNA聚合酶,它從DNA模板轉(zhuǎn)錄生成RNA,就像圖靈機(jī)那樣讀取遺傳信息,并且以類似于算法的形式進(jìn)行轉(zhuǎn)換,這種把生命體在環(huán)境中的適應(yīng)和進(jìn)化看作是計算的觀點(diǎn),導(dǎo)致了生物信息學(xué)的產(chǎn)生,其中的思想武器之一便是計算思維。
在物理學(xué)中,對于很大和很小的空間尺度和時間間隔,物理學(xué)已經(jīng)越來越依賴信息而不是物質(zhì)本身進(jìn)行研究,信息科學(xué)的一些最重要和最深刻的發(fā)展都是從物理學(xué)那里取得的。物質(zhì)運(yùn)動的各種規(guī)律通過信息而被人們觀察感知,并且通過某種計算過程進(jìn)行分析、處理和預(yù)測,這些計算模型和計算方法促進(jìn)了現(xiàn)代物理學(xué)的很多理論發(fā)現(xiàn),例如黑洞蒸發(fā)、計算熱力學(xué)、量子糾纏等,其中最具有代表性的就是量子計算模型。沃爾夫物理學(xué)獎獲得者Charles Bennett指出:“事實證明,經(jīng)典信息理論的量子擴(kuò)展已經(jīng)得出了一個更清晰的、更強(qiáng)大的計算與信息理論?!盵18]
以往我們比較習(xí)慣于從計算機(jī)科學(xué)的角度來理解計算模型和計算思維,并且認(rèn)為其他學(xué)科是應(yīng)用了計算機(jī)科學(xué)的方法和技術(shù),但實際上各個學(xué)科都有屬于自己的計算模型和相應(yīng)的計算思維。就像能量和物質(zhì)是宇宙普遍存在的那樣,信息和計算也是宇宙的普遍屬性。當(dāng)前各個學(xué)科越來越多地從信息和計算的視角來研究問題,學(xué)科內(nèi)部的屬于計算的內(nèi)容被系統(tǒng)地開發(fā)出來。每個學(xué)科自身就蘊(yùn)藏著豐富的計算思維內(nèi)容。不同學(xué)科之間進(jìn)行交流、相互借鑒是必需的,計算機(jī)科學(xué)作為專門研究信息和計算的學(xué)科自然會為計算的廣泛應(yīng)用提供更多的概念和技術(shù)。
隨著科學(xué)的發(fā)展和技術(shù)的進(jìn)步,計算思維從朦朦朧朧的思想逐步清晰起來,形成了一種借助計算理解世界和改造世界的強(qiáng)大思想武器,到2006年正式作為一種科學(xué)研究的對象被提出。經(jīng)過十幾年的發(fā)展,來自各個學(xué)科的研究不斷開拓和深入,新的計算模型被陸續(xù)提出,特別是與這些計算模型相關(guān)的基本概念、計算方法、算法設(shè)計、問題求解、技術(shù)特色也在不斷創(chuàng)新,在此我們不一一陳述了,更多的內(nèi)容可參考相關(guān)文獻(xiàn)[19]。所有這些都為計算思維注入了新概念、新模型、新方法和新技術(shù),使得計算思維的內(nèi)涵與應(yīng)用越來越豐富和廣泛,形成的計算思維在理論和應(yīng)用上的新跨越,構(gòu)成了計算思維2.0的內(nèi)容。
三、從計算思維1.0到2.0
從20世紀(jì)50年代開始,逐步形成了關(guān)于計算思維的概念,到70年代,Knuth和Dijkstra對于計算思維有了清晰刻畫,S. Papert在1980年的書中出現(xiàn)了計算思維這個詞[20]。從20世紀(jì)80年代開始,在Wilson的呼吁和推動下,人們逐步認(rèn)識了計算和模擬是科學(xué)研究的第三種方法。2006年,周以真提出了關(guān)于計算思維的新理解(計算思維是像語言、計算那樣的人類生活基本技巧),推進(jìn)了社會對于計算思維的重視和普及,一些國家將計算思維的教育列入教育體系,計算思維成為公民教育的基本內(nèi)容,很多學(xué)科也在積極推進(jìn)本學(xué)科的計算化和信息化,促進(jìn)了學(xué)科的變革,這一時期可以稱為計算思維1.0時代。
近幾年來,由于信息技術(shù)的快速發(fā)展,人類社會由傳統(tǒng)的物理世界和人類世界組成的二元空間,進(jìn)入了物理世界、人類世界和信息世界的三元空間,并且正在向物理世界、人類世界、信息世界和智能體世界的四元空間變化。大數(shù)據(jù)和人工智能等新領(lǐng)域邁入了科學(xué)和社會舞臺的中心,促進(jìn)了AI賦能的新時代發(fā)展。針對大范圍和大數(shù)量的信息分析,以及各種人工智能體的研究、設(shè)計和應(yīng)用,產(chǎn)生了許多新的計算模型、算法形式和計算技術(shù),這些進(jìn)展推動了計算思維更加系統(tǒng)和深刻的認(rèn)知,進(jìn)入了新的發(fā)展時期,我們稱為計算思維2.0時代。
仔細(xì)分析當(dāng)今各個學(xué)科的發(fā)展,可以看出,計算思維不是計算機(jī)科學(xué)的專利,各個科學(xué)領(lǐng)域都把計算作為有力的武器,設(shè)計了各具特色的計算模型或者算法來解決本領(lǐng)域的問題,繼理論研究者、實驗工作者之后,很多科學(xué)家也成為計算的設(shè)計者。有很多屬于計算思維的內(nèi)容并不是從計算機(jī)科學(xué)那里發(fā)源的,反而是計算機(jī)科學(xué)家從其他學(xué)科中得到深刻的啟迪,并進(jìn)而推動了計算科學(xué)的發(fā)展。
說到計算模型,很容易想到圖靈機(jī)和通用程序語言,這當(dāng)然是最一般的,而且?guī)缀跏菬o所不能的,但是也可能是無用的。在實際的不同領(lǐng)域,更為具體的計算模型和專門的算法發(fā)揮著更大的作用。無論是物理學(xué)、生物學(xué)或者化學(xué),都在大力應(yīng)用計算技術(shù)進(jìn)行研究,這些方法主要是通過領(lǐng)域?qū)<覍崿F(xiàn)的,計算機(jī)科學(xué)家的工作是使得計算工具用起來更加得心應(yīng)手。從早期的大型機(jī)器為主流的計算,發(fā)展到以網(wǎng)絡(luò)為主流,現(xiàn)在又進(jìn)入了以云計算為主流的時代。這些變化導(dǎo)致了計算的設(shè)計、實現(xiàn)和評價的不斷進(jìn)步,也促進(jìn)了背后的計算思維在內(nèi)容和形式上的變革。
人工智能已成為當(dāng)今社會發(fā)展的重要引擎之一,對于它的研究和應(yīng)用也為計算思維增添了新的內(nèi)容。例如,傳統(tǒng)的算法設(shè)計是對于一類問題,有一個統(tǒng)一的計算步驟,使得面對該類中任何具體問題,調(diào)整若干參數(shù)就可以執(zhí)行相應(yīng)的計算,這是從一般到具體的求解問題思路(即所謂具化)。但是在人工智能中,我們面臨著另一類算法,它是從具體的問題出發(fā),通過原則上稱為歸納的方法,設(shè)計一種算法,可以對于這些具體問題所在的一大類問題給出計算結(jié)果(即所謂泛化),這是與傳統(tǒng)算法完全不一樣的設(shè)計思想,是從具體到一般的求解問題的思路。對于前者的算法,它的設(shè)計、評價和分析都具備了較為成熟的理論,包括并行算法和近似算法。但是對于后者的算法,現(xiàn)在的認(rèn)識還不是很深入,許多問題有待進(jìn)一步解決。由于這類算法是從具體到一般,從抽樣到整體,因此數(shù)學(xué)意義上的精確性基本是不存在的,我們必須容許某種不精確性和不確定性,對于這類算法的設(shè)計原則,評價標(biāo)準(zhǔn)和性能比較都需要有新的思路[21]。這種在人工智能中大量存在的算法模式豐富了對于算法的認(rèn)知,自然也豐富了計算思維的內(nèi)容。
長期以來,人們一直是以物質(zhì)(能量)和物質(zhì)的運(yùn)動來看待世界和解釋世界的,信息只是貼附于物質(zhì)的一種表現(xiàn)。隨著現(xiàn)代科技的進(jìn)步,逐漸認(rèn)識到信息本身就是世界,或者說是世界的一種表現(xiàn),信息與物質(zhì)一起構(gòu)成了人類認(rèn)知世界的二維理論,世界是物質(zhì)的,也是信息的。從這個觀點(diǎn)來重新解釋和定義我們周邊的事物,成為信息時代創(chuàng)新的不竭源頭。例如在制造業(yè),傳統(tǒng)的看法認(rèn)為制造過程是典型的物質(zhì)流,各種材料經(jīng)過有序的加工環(huán)節(jié),成為產(chǎn)品,是以物質(zhì)流為中心組織生產(chǎn),物質(zhì)流帶動信息流。而數(shù)字制造卻是對于制造過程進(jìn)行數(shù)字化描述,從而在建立的數(shù)字空間中完成產(chǎn)品生產(chǎn),是以信息流為中心組織生產(chǎn),信息流帶動物質(zhì)流。這種觀點(diǎn)的變化,引起了制造業(yè)顛覆性的革命,形成了全新一代的數(shù)字制造技術(shù)。
我們可以用不同的角度來看待和解釋這個世界,并且在此基礎(chǔ)上設(shè)計和定義各種結(jié)構(gòu)、流程和目標(biāo)(社會系統(tǒng)或者自然系統(tǒng))。如果采用信息、信息流和計算的觀點(diǎn),就可以把所有的自然過程和經(jīng)濟(jì)社會過程看作是信息運(yùn)動,在這個觀點(diǎn)下,計算和算法成為信息處理的主要手段,萬事皆可算,萬物皆可算。這在傳統(tǒng)的觀念中開創(chuàng)了新的洞天。不僅前面說過的制造過程是信息流的運(yùn)動,零售業(yè)也是信息流的運(yùn)動,消費(fèi)品的需求信息帶動的商品流,導(dǎo)致了數(shù)字物流和電子商務(wù)。出租汽車也是信息流的運(yùn)動,快捷出行的需求信息帶動的交通流,導(dǎo)致了網(wǎng)約出租和智能汽車。甚至社會組織和結(jié)構(gòu)也可以從信息流的角度來重新規(guī)劃和定義,電子政務(wù)、數(shù)字媒體、智慧城市、網(wǎng)絡(luò)安全等,都是在信息觀和算法觀下的對于自然、社會乃至人類自身的重新認(rèn)識。正是由于這種以物質(zhì)為本到以信息為本的觀念轉(zhuǎn)變,整個社會、經(jīng)濟(jì)、科學(xué)、文化都呈現(xiàn)了前所未有的變革,顛覆傳統(tǒng)模式和習(xí)慣的創(chuàng)新層出不窮,比比皆是。由此產(chǎn)生了新產(chǎn)品、新業(yè)態(tài)、新結(jié)構(gòu)和新模式。這種涉及人類社會各個領(lǐng)域的跨越,沒有思維層面的變革是無法做到的。從這一層意義上說,計算思維不是一種被動的認(rèn)知世界的思維方式,更是一種主動改造世界的思維方式,對于傳統(tǒng)性認(rèn)知的顛覆,促進(jìn)了全新的社會結(jié)構(gòu)和經(jīng)濟(jì)系統(tǒng)的誕生。
綜上所述,十幾年來,計算思維從理論、內(nèi)容、領(lǐng)域、應(yīng)用等諸方面都取得很大進(jìn)展。計算思維成為覆蓋各個領(lǐng)域的更為廣泛的思維模式。計算模型和相應(yīng)的算法設(shè)計是計算思維的核心概念,隨著大數(shù)據(jù)和人工智能的快速發(fā)展,對于計算思維在實際應(yīng)用中的重要位置也進(jìn)一步提升。下面我們簡單列出計算思維1.0與計算思維2.0的區(qū)別(見表1),其中部分內(nèi)容取自文獻(xiàn)[22]。
聯(lián)合國教科文組織在2019年5月發(fā)布的人工智能教育報告中指出,計算思維已經(jīng)成為使學(xué)習(xí)者在人工智能驅(qū)動的社會中蓬勃發(fā)展的關(guān)鍵能力之一[5]。計算思維具有二重性,本身既作為基本的科學(xué)對象,同時也具有學(xué)科的橫向價值,從不同學(xué)科領(lǐng)域萌發(fā)的計算技術(shù)和方法,經(jīng)過計算機(jī)學(xué)科的精雕細(xì)琢以后,又為解決其他學(xué)科的問題提供了新的思想和方法。這里我們提出了一個重要的問題,對于計算思維的教育與普及并不是讓學(xué)生欣賞計算機(jī)科學(xué)家做了什么,而是要讓學(xué)生知道在他們所從事的科學(xué)領(lǐng)域,計算能做什么?;蛘哒f,重要的不是讓學(xué)生了解計算機(jī)科學(xué)家做了什么,而是讓學(xué)生學(xué)會如何用新的思維解決本領(lǐng)域的問題。
美國IEEE計算機(jī)學(xué)會前任主席David Grier認(rèn)為,未來10~15年計算機(jī)教育面臨挑戰(zhàn),即如何構(gòu)建一個課程體系來幫助人們更清晰地思考計算,而不僅僅去重申計算以及計算機(jī)科學(xué)家的重要性[23]。因此,從整體層面來講,計算思維關(guān)注的是計算的科學(xué)和文化內(nèi)涵,提供一種描述現(xiàn)實和工程技術(shù)適用的概念范型。計算思維的第一功能是提出問題解決方案和設(shè)計系統(tǒng),而不是編寫程序和重復(fù)某些技巧。計算思維是一種世界觀和方法論,是一種通過科學(xué)建模(計算模型),實現(xiàn)對于自然世界和社會及人類行為全面和深刻理解的更為深遠(yuǎn)和本質(zhì)的內(nèi)容。
參考文獻(xiàn):
[1] J. M. WING. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] G. POLYA. How to solve it:A New Aspect of Mathematical Method[M]. Princeton University Press,2004.
[3] K. G. WILSON. Grand challenges to computational science[J]. Future Generation Computer Systems. 1989, 5: 171-189.
[4] D. BALTIMORE. How biology became an information science. In The Invisible Future: The Seamless Integration of Technology into Everyday Life[M]. ed. P. Denning, New York: McGraw-Hill, 2001: 43-46.
[5] United Nations Educational, Scienti?c and Cultural Organization. Artificial Intelligence in Education:Challenges and Opportunities for Sustainable Development[Z]. Paris 07 SP, France, 2019.
[6] 計算機(jī)教育20人論壇報告編寫組. 計算機(jī)教育與可持續(xù)競爭力[M]. 北京:高等教育出版社,2019.
[7] 中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002研究組. 中國計算機(jī)科學(xué)與技術(shù)學(xué)科教程2002[M]. 北京:清華大學(xué)出版社,2002.
[8] 陳國良,董榮勝. 計算思維與大學(xué)計算機(jī)基礎(chǔ)教育[J]. 中國大學(xué)教學(xué),2011(1):7-11.
[9] A. AHO, Computation and computational thinking[Z]. Ubiquity Symposium,? DOI:10.1145/
1895419.1922682,2011.
[10] International Society for Technology in Education and Computer Science Teachers Association. Operational Definition of Computational Thinking for K-12 Education[EB/OL]. https://id.iste.org/docs/ct-documents/computational-thinking-operational-definition-flyer.pdf?sfvrsn=2, 2011.
[11] 徐志偉,孫曉明. 計算機(jī)科學(xué)導(dǎo)論[M]. 北京:清華大學(xué)出版社,2018.
[12] ENRICO NARDELLI. Do we really need computational thinking?[J]. Communications of the ACM, 2019, Vol. 62 No. 2: 32-35.
[13] PETER J. DENNING. Computational Thinking in Science,American Scientist[J]. Volume 105,2017: January-February.
[14] JUDEA PEARL, DANA MACKENZIE. The book of why: The new science of cause and effect[M]. Allen Lane, 2018.
[15] 李廉. 關(guān)于計算思維的特質(zhì)性[M]. 中國大學(xué)教學(xué),2014(11):7-14.
[16] 陳國良,等. 大數(shù)據(jù)計算理論基礎(chǔ)[M]. 北京:高等教育出版社,2017.
[17] DAVID SILVER, et al. Mastering the game of Go without human knowledge[EB/OL]. https://deepmind.com/documents/119/agz_unformatted_nature.pdf. 2017.
[18] 詹姆斯·格雷克. 信息簡史[M]. 北京:人民郵電出版社,2013.
[19] J. VOOGT, P. FISSER, et al. Computational thinking in compulsory education: Towards an agenda for research and practice[J]. Educ Inf Technol, 2015, 20:715-728 DOI 10.1007/s10639-015-9412-6.
[20] S. PAPERT. Mindstorms: Children, Computers, and Powerful Ideas[M]. Basic Books, 1980.
[21] LESLIE VALIANT. Probably approximately correct: Natures algorithms for learning and prospering[M].? Basic Books, 2013.
[22] PETER J. DENNING. Remaining trouble spots with computational thinking[J]. Communications of the ACM, 2017, 60:6.
[23] DAVID GRIER. 如何以計算的視角來思考[J]. 孫曉明,譯. 中國計算機(jī)學(xué)會通訊,2019,15(4).
[責(zé)任編輯:余大品]
陳國良,中國科學(xué)院院士,中國科學(xué)技術(shù)大學(xué)、深圳大學(xué)教授;李 廉,合肥工業(yè)大學(xué)原黨委書記,教授;董榮勝,桂林電子科技大學(xué)教授。