羅芳 沙莎
摘要:“計算思維”概念深刻地影響了我國大學計算機教學改革的思路與方向。該文從認識計算的角度對計算思維概念內(nèi)涵進行了探討和分析,指出計算的本質(zhì)是一種信息狀態(tài)到另一種信息狀態(tài)轉(zhuǎn)變的過程,并分析了計算的形式和特征;從計算的發(fā)展來看,提出計算思維應有狹義與廣義之分,廣義的計算思維是指人們對于現(xiàn)實世界進行信息抽象并利用工具實現(xiàn)信息轉(zhuǎn)換的一種思維方式,并分析了計算思維的具體含義。
關(guān)鍵詞:大學教學;計算機;教學改革;計算思維
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2014)27-6307-03
Abstract: "Computational Thinking" concept deeply affected the thinking and direction of the teaching reform of computer in University in china. This paper from the understanding of calculation are discussed and the analysis of the computational thinking concept and connotation, and points out that the nature of computation is an information state to another information state change process, and analyzes the forms and characteristics calculation; from a computational view of development, put forward the calculation thinking should have broad sense and narrow sense, Computational Thinking generalized refers to a kind of mode of thinking people for the real world information abstraction and realizes information conversion tools, and analysis of the specific meaning of computational thinking.
Key words: university teaching; computer; teaching reform; Computational Thinking
美國卡內(nèi)基·梅隆大學周以真教授于2006年提出并定義了“計算思維”[1]的概念,周教授認為:計算思維是運用計算機科學的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。“計算思維”概念的提出引發(fā)了計算機學界對于計算與計算思維的關(guān)注與探討。我國計算機學界對于計算思維基本持贊同與肯定的態(tài)度,認為“計算思維的重要性在于它關(guān)系到我們對計算機科學的轉(zhuǎn)型與發(fā)展之基本認識。[2]”。尤其在計算機教育領(lǐng)域,周教授提出的“計算思維”更是產(chǎn)生了深遠的影響,2010年7月,在西安“九校聯(lián)盟(C9) 計算機基礎(chǔ)課程研討會”上,發(fā)布的《九校聯(lián)盟計算機基礎(chǔ)教學發(fā)展戰(zhàn)略聯(lián)合聲明》中,強調(diào)了將“計算思維能力的培養(yǎng)”作為計算機基礎(chǔ)教育的核心任務。[3]從2010至今,計算思維能力的培養(yǎng)成為國內(nèi)各個高校的計算機教育改革的主要方向。
然而關(guān)于計算思維這個概念,國外計算機學界一直存在著爭議。ACM的前任會長Peter J. Denning教授指出“計算思維并不是計算機科學唯一和獨有的特征,如果不謹慎地認識和看待它,它將會把人們引向思維的陷阱”[4] Peter J. Denning教授曾組織了一次關(guān)于計算與計算思維的大討論-“What is computation?”很多學者撰文發(fā)表了對于計算與計算思維不同的見解。[5]2003年圖靈獎獲得者Peter Naur教授則在《Computing Versus Human Thinking》一文中論證了計算機并不能描述人的思維,它只是描述真實世界的一種形式。[6]總的說來,人們對于“計算思維”中“計算”能否代表所有的計算?以計算機科學的理論為基礎(chǔ)的思維是否就是計算思維?等這些問題持有質(zhì)疑。
筆者認為,計算思維的提出突出了計算機處理問題的特性,引導人們從理論
的角度來理解計算機的行為方式,從而能更好的使用它。從計算機教育這個角度看,計算思維概念的提出是具有其積極意義的。然而從科學發(fā)展的角度來看,計算思維中的計算不應僅僅局限于計算機科學領(lǐng)域的計算,計算思維也不能僅涵蓋計算機科學領(lǐng)域。為了使“計算思維”的概念更全面和嚴密,該文從計算的角度對計算思維進行了研究,首先探討了“計算”的本質(zhì)、形式與特征,進而分析“計算思維”的產(chǎn)生以及具體含義,提出應將“計算思維”分為狹義的計算思維與廣義的計算思維,并定義了廣義的計算思維。該文的研究希望能給全面客觀的認識和理解計算思維提供一些思路,以便將“計算思維”的概念更好的運用到高校的計算機教育改革中。
1 關(guān)于計算的研究
探討計算思維,首先要弄清楚什么是計算?目前,很多科學領(lǐng)域,不僅是數(shù)學、計算機學科,還包括生物學、物理學等領(lǐng)域的研究都引入了“計算”這個概念。那么,不能僅從一個學科的角度去理解“計算”,而應該從更廣泛的角度去認識“計算”。
1.1 什么是計算
“計算”這個概念與“信息”是密不可分的,計算處理的就是信息。信息是構(gòu)成世界很重要的一個要素,在討論“計算”之前,有必要先了解什么是信息?從不同的認識角度和認識層次,信息有很多種定義,比如在日常生活中,我們所理解的信息是指消息或者情報;而在信息科學領(lǐng)域,比較經(jīng)典的是信息論創(chuàng)始人Shannon關(guān)于信息的定義,他認為信息是用來減少隨機不確定性的東西。而從具有較廣意義的哲學層面來定義,信息是事物存在的方式或運動狀態(tài),以及這種方式或狀態(tài)的直接或間接的表述。這個定義涵蓋了各種不同層面關(guān)于信息的認識和理解。
相應的,計算也可以參考信息的概念,從不同的角度與層次去理解,日常生活中、數(shù)學領(lǐng)域、計算機科學領(lǐng)域等都有關(guān)于計算的理解和定義。數(shù)學領(lǐng)域中,計算是指一種將單一或復數(shù)之輸入值轉(zhuǎn)換為單一或復數(shù)之結(jié)果的一種思考過程;計算機科學領(lǐng)域定義的計算是指符號序列的變化;而從更廣的角度來看,計算可定義為:計算是一種信息狀態(tài)到另一種信息狀態(tài)轉(zhuǎn)變的過程[7]。此定義可以幫助人們統(tǒng)一科學研究領(lǐng)域關(guān)于計算的理解。根據(jù)上述定義,就不難理解生物學家提出的DNA轉(zhuǎn)變成核酸是一種計算,物理學家提出的量子狀態(tài)的變化是一種計算[8]。這些都是信息狀態(tài)的變化過程,只不過所依附的事物不同而已,因而表現(xiàn)形式不盡相同。但它們本質(zhì)是一樣的,都是事物存在的方式或運動狀態(tài),即信息的狀態(tài)發(fā)生了改變,這個變化過程就是計算。
“計算”本身是人為的概念,但描述和研究的是一個自然的過程。人們研究計算的目的是想通過人為的方式模擬自然的過程,并重復和改造這個過程。計算的研究包括研究信息的表達以及信息變化過程的表達。人們之所以更能接受數(shù)學及計算機科學中的計算概念,最關(guān)鍵的原因是數(shù)學及計算機科學建立了完備的信息表達方式(符號)和信息變化過程描述方式(公式或算法)。但應該強調(diào)的是,計算的本質(zhì)并不是符號、序列或公式的表達及轉(zhuǎn)換,它們只是描述信息狀態(tài)的方式。如果DNA到核酸以及蛋白質(zhì)之間的轉(zhuǎn)換能建立一套完備的信息表達及信息變化過程描述的方法,那么這個自然的信息變化過程也能象數(shù)學和計算機科學領(lǐng)域的計算一樣能用人為的方式描述。
綜上所述,“計算”是事物的一種信息狀態(tài)到另一種信息狀態(tài)的轉(zhuǎn)變過程,
它本是一個自然的過程,但人們?yōu)榱搜芯窟@個過程,定義了記錄和描述信息狀態(tài)和過程變化的符號,并用這些符號推導和模擬了實現(xiàn)轉(zhuǎn)變的過程。
1.2 計算的形式
1) 數(shù)學計算
數(shù)學以符號為信息表達方式,信息的變化過程則由公式、定理推導而出。數(shù)學是以語言的形式實現(xiàn)計算。然而,數(shù)學的符號和推理過程只有人才能識別和使用。
2) 計算機計算
計算機利用物理器件存在兩種穩(wěn)定的物理狀態(tài)的特性,采用二進制為信息的編碼方式,以圖靈機作為計算模型實現(xiàn)信息狀態(tài)的
圖靈將計算的形式化為計算者或機器對一條兩端可無限延長的紙帶上的一串0和1執(zhí)行指令,一步一步地改變紙帶上的0或1經(jīng)過有限步驟,最后得到一個滿足預先規(guī)定的符號串的變換過程。
但圖靈模型并不能完成所有的計算,圖靈機要求在計算過程中每一步都是確定的,而對于某些在計算過程中有選擇性的計算,即所謂非確定性的計算,圖靈機是不能夠?qū)崿F(xiàn)的。盡管人們想辦法將非確定性問題轉(zhuǎn)換成確定性問題,然后用計算機計算,可仍然有很多問題是不能轉(zhuǎn)換的,因而還有很多計算是計算機不能完成的。因此人們不斷探索新的信息表達方式和新的計算模型,于是有了DNA計算和量子計算[9]。
3) DNA計算
DNA計算是利用DNA雙螺旋結(jié)構(gòu)和堿基互補配對規(guī)律進行信息的編碼,其信息轉(zhuǎn)換過程是將要運算的對象映射成DNA分子鏈,通過生物酶的作用,生成各種數(shù)據(jù)池,然后按照一定的規(guī)則將計算問題的數(shù)據(jù)運算映射成DNA分子鏈的可控的生化反應過程。信息的輸出是利用分子生物技術(shù)(如聚合鏈反應PCR、超聲波降解、親和層析、克隆、誘變、分子純化、電泳等),檢測所需的運算結(jié)果[10]。DNA計算是通過生化反應實現(xiàn)計算的一種形式。
一個DNA單鏈可以看作由四個不同符號A、C、G、T組成的一個串,這四個元素能形成數(shù)學上的一種良好的代數(shù)結(jié)構(gòu)——域[11]。四元集[={A、C、G、T}]將信息編碼,按照圖2所指定的兩種代數(shù)運算“+”和“*”,構(gòu)成了一個四元域。
對比計算機0、1兩個數(shù)字編碼,DNA這種編碼字母表遠遠超過NP問題計算的需要。人們利用DNA計算解決了一些計算機不能實現(xiàn)的計算。例如,Adleman通過DNA計算方法求解了七個節(jié)點的HPP(Hamilton問題)實例 [12],Lipton等也提出了基于DNA模型的DNA算法,它是求解一類著名的NP完全問題——滿足性問題的有效算法[13]。由于對DNA計算的研究時間不長,還有待開發(fā)出更多的DNA計算模型。
4) 量子計算
量子計算以量子比特作為信息的編碼,應用量子力學原理進行計算的計算形式。一個量子比特態(tài)除了0、1兩種狀態(tài)外還有一種疊加態(tài):
以上四種計算形式中,數(shù)學是目前為止最完備的計算系統(tǒng),其他三種計算都是從某種程度上模擬數(shù)學計算,實現(xiàn)了非人工的計算形式。
1.3 計算的特征
計算雖然有多種形式,但是它們都具有相同的特征。了解計算的特征有利于區(qū)分辨別計算過程,認識計算的本質(zhì)。根據(jù)計算的實現(xiàn)過程,可發(fā)現(xiàn)計算的特征。
1) 具有相應的符號系統(tǒng)。符號系統(tǒng)用來編碼信息,還包括參與運算的操作符。計算是模擬自然的信息變化過程,描述這種變化過程需要精確簡單,而自然語言在描述信息變化過程中顯然比較繁瑣,因此各計算系統(tǒng)都有相應的符號系統(tǒng)。比如數(shù)學中的數(shù)字與各種運算符,計算機中的0、1代碼。
2) 具有相應的推理規(guī)則。符號是計算中表示信息的方式,信息的轉(zhuǎn)換由符號實現(xiàn),而符號從一種表示變化成另一種表示,意味著信息的轉(zhuǎn)換,怎樣實現(xiàn)這種轉(zhuǎn)換需要相應的推理規(guī)則。比如數(shù)學中各種運算規(guī)則與定理。
3) 具有穩(wěn)定的信息狀態(tài)。穩(wěn)定信息狀態(tài)包括符號系統(tǒng)的穩(wěn)定和推理規(guī)則的穩(wěn)定,比如計算機中的數(shù)字信號、DNA計算中的堿基對,首先這些符號狀態(tài)必須穩(wěn)定,不能隨意變化,只有在推理規(guī)則下發(fā)生相應的改變;其次,運用同樣的推理規(guī)則可以得到同樣的結(jié)果。
4) 具有輸入與輸出。輸入是信息的初始狀態(tài),輸出是信息的結(jié)果狀態(tài),其變化過程由上述的符號系統(tǒng)、推理規(guī)則共同完成。
2 計算思維的本質(zhì)
在人們模擬“計算”這個信息轉(zhuǎn)換過程時,比如,一個數(shù)學計算,人類最初是用頭腦實現(xiàn)它的每一個變化過程,用紙筆記錄下結(jié)果,后來發(fā)明了算盤、計算器等工具來替代頭腦實現(xiàn)每一步的變化過程,再后來發(fā)明了計算機,能夠自動實現(xiàn)整個的計算過程。圖靈機作為計算機的計算模型,其基本思想就是用機器模擬人用紙筆進行數(shù)學計算的過程。目前,數(shù)學是最完備的“計算”實現(xiàn)系統(tǒng),而計算機是能夠替代人腦自動實現(xiàn)“計算”的工具。
隨著計算機科學的迅猛發(fā)展,人們在各個領(lǐng)域借助計算機實現(xiàn)和完成了很多復雜的信息處理工作,因而人們越來越意識到計算機這個工具的必要性。為了突出計算機的工作特點,并強調(diào)計算機對于現(xiàn)代社會的重要性,人們提出了“計算思維”的概念。[1]
顯然,此計算思維的概念是以計算機科學為基礎(chǔ)的,其所指的計算也是特指計算機科學范疇中的計算。然而,人類未來的計算是不是只能依靠計算機?計算思維是不是只限于計算機科學?
眾所周知,目前的計算機是采用二進制為信息的編碼方式,以圖靈機為主要計算模型。計算機采用二進制編碼源于機器硬件采用的物理器件的局限,因為物理器件只能記錄兩種穩(wěn)定的狀態(tài)。二進制編碼雖然簡單,容易記錄,但是相應的因其編碼長度過長,導致記錄的信息量和機器處理的信息量都受到限制。在新型的DNA計算機中,人們采用組成DNA的四種核苷酸A、G、C、T進行編碼,編碼的信息容量得到了提升。
計算機以圖靈機作為計算模型,然而圖靈模型并不能滿足所有計算的要求。為了突破計算機在計算方面的種種缺陷,人們也在不斷探索新的信息表達方式和新的計算模型,比如量子計算、DNA計算,這些計算的信息表達方式不再是采用二進制和圖靈計算模型。
雖然目前人類主要借助計算機來自動實現(xiàn)很多的計算,但是計算機的計算并不能代表所有的計算。因此,上述關(guān)于“計算思維”的這個定義是狹義的,只突出了計算目前的現(xiàn)狀,不具有延伸性。
從計算的發(fā)展來看,計算思維的本質(zhì)是指身處信息社會的人們在面對大量的信息處理或計算的時候,想辦法以非人工的方式來實現(xiàn)這些工作。計算思維包括信息的表達和信息的轉(zhuǎn)換過程兩個方面,簡單而言,計算思維就是人們將需要處理的信息如何表達,如何轉(zhuǎn)換。而計算機有著一套相對比較成熟和完整的信息表達和轉(zhuǎn)換方法,能適應很多的信息處理,完成大量的計算。因此,計算機是目前計算思維的一種集中體現(xiàn)。但是,隨著信息處理和計算過程越來越復雜,目前的計算機也不能完全適應計算的需求。人們正在在研究一些新的信息處理和計算工具,其改變的核心就是信息的表達和轉(zhuǎn)換方法,希望能研究出更高效和更復雜的信息處理系統(tǒng)。
因此,我們不能僅從計算機科學的角度去定義和理解計算思維,而應該從更廣義的角度去認識計算思維。廣義的理解計算思維,應該是指人們對于現(xiàn)實世界進行信息抽象并利用工具實現(xiàn)信息轉(zhuǎn)換的一種思維方式。今日的計算思維是圍繞計算機科學,而明日的計算思維或許會圍繞化學、物理等學科,或許會產(chǎn)生新的學科,但核心一定是關(guān)于信息的表達和轉(zhuǎn)換。
3 計算思維的含義
根據(jù)以上分析,計算思維應包括兩層含義,一是利用現(xiàn)有計算工具實現(xiàn)計算問題,即如何將現(xiàn)實中的計算轉(zhuǎn)換成計算機能夠?qū)崿F(xiàn)的計算;二是開發(fā)新的計算系統(tǒng),即構(gòu)建新的計算模型和研究新的信息表示和信息轉(zhuǎn)換系統(tǒng)。
目前,計算機所實現(xiàn)的是計算思維的第一層含義,即如何將現(xiàn)實中的計算轉(zhuǎn)換成計算機能夠?qū)崿F(xiàn)的計算。圖靈機是目前計算機采用的計算模型,圖靈模型實現(xiàn)的是有限的、確定性的計算,圖靈模型包括以下四個要素:輸入(I),輸出(O),程序(P),數(shù)據(jù)(D),有限的、確定性的計算即指輸入、輸出是確定的,而程序的執(zhí)行步驟是有限的。在計算機領(lǐng)域,凡圖靈機能實現(xiàn)的稱之為可計算的問題,否則成為不可計算的問題。因此,在這個定義框架下,所謂的計算思維,其本質(zhì)就是如何將現(xiàn)實中的問題轉(zhuǎn)換成可計算的問題,再提交計算機執(zhí)行計算。然而對于不確定性問題,圖靈模型是無能為力的。
由于圖靈機的局限性,人們不斷地探索新的計算模型,這屬于計算思維的第二層含義。探索的方向主要是:1、改進圖靈機;2、采用新的信息表示方法和信息轉(zhuǎn)換系統(tǒng)。改進圖靈機即針對圖靈機在輸入、輸出、數(shù)據(jù)的存儲方式以及執(zhí)行步驟等方面進行改進,產(chǎn)生了持久圖靈機(PTM)、時序交互機(SIM)、多帶交互機(MIM)等,但這些改進模型仍然是采用二進制表示信息,采用CPU+存儲器的工作模式,雖然在計算能力上有所改進,本質(zhì)上卻沒有突破圖靈機模型。于是,人們考慮采用新的信息表示方法和信息轉(zhuǎn)換系統(tǒng),比如量子計算機,其信息表示采用的是量子比特(qubit),通過量子分裂式、量子修補式來進行信息轉(zhuǎn)換;DNA計算機,采用核苷酸作為信息表示,通過生物酶的作用使DNA分子發(fā)生化學反應,從而完成信息轉(zhuǎn)換。DNA計算機可以解決圖靈機不能解決的不確定性問題,如哈密頓路徑問題。
因此,計算思維的含義既包括對現(xiàn)有計算系統(tǒng)的利用和研究,更包括對新計算系統(tǒng)的研究和開發(fā)。只要沿著計算思維的思路探索,未來或許還會出現(xiàn)更多新的信息表示方法和信息轉(zhuǎn)換系統(tǒng)。
4 結(jié)束語
培養(yǎng)學生的計算思維能力是目前高校計算機教學改革的核心任務,對于計算思維概念進行深入的研究,從廣義的角度理解計算思維,可以幫助計算機教育者從更廣闊的視野來重新認識計算思維,從而有利于計算機教學改革的進行。