摘要:總結目前計算思維的研究現狀,對計算機科學思維、計算思維和計算機思維等概念的一致性進行分析比較,從不同方面綜合分析和闡述計算思維的特征,并對計算思維研究的基本問題進行初步探討。強調計算科學方法論研究對計算思維研究的重要性,同時指出計算科學思想史研究將對計算思維和計算科學方法論的研究產生積極作用。
關鍵詞:計算;計算學科;計算機科學思維;計算思維;計算機思維
隨著計算機科學技術的發(fā)展,計算領域已成為一個極其活躍的領域,計算學科也成為一門范圍極為寬廣的學科[1]。在此發(fā)展過程中產生的種種現象,在很大程度上改變了人們對世界的認識,有力地刺激了人文科學的發(fā)展,人們對認知科學的研究就是“以電子計算機的產生發(fā)展為物質、技術基礎,以計算機與人腦相類比為前提的[2]”。我國著名科學家錢學森院士從近三十年電子計算機發(fā)展引起的新技術革命,兩千多年邏輯學發(fā)展的經驗教訓,作為符號處理系統(tǒng)的計算機在智能方面存在的嚴重缺陷,尤其是人們在高級抽象思維領域,如辯證思維、形象思維、創(chuàng)造性思維尚缺乏研究等方面,對認知科學的發(fā)展進行了科學的分析。同時結合我國科學技術發(fā)展的現狀和特點,提出了“思維學”的理念,給出了“思維科學”的研究框架、研究方向與基本道路,并在隨后的一系列工作中進一步充實和完善了思維科學的理論與思想體系[3]。他指出:“現代科學技術的實踐,正預示著更重大的變革——思維科學的出現?!薄耙鲞@項變革的是電子計算機”。而“推動思維科學研究的是計算機技術革命的需要[4]”。在錢學森的倡導下,自上世紀80年代起,面向新技術革命的思維科學研究愈來愈受到國內有關專家學者的關注與重視。
在計算機科學與技術領域,隨著美國計算機學會(簡稱ACM)和美國電氣和電子工程師學會計算機分會(簡稱IEEE-CS)組成的聯(lián)合攻關組于1988年底提交了“作為學科的計算科學”的報告[5],計算學科的“存在性”得以證明。隨后,CC1991報告和CC2001報告等相繼出臺,從學科的角度詮釋了計算科學的內涵與外延,為計算學科建立了現代課程體系。在計算學科課程體系的本土化進程中,我國相關領域的專家學者們付出了艱辛努力,并取得實質性成果,于2002年提出了“中國計算機科學與技術學科教程2002”(China Computing Curricula 2002,簡稱CCC2002)[6]。在CC2002教程的引導下,針對計算機科學與技術學科教育方面的諸多問題,國內從事計算機科學與技術學科教育的廣大工作者進行了廣泛而有益的探討[7-10],大大豐富了計算學科課程體系建設的內容。在計算學科課程教育改革的進程中,如何培養(yǎng)既能熟練掌握計算機科學的知識與技能,又具有計算機科學學科意識和素養(yǎng)的人才問題,逐步成為人們關注的主要方面。
基金項目:本文受江蘇省教育廳指導性計劃項目“計算機思想史研究”(03KJD520028)及江蘇科技大學高教項目“計算思維與創(chuàng)新教育”(GJKTY2009025)資助。
作者簡介:張曉如(1963-),女,教授,學士,研究方向為計算機應用教育、數據庫;張再躍(1961-),男,教授,博士,研究方向為可計算性理論與知識工程。
一個人的實踐與創(chuàng)新能力與思維方式密切相關,與其他學科領域的科學家和工程技術人員等相比,計算機學科的專家學者們在思考問題、分析問題和解決問題方面也應有其獨特的地方。正如計算大師Dijkstra所言:“我們所使用的工具影響著我們的思維方式和思維習慣,從而也將深刻地影響我們的思維能力[11]?!币虼耍斢嬎銠C與人們的生活聯(lián)系越來越趨密切的形勢下,研究與之相關的人類思維活動與思維方式便成為現代思維學科領域中一個十分重要的課題。我們不妨稱此種思維為面向計算學科的思維。顯然,面向計算學科的思維除了具有一般思維的特點外,還具有其自身的特性,而后者則是從事計算機科學研究的人員和計算機教育工作者們更為關心的。究竟什么是面向計算科學的思維?它的特點是什么?對面向計算學科的思維研究對計算學科的發(fā)展會產生哪些積極作用?這種思維能力是可以培養(yǎng)的嗎?又如何培養(yǎng)呢?我們現行的計算機課程教學內容結構會因此而有所改變嗎?
1面向計算學科的思維
國內最早面向計算學科思維的研究文章是收集在2000年全國高等師范院校計算機教育研究會年會論文集上筆者的《談談計算機思維》[12]一文。當時的“計算機思維”意為“計算機科學思維”(Computer Science Thinking),在隨后關于面向計算科學的思維研究中,相繼出現了“計算思維”(Computational Thinking)[13-14]與廣義“計算機思維”(Computing Thinking)[21]等概念。這些概念雖然與“計算機”有關,但它們有一個共同特點,即它們都是關于人的思維。
1.1計算思維與計算機思維
“計算思維”的思考和研究在國內受到更多專家學者的關注與重視,要歸功于全國高等學校計算機教育研究會于2008年10月31日至11月2日在桂林召開的一次專題學術研討會,會議的主題是“探討在教學過程中,如何以課程為載體講授面向學科的思維方法,共同促進國家科學與教育事業(yè)的進步”。會議從8各方面征集論文,無不涉及“計算思維”。在會議提供的資料中,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M.Wing)教授2006年3月發(fā)表在美國計算機權威雜志ACM會刊上的文章《計算思維》(Computational Thinking)[13-14]和王飛躍2007年3月發(fā)表在中國計算機學會通訊的文章《從計算思維到計算文化》[11]位居榜首。其中,王飛躍教授從計算機文化發(fā)展的高度對“計算思維”概念的提出和“計算思維”的研究與發(fā)展對計算科學的進步產生的深遠影響給出了充分肯定。王飛躍教授在提及國內對“計算思維”研究和計算文化與計算思維聯(lián)系方面的狀況時指出,“在中文里,計算思維不是一個新名詞,常被朦朦朧朧地使用,卻一直沒有被提到周教授所描述的高度廣度,那樣的新穎、明確、系統(tǒng)”。這一陳述雖然有一定的道理,但不完全正確。“計算思維”從命名的角度可以如是說,但就其作為面向計算機科學思維的概念與特征而言,無論從高度講,還是從廣度說,周以真教授的描述確有“新穎”之處,但在“明確”和“系統(tǒng)”方面,同本文作者在上世紀90年代末就提出的“計算機思維”的概念在主要方面是基本一致的,并可形成互補。特別指出的是,《談談計算機思維》在談到計算機文化與計算機思維相互之間的聯(lián)系時指出,“隨著計算機科學的發(fā)展,‘計算機’已不再是一個單純的計算工具的代名詞,而是信息時代高新技術的象征??梢赃@樣說,‘計算機’作為一種文化,已滲透到社會發(fā)展的各個領域,而使得生活在這一時期的人們的思維活動中或多或少地與‘計算機’這一概念相聯(lián)系,研究與之相關的思維活動與思維方式,便成為現代思維科學領域中一個十分重要的課題[12]”。在此,我們可以把有關“計算思維”特征的陳述同有關“計算機思維”的陳述作一比較。
周以真教授在對計算思維的描述中首先指出,“計算思維是每個人的基本技能,不僅僅屬于計算機科學家”,這一觀點與《談談計算機思維》一文中提出的“計算機思維具有廣泛性。計算機思維已不僅僅是計算機科學家所應具有的思維,而應是全民族所必須的”的觀點是完全一致的。并且文中還強調,“只有這樣,計算機科學的發(fā)展才能具有廣泛的社會基礎,才能使計算機科學真正服務于社會”。在總結計算思維的特征時,周以真教授從6個方面,以“是”與“不是”的對立統(tǒng)一作了闡述。
首先,“計算思維”是概念化,不是程序化。計算機科學不是計算機編程。像計算機科學家那樣去思維意味著遠遠不止能為計算機編程,還要求能夠在抽象的多個層次上思維[13-14]。正如參考文獻[12]作者所指出的,“人類關于計算機思維的活動有著古老的歷史”。在人類探索發(fā)現的歷史長河中,“人們一直在努力,試圖尋找一種能夠代替人類進行計算的工具。長期以來,人類的這種想法從未間斷過”,正因如此,人類才有了計算機的出現。“可以這么說,人類的計算機思維是在計算機出現之前就開始了”。而“計算機編程”僅僅是計算機應用技術領域的一個方面。
其次,“計算思維”是根本的,不是刻板的技能。根本技能是每一個人為了在現代社會中發(fā)揮職能所必須掌握的??贪寮寄芤馕吨鴻C械的重復。具有諷刺意味的是,只有當計算機科學解決了人工智能的大挑戰(zhàn)——使計算機像人類一樣思考之后,思維可以真地變成機械的了[13-14]。這里面多少糾纏了目前人工智能領域類似“計算機是否能夠具有人的智力”等方面問題的討論。然而,當我們把我們所說的“計算思維”或“計算機思維”的概念闡述清楚后,也就沒有爭論的必要了。如果有一天“計算機真正能夠像人類一樣思維”,那么它也是人類“計算思維”的產物。正如參考文獻[12]中陳述的,“計算機思維具有典型的創(chuàng)造性、動態(tài)性、超前性。在現代社會中,只有具有創(chuàng)造性的思維,綜合知識、經驗,多角度,橫向、縱向、逆向去探索,去解決問題,才能創(chuàng)造出具有社會價值的新穎而獨特的產物[15]”。
第三,“計算思維”是人的,不是計算機的思維。計算思維是人類求解問題的一條途徑,但決非要使人類像計算機那樣地思考。計算機枯燥且沉悶,人類聰穎且富有想象力。是人類賦予計算機激情。配置了計算設備,我們就能用自己的智慧去解決那些計算時代之前不敢嘗試的問題,實現“只有想不到,沒有做不到”的境界[13-14]。且不談什么“想到”和“做到”的問題,這里,至少“計算思維”主體的認定與“計算機思維”的主體是一致的?!跋氲健币埠?,“做到”也罷,只要是面向計算學科的問題,都離不開人們的“計算機思維”。
第四,“計算思維”是數學和工程思維的互補與融合。計算機科學在本質上源于數學思維,因為像所有的科學一樣,其形式化基礎建筑于數學之上。計算機科學又從本質上源自工程思維,因為我們建造的是能夠與實際世界互動的系統(tǒng),基本計算設備的限制迫使計算機學家必須計算性地思考[13-14]。這段話極其精煉地闡述了計算機科學根源的本質,說明了計算思維的來源與受囿范圍。參考文獻[12]對此也進行了類似的探討,認為“計算機思維是一種綜合性思維,它與數學思維、物理思維等諸多對象性思維有著密切聯(lián)系”,早在“公元前3世紀,古希臘和中國的數學家就有了算法的概念,像當時歐幾里德的輾轉相除法就是很好的例子。大約在公元7世紀,阿拉伯著名數學家阿爾哥茲米給出了現在人們所熟悉的自然數運算法則。在阿拉伯人的影響下,西班牙的盧利提出要造機器來實現推理過程”,這一思想“對后世產生了深刻影響”,直到人們發(fā)明了電子計算機。由此可見,計算機思維的雛形是以數學思維方式為基礎的,在“計算機科學高度發(fā)展的今天,這種思維活動的內容和形式也在發(fā)生著巨大變化,它是以計算機問題為載體,通過發(fā)現問題、解決問題的形式,達到對現實世界與計算機世界的統(tǒng)一及轉換的一般性認識的思維過程”。
第五,“計算思維”是思想,不是人造品。不只是我們生產的軟硬件等人造物將以物理形式到處呈現并時時刻刻觸及我們的生活,更重要的是計算的概念,這種概念被人們用于問題求解、日常生活的管理,以及與他人進行交流和互動[13-14]。的確如此,“計算思維”的形成發(fā)展同“計算”概念的形成與發(fā)展密切相關。在《淺談計算科學思想史研究》一文中,作者將“計算”概念的形成與發(fā)展大致分為三個階段,第一階段是“計算概念的初識—抽象思維的進步”;第二階段是“計算概念的定義—計算本質的揭示”;第三階段是“計算概念的發(fā)展—計算方式的進化”[16]。而“我們生產的軟硬件等人造物”只是在人們對計算認識過程的第3個階段才“以物理形式到處呈現并時時刻刻觸及我們的生活”的。正是因為計算機的應用如此廣泛,因而有了下面的陳述。
第六,“計算思維”是面向所有的人,所有地方。當計算思維真正融入人類活動的整體,以致不再表現為一種顯式之哲學的時候,它就將成為現實[13-14]。這說明“計算思維”應當具有“普適性”,但這種“普適”的內部是有差異的?!坝捎谟嬎銠C科學是一門新興學科,其本身的內容日新月異,以及人的智力水平有高低之分,人們已掌握的計算機知識各有差異,不同人的計算機思維具有很大差別”,因此“計算機思維具有層次性”,“但只要具有思維品質中的獨創(chuàng)性,就能創(chuàng)造性地解決問題,這樣,不同層次上的計算機思維均可得到同步發(fā)展[12]”。
通過上述分析比較,我們可以看到,“計算思維”并不是一個“新”的概念,其本質就是“計算機思維”,當人們把狹隘意義上的計算機科學與計算機工程一并納入計算學科領域,提出“計算學科”概念時,“計算思維”的提法可能更容易被大家所接受。
1.2計算機思維與計算機教育
研究計算機思維的根本目的在于更好地開展計算機教育活動。最早撰寫《計算機思維》[12]一文,源于筆者當時對計算機教育學的研究。1998年11月,我們就編著出版了《中學計算機教育學》一書,以培養(yǎng)合格的中學計算機教師為目的,對計算機教育的基本規(guī)律、基本理論、教學過程、教學方法與手段、教學評價等方面的內容作了較為系統(tǒng)的闡述[17],當時國內一些師范大學和高等院校以本書作為計算機科學與技術(師范類專業(yè))本科生教材和本專業(yè)方向研究生入學考試的參考書,該書于2001年4月重新修訂出版[18]。在長期的計算機課程教學與實踐過程中,我們和廣大的計算機教育工作一樣,始終都在圍繞著一個問題開展和實施計算機課程教學活動,即面對計算機課程中的概念和要解決的問題,如何引導學生學會正確的思考,這是使學生能夠更好地掌握計算機基本知識和基本技能的一個重要前提條件。一般來說,針對計算機課程教學過程中,特別是教學內容中所涵蓋的不同類型的各種問題,思考內容與思考方式都有一定區(qū)別。但是這些思維活動是否存在共性?是否有別于面向其他學科領域的思維活動?如果能夠弄清楚這些問題,對有效地開展計算機教育是有指導意義的。于是在完成了《中學計算機教育學》一書后,筆者便著手開始考慮這方面的問題。由于當時大洋彼岸關于“計算學科”論證的信息尚未傳至國內,我們便以當時國內對計算機學科較為普遍的認識為依據,結合已有的學科對象思維的命名,如數學思維、物理思維、化學思維等,將面向計算機學科的思維取名為“計算機科學思維”(Computer Science Thinking),簡稱“計算機思維”。這里的“計算機”并非物的實體,而是一個學科的代名詞。
在《談談計算機思維》一文中,我們首先闡述了“計算機思維”的概念,認為計算機思維并不是人類有了計算機后才出現的思維方式,而是“有著古老的歷史”,計算機的出現恰恰是人類有關的思維與實踐活動交替反復、不斷進步上升的結果,這一結果的出現反過來又大大促進了這種思維與實踐活動向更高的層次邁進。在計算機科學高度發(fā)展的今天,這種思維活動的內容和形式也在發(fā)生著巨大的變化,它是以計算機問題為載體,通過發(fā)現問題、解決問題的形式,達到對現實世界與計算機世界的統(tǒng)一及轉換的一般性認識的思維過程。計算機思維的主體是具有特殊生理和心理機制的人,計算機思維的客體是客觀世界。計算機思維是“人們有意識地將計算機用于生產、生活等各個領域的認知活動以及人們解決計算機問題的認識過程”,“計算機思維研究的內容是十分廣泛的,它是以辯證唯物主義的基本原理為基礎,以思維科學的基本理論為依據,并結合計算機科學發(fā)展的特點,以及教育學、心理學等諸多學科的有關理論而形成的一門新的思維理論”。在對計算機思維的概念描述之后,作者從計算機應用技術的普遍性,人們掌握計算機技術的差異性,計算機科學與其他學科的聯(lián)系,思維活動的創(chuàng)造性、動態(tài)性、超前性以及可傳遞性等方面論述了計算機思維的基本特征,并指出了在現代教育中培養(yǎng)和發(fā)展計算機思維的重要意義。
為了更好地挖掘計算機思維的內涵,更加清楚地了解與把握計算機思維與其他學科思維方式的聯(lián)系與區(qū)別,我們對計算科學發(fā)展的過程進行了初步考察,提出了“計算科學思想史”研究的基本思想,并對計算科學思想史研究的特點、研究內容、研究方法進行了分析探討[16]。同時結合現代計算機課程教育,提出了基于知識背景的計算機課程教學改革的基本構想[19]。我們深信,無論是對計算機思維的研究,還是對計算科學思想史的研究,都會對計算機教育的實踐與發(fā)展產生重要影響。
2 “計算思維”研究現狀
無論叫計算思維,還是稱計算機思維,關鍵是要解決問題,即“如何讓人們學會像計算機科學家一樣去思考”。從總體看,計算思維的研究應包含計算思維研究的內涵和計算思維推廣與應用的外延兩個方面。周以真在給出“計算思維”概念后,進一步探討了計算思維的本質,并指出計算思維將在各種行為方面影響每個人,這一點對我們的社會教育提出挑戰(zhàn),特別是少兒教育。在關于計算的思考中,我們需要理解不同類型的3個方面:科學、技術與社會。飛速發(fā)展的技術進步和巨大的社會需求迫使我們重新思考計算科學最基本的問題[20]。從周以真教授多次關于計算思維的論述中可以看出,其“計算思維”的概念是面向社會、面向教育和面向大眾的。這也許是一種策略,為了能讓更多的人關注并思考“計算思維”的問題,并將思考的結果應用于計算科學實踐,以此促進計算科學的普及和發(fā)展。在對“計算思維”的深入研究過程中,郭喜鳳教授等從工程化的角度對“計算思維”的內涵進行剖析[20],以周以真面向大眾的計算思維為基礎,根據計算機科學與技術中的理論、技術、工程、工具、服務和應用等幾個不同層面的思維特點,闡述了計算思維的工程化思想,ppT3QUi4m1Wcv+eUgeUfyw==將計算思維的概念加以推廣并提出了計算機思維(Computing Thinking)工程化的層次結構,豐富了計算思維的研究內涵。董榮勝和古天龍教授從計算機科學與技術方法論的角度對計算思維研究的外延進行分析。“計算機科學與技術方法論是對計算領域認識和實踐過程中一般方法及其性質、特點、內在聯(lián)系和變化發(fā)展進行系統(tǒng)研究的學問。計算機科學與技術方法論是認知計算學科的方法和工具,也是計算學科認知領域的理論體系[21]”。在關于計算思維和計算機科學與技術方法論之間關系的論述中,董榮勝和古天龍教授在周以真教授工作的基礎上,對計算思維的特征進一步加以闡述,從抽象與自動化兩個方面,以具體的實例刻畫了計算思維的本質,并介紹了國外關于計算思維研究的進展情況。在談到計算思維與計算機方法論關系時,他們指出,“盡管計算思維與計算機方法論有著各自的研究內容與特色,但是,顯而易見,它們的互補性很強,可以相互促進”?!坝嬎銠C方法論可以對計算思維研究方面取得的成果進行再研究和吸收,最終豐富計算機方法論的內容;反過來,計算思維能力的培養(yǎng)也可以通過計算機方法論的學習得到更大的提高[22]”。這不是一個一般概念的問題,我們認為是計算思維研究的一個技術路線問題,只有把計算思維的研究同計算機科學與技術方法論有機地結合起來,計算思維才具有實際的意義和價值,計算機科學與技術的方法才能夠獲得進步。
3 “計算思維”研究內容
不管是周教授的計算思維(Computational Thinking),或是郭教授的計算機思維(Computing Thinking),還是計算機科學思維(Computer Science Thinking),它們都有一個共同面向,即都是面向計算學科的思維;都有一個共同的出發(fā)點,即研究和探索面向計算學科的思維規(guī)律;都有一個共同的目標,即引導人們在解決有關計算學科及其應用領域問題時,能夠運用正確的思維方法。計算學科是關于“計算”的學問,因此,計算思維的研究勢必圍繞解決所謂“計算問題”而展開。
3.1計算思維研究的基本問題
何謂計算思維?《談談計算機思維》一文對計算機思維的內容進行了概括,即人們有意識地將計算機用于生產、生活等各個領域的認識活動以及人們解決計算機問題的認識過程。一方面,它是指一種形式,這種形式表現為人們認識具體的計算機科學,或是應用計算機科學于其他科學、技術的過程中的辯證思維;另一方面,它是由計算機科學本身的特點及計算機作為認識世界的工具所決定的,它同樣受到一般思維方式的限制[12]。周教授則將計算思維歸納為運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[13]。董教授等則從方法論的角度將計算思維定義為運用計算機科學的思想與方法進行問題求解、系統(tǒng)設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[22]。
從上述關于計算思維的描述可以看出,無論從哪個角度講,計算思維都涉及解決計算機問題和應用計算機解決問題兩個方面。我們把有關計算學科自身內容的問題和涉及其他學科領域的計算機應用問題統(tǒng)稱為“計算問題”。圍繞計算問題產生和發(fā)展起來的理論、方法和技術,構成了計算學科的全部內容體系。其中既有關于計算學科內涵的部分,也有關于計算學科外延的部分。當我們把人類的思維活動同計算問題的這兩個方面結合起來加以考慮的時候,我們自然會問:計算思維的核心部分是什么?它的延伸和涉及范圍有多大?因此也就產生了一個問題:計算思維的內涵和外延是什么?
周教授在總結計算思維的特征時,將計算思維描述成“數學與工程思維的互補與融合”,并將計算思維的本質(Essence)概括為抽象(Abstraction)和自動化(Automation)[23]。這讓我們隱約感覺到了計算思維的“內涵”與“外延”。但是我們不能簡單地把計算思維的內涵描述成數學思維與工程思維的交集,也不能簡單地把計算思維的外延描述成數學思維和工程思維的并集。在此方面,郭教授等關于計算思維研究的技術路線可以給我們帶來一定的啟發(fā),郭教授等認為,“計算機思維源于并服務于由理論、技術、工程、工具、服務和應用構成的計算鏈(或計算網絡)。這一計算鏈以理論為始點,以應用為終點。這一計算鏈上的每一結點都將產生計算機思維,而計算機思維從這一計算鏈的始點到終點的轉化,構成了計算機思維的工程化。計算機思維從這一計算鏈的終點到始點的轉化構成了計算機思維的抽象、升華和理論化[20]”。這段陳述以“鏈”(不妨稱“郭氏鏈”)的形式描述了計算思維的層次結構。需要補充的是,計算機思維(Computing Thinking)或計算思維的抽象、升華和理論化并不是一次完成的,應該是從“郭氏鏈”的“起點”到“終點”周而復始的轉化過程中形成和發(fā)展的。假設“郭氏鏈”包涵了計算學科的全部內容,以此為基礎,姑且把計算理論、計算技術研究與抽象納入解決計算機問題的范疇,而把計算工程、計算工具、計算服務和計算應用的設計與開發(fā)納入應用計算機解決問題的范疇,那么,我們就可以把關于計算理論、計算技術的思維活動的內容歸納為計算思維的“內涵”,而把關于計算工程、計算工具、計算服務和計算應用的思維活動的內容概括為計算思維的“外延”。只有系統(tǒng)準確地把握計算思維的內涵和外延,我們才能夠更好地認識計算思維,更好地研究計算思維,更好地應用計算思維,更好地發(fā)展計算思維。然而,要想把計算思維的內涵和外延具體描述清楚,并非一件容易的事情,哪怕是“搶拍的一個鏡頭”也是十分困難的。這是因為計算學科的發(fā)展如此迅猛,計算學科的應用如此廣泛,即便是最偉大的計算機學家,也只能涉獵計算學科的局部而不是全部。
計算思維研究內容是十分廣泛的,它是思維學科的一個重要組成部分。當我們把計算思維的研究提到議事日程上的時候,我們自然要回答有關計算思維的一系列問題,如計算思維的基本要素、基本形式和基本方法,計算思維的材料和結果,計算思維的微觀與宏觀過程,計算思維的動態(tài)發(fā)展,計算思維創(chuàng)新等。然而,對這些問題的研究并非是我們最終的目的,計算思維研究的目的在于“培養(yǎng)人們的計算意識,使之掌握正確的計算思維方法”。這些意識和方法應當圍繞計算學科的基本問題而展開,即什么樣的“計算問題”是能行的,能行“計算”的方法是什么,如何設計出解決能行“計算問題”的可行方案。我們認為,在目前研究的初始階段,計算思維的研究至少應為回答上述問題提供積極有效的指導與幫助。
3.2計算思維與計算科學思想史
計算思維研究離不開對計算機方法論的研究,雖然兩者研究的重點有所區(qū)別,但兩者之間的關系是密不可分的,對此,董教授等給出了闡述[22]。如果我們把面對計算問題的思考作為計算思維的“因”,那么解決計算問題的方法(泛指用于解決各類計算問題的方法,包括概念、算法、工具等)便是計算思維的“果”。通過人們的思維活動,“計算問題”與“計算方法”之間逐步建立起多對多的“因”與“果”的關系。當人們面對新的計算問題開展新的計算思維活動時,已有的計算方法便成為新的計算思維重要的材料和基礎。由此可見,離開計算問題談計算思維,將是空洞說教,而離開計算方法談計算思維,便是無果而談。計算思維貫穿在整個計算科學的發(fā)展過程之中,而計算科學正是通過人類的思維活動,由“因”到“果”反復交替,不斷升華發(fā)展起來的。當我們把計算思維的研究同上述因、果關系結合起來時,我們就不得不好好回顧一下計算學科發(fā)展的歷史,特別是計算科學思想的演化過程。
“計算科學思想史是研究計算科學的形成與發(fā)展過程的科學,屬科學史研究的范疇,應遵循科學史研究的一般規(guī)律。作為一門科學,計算科學思想史研究應有其自身的理論體系,這一理論體系涉及計算科學、工程學、哲學、歷史學、心理學、社會科學等諸多學科領域的知識。計算科學思想史是以計算科學理論與實踐的形成與發(fā)展為基礎,以辯證唯物主義和歷史唯物主義為指導,以科學思想史研究的基本原理為依據,分析人類歷史上計算科學重要成果和重要學術誕生的認識過程、理論與方法論思想以及它們的科學與哲學意義,描述計算科學思想的發(fā)展脈搏,探索計算科學思想的發(fā)展規(guī)律,促進計算科學的發(fā)展,豐富科學史的研究內容[16]”。從這段陳述可以看出,雖然計算科學思想史的研究在內容和形式上與計算思維和計算機方法論有所不同,但它們卻是相輔相成的關系。一方面,計算科學思想研究能夠為計算思維和計算機方法論的研究提供大量的研究材料和重要的依據;另一方面,計算思維和計算機方法論研究又能夠豐富計算科學txi/Gc8k7LOPPlxMyJNokrpgU340OuNNrANjH+pqlaQ=思想史研究的理論體系。如果我們把計算科學思想史研究看成是“說故事”,那么計算思維和計算機方法論的研究則是對這些“故事”中“道理”的抽象、概括和總結。
計算科學思想史也好,計算思維和計算科學方法論也罷,它們的研究離不開“計算”這一主題。對大多數人來說,“計算”是一個可以領會卻又難于言表的數學概念。電子計算機的出現和計算機科學的發(fā)展泛化了這個概念。無論是過去,還是現在或將來,計算始終都是人類基本思維活動和行為方式的主要方面之一,也是人們認識世界與改造世界的基本方法。計算科學的理論基礎在第一臺現代電子計算機出現以前就已建立。如今,計算已不再是一個一般意義上的概念,它已成為“各門科學研究的一種基本視角、觀念和方法,并上升為一種具有世界觀和方法論特征的哲學范疇[24]”。計算概念的形成與發(fā)展經歷了漫長的歷史,參考文獻[15]將之分為3個主要階段,第1階段是人類對計算概念的初步認識階段,從“計數”到“數”的概念形成,是人類在抽象思維領域的巨大進步;第2階段是人類對計算概念的本質進行深入研究階段,從不同的角度給出了計算的嚴格數學定義;第3階段是計算概念的發(fā)展,是人們關于新型計算理論與計算方式的研究與探索階段,如分子計算模型[25]和量子計算等[26]。特別指出的是,人們在第二階段的研究成果對計算機科學的形成與發(fā)展產生了重要影響。這一階段,人們在關心“數學的基本任務”的同時,也在積極思考“另一類”數學任務,“其中之一是在數學發(fā)展早期就被認為有極大的重要性,而且至今還在產生著具有重大數學意義的問題,即解決各種問題的算法或能行的計算過程的存在性問題[27]”。其中,Herbrand-G?del-Kleene的一般遞歸性概念[28]、Turing的可計算性概念[29],以及基于URM理想計算機的Shepherdson-Sturgis可計算函數等[30],都從能行可計算的角度給出了計算概念的嚴格定義。如果我們把Turing機視為現代計算機的雛形,那么URM理想計算機就是現代計算機的精華濃縮版。這些“可計算函數類”的描述雖然在形式上各有區(qū)別,但在本質上是一致的[31]。它們與可計算性理論與方法研究的相關成果構成了計算機科學與技術學科的重要理論基礎,同時也明確了現代計算機的“計算能力”范圍[32],即現代計算機可計算的全部就是“可計算函數類”。當我們通過計算科學思想史研究弄清楚“計算”的本質之后,就不難理解周教授[13-14]關于“計算思維是一種遞歸思維”和“計算思維是建立在計算過程(由人或機器來執(zhí)行)的能力和限制之上”的闡述了。
值得一提的是,計算科學不是幾門簡單的課程,而是一個龐大的知識體系,它給予人類社會發(fā)展與進步的力量震撼人心。目前,全國幾乎所有高校都開設了計算機專業(yè),有些計算的概念和知識還下放到了中小學課程之中。在此情形之下,讓全社會更深刻地認識計算科學的內涵、更全面了解計算科學的發(fā)展規(guī)律,無疑是一件十分有意義的工作。對計算科學思想史的研究并非某個人的心血來潮,而是學科發(fā)展引發(fā)的必然結果。同時也應看到,計算科學思想史研究是一項十分艱巨的工作,它不僅可以豐富科學史研究內容,而且還可彌補國內計算科學史研究方面的不足,應當受到社會的關注,特別是計算科學工作者和科學史研究工作者的積極關注。在我們對計算思維和計算科學方法論的研究過程中,尤其不能忽略對計算科學思想史的系統(tǒng)研究。
4結語
本文對思維科學研究的動因進行分析,指出計算思維研究是思維科學研究的重要組成部分,即計算思維的研究不僅要結合計算學科的特點,還要符合思維科學研究的一般規(guī)律。在對目前國內關于計算思維的研究現狀作了簡要總結之后,筆者從不同角度對計算思維的特點進行了綜合分析和闡述,并對計算思維研究的基本問題進行了初步探討。指出計算思維研究離不開計算科學方法論的研究,而計算科學思想史研究將對計算思維和計算科學方法論的研究產生積極的作用。
目前,計算思維的研究正在逐步受到人們的關注,但是關注面還相對比較狹窄,要想真正實現使“每個孩子在培養(yǎng)解析能力時不僅掌握閱讀、寫作和算術,還要學會計算思維”的目標,還有很長的路要走。因為我國目前從幼兒教育到中小學教育,甚至高等教育的各個階段,“計算思維”還是一個陌生的字眼。即便針對高校計算機專業(yè)的學生,如何培養(yǎng)和發(fā)展他們的計算思維,提高他們應用計算機知識分析和解決問題的能力,依舊是一項需要深入研究和探索的工作。對此,我們希望更多的專家學者能夠關注計算思維的研究與發(fā)展,希望廣大從事計算科學研究的專家學者和教育工作者能夠積極參與到計算思維的研究工作中來。
參考文獻:
[1]