狄長艷?周慶國?李廉
摘 要:從新工科建設(shè)的背景出發(fā),探討計算思維概念的深刻內(nèi)涵。計算思維是從信息運動的角度認(rèn)知和理解世界的思想和方法,在更深和更廣的層面上揭示計算思維對于新工科的意義。信息流驅(qū)動的產(chǎn)業(yè)流程重組是新型工業(yè)經(jīng)濟(jì)的核心變革,以信息互聯(lián)為中心的管理模式是數(shù)字時代的核心特征。計算思維和計算機(jī)科學(xué)具有不同的涵蓋范圍,面向計算機(jī)專業(yè)和非計算機(jī)專業(yè)學(xué)生的計算思維培養(yǎng)側(cè)重點,以及相應(yīng)的課程改革內(nèi)容也有所不同。
關(guān)鍵詞:計算思維;新工科;認(rèn)知科學(xué);數(shù)字經(jīng)濟(jì);面向領(lǐng)域應(yīng)用的教學(xué);計算機(jī)教育改革
當(dāng)前,我國高校正在積極推進(jìn)新工科專業(yè)建設(shè),從一般的意義上說,新工科就是用新一代信息技術(shù)改造傳統(tǒng)的工科,主動設(shè)置和發(fā)展一批新興工科專業(yè),推動現(xiàn)有工科專業(yè)的改革創(chuàng)新,實施“再工業(yè)化”戰(zhàn)略。在這個過程中,所有能夠數(shù)字化的對象都將被數(shù)字化,所有能夠自動化的流程都將被自動化,因此在大學(xué)的教學(xué)中,無論計算機(jī)專業(yè)還是非計算機(jī)專業(yè),都需要突出計算思維在學(xué)習(xí)過程中的重要性,實現(xiàn)信息社會新一代人才的培養(yǎng)。本文從新工科建設(shè)的背景出發(fā),對計算思維的內(nèi)涵、意義以及在教學(xué)改革中的落實繼續(xù)進(jìn)行探討,并且提出一些新的認(rèn)識。
一、前言
“計算思維”是由美國卡內(nèi)基·梅隆大學(xué)周以真(Jeannette M. Wing)教授于2006年第一次明確提出來的,并將其解釋為“運用計算的基礎(chǔ)概念求解問題、設(shè)計系統(tǒng)和理解人類行為的一種方法”。她大力提倡“將計算思維引入基礎(chǔ)教育環(huán)節(jié),預(yù)見計算思維將成為像讀、寫、算一樣,每個人必備的認(rèn)知技能”[1]。
這一概念一經(jīng)提出,即引起國內(nèi)外廣泛關(guān)注,推動大學(xué)計算機(jī)基礎(chǔ)教育從“工具論”向“思維論”轉(zhuǎn)型。國內(nèi)開展了多次計算思維的研討會,就大學(xué)計算機(jī)課程的核心價值是培養(yǎng)學(xué)生的“計算思維”,以及“以計算思維為導(dǎo)向進(jìn)行大學(xué)計算機(jī)課程改革”等觀點達(dá)成了共識。但是具體到如何培養(yǎng)等問題還存在諸多不同的見解。對這些問題追根溯源,還在于目前對于計算思維的內(nèi)涵理解有待繼續(xù)深化。周以真在提出此概念的時候,通過列舉計算機(jī)學(xué)科中的一些術(shù)語,用幾個“是什么,不是什么”進(jìn)行描述,但這不是計算思維定義的形式,且并未具體闡述如何實施計算思維教育[2]。
因此,國內(nèi)外學(xué)者針對這一課題進(jìn)行了廣泛的研究與探討,取得了一些積極的成果。文獻(xiàn)[3]認(rèn)為:“計算機(jī)科學(xué)最具有基礎(chǔ)性和長期性的思想是計算思維?!蔽墨I(xiàn)[4]中提出“計算思維是運用計算機(jī)科學(xué)的思想與方法去求解問題……的思維活動”。美國K-12教育實踐中,計算思維被寬泛地定義為一組認(rèn)知技能和解決問題的方法,包括(但不限于)七大類特色,涉及邏輯地組織和分析數(shù)據(jù)、分解問題,算法設(shè)計、程序化的執(zhí)行技巧,并且將問題解決過程拓展到社會和人文領(lǐng)域。
計算思維是當(dāng)前國際計算機(jī)界廣為關(guān)注的一個重要概念,是當(dāng)前新工科建設(shè)中計算機(jī)教育重點研究的課題。但不可否認(rèn)的是,人們并未就計算思維的定義與內(nèi)涵達(dá)成一致[5]。如果我們連基本概念都沒有弄清楚,那么在這一領(lǐng)域很難取得突破性進(jìn)展。因此,本文從計算思維的研究對象入手,進(jìn)一步探討計算思維的內(nèi)涵,指出計算思維是從信息運動的角度觀察和理解世界。同時將計算思維的通俗化解釋為:人類在認(rèn)知過程中開辟的一個B世界(以數(shù)據(jù)形式重構(gòu)的Bit世界),凡是A世界(Atom World,客觀物質(zhì)世界)不能直接解決和解釋的問題,可以映射到B世界間接解決和解釋,反過來影響和理解A世界。文章進(jìn)一步給出了計算思維包含的具體內(nèi)容,指出計算思維并不完全是計算機(jī)科學(xué)的思維,兩者的涵蓋范圍有一定差異,明確了計算機(jī)專業(yè)和非計算機(jī)專業(yè)計算思維教學(xué)中不同的側(cè)重點。
二、計算思維是從信息角度認(rèn)知世界的思想和方法
1.計算思維提出的時代背景
每一時代的理論思維都是一種歷史的產(chǎn)物,在不同的時代具有非常不同的形式,并因而具有非常不同的內(nèi)容。因此,關(guān)于思維的科學(xué),和其他任何科學(xué)一樣,是一種歷史的科學(xué),關(guān)于人的思維的歷史發(fā)展的科學(xué)[6]。關(guān)于計算思維的內(nèi)涵,應(yīng)該置于其所處的歷史背景中去理解。計算的歷史由來已久,但為什么直到2006年人類才明確提出計算思維的概念?要回答這一問題,必須考察這一時期人類社會的發(fā)展變化。
20世紀(jì)以前,人類采用大腦和手工方式記錄、存儲和分析信息,導(dǎo)致人類能處理的數(shù)據(jù)規(guī)模很小,對于信息的認(rèn)知有限;直到1948年信息科學(xué)才首次由香農(nóng)提出,并在其論文《通信的數(shù)學(xué)原理》中將Bit定義為測量信息的單位。正是香農(nóng)的這一理論,使人類在經(jīng)歷了六千年的農(nóng)業(yè)社會和近三百年的工業(yè)社會后,步入了信息社會。
20世紀(jì)40年代,計算機(jī)的發(fā)明使信息的加工和處理有了一種嶄新的工具,同時由于計算方法和計算機(jī)科學(xué)的發(fā)展,使得計算機(jī)的計算能力突飛猛進(jìn)。20世紀(jì)70年代各工業(yè)先進(jìn)國家由于大量使用計算機(jī),使科學(xué)技術(shù)獲得了快速的發(fā)展,其成果比人類有史以來到20世紀(jì)60年代的總和還多。到了20世紀(jì)80年代,計算機(jī)在許多領(lǐng)域已成為不可或缺的工具,它從一種利用現(xiàn)有知識的工具發(fā)展為一種發(fā)現(xiàn)新知識的手段。諾貝爾物理學(xué)獎獲得者Ken.Wilson明確指出“計算已成為除了理論和實驗之外,科學(xué)研究的第三條腿”。
2000年后,借助計算機(jī),信息科學(xué)和技術(shù)有了進(jìn)一步發(fā)展。諾貝爾獎得主David Baltimore說:“生物學(xué)今天是一門信息科學(xué)?!蔽锢韺W(xué)家提出,量子波攜帶產(chǎn)生物理效應(yīng)的信息。經(jīng)濟(jì)學(xué)家根據(jù)其固有的信息流來分析經(jīng)濟(jì)系統(tǒng)。來自更多領(lǐng)域的科學(xué)研究表示,信息過程出現(xiàn)在各自領(lǐng)域的深層結(jié)構(gòu)中。
伴隨著上述信息加工和處理的實踐,人們對信息有了從現(xiàn)象到本質(zhì)的了解,認(rèn)識到它對推動社會生產(chǎn)和人類進(jìn)步的巨大作用,信息成為和物質(zhì)、能量同等重要的資源,成為國民經(jīng)濟(jì)活動的主要內(nèi)容。人類以物質(zhì)流驅(qū)動的商業(yè)模式正在轉(zhuǎn)變?yōu)橐孕畔⒘黩?qū)動的商業(yè)模式。計算思維正是處于這樣的歷史背景中提出的,其中包含兩大基本前提:一是人類對于信息概念的深入認(rèn)知;二是信息處理工具的發(fā)明和發(fā)展,使得人類的信息處理能力大幅度提高。因此,計算思維的提出是時代發(fā)展的必然,是人類認(rèn)知和實踐的產(chǎn)物。其根本意義在于“從信息運動的角度認(rèn)知世界”這一方法的逐漸成熟。這也是計算機(jī)科學(xué)屬于信息科學(xué)的原因。
2.信息和計算的關(guān)系
在剛剛出版的《計算機(jī)教育與可持續(xù)競爭力》一書中,提出了“計算思維是基于信息的獲取和分析計算,以算法求解、系統(tǒng)構(gòu)建、自然與人類行為理解為主要特征,實現(xiàn)認(rèn)知世界和解決問題的思想與方法”的定義[7],指出計算思維有兩個立足點,即信息和計算。信息是組成世界的三大基本元素之一,那么計算是什么?圖靈雖然從理論上建立了計算的模型,但是在實際問題中如何界定計算活動仍留下了很多空白。國際著名計算科學(xué)家Z.Manna在《計算的數(shù)學(xué)理論》中寫道:“什么是計算?我相信,世界上,沒有兩個計算機(jī)科學(xué)家會就這一概念給出相同的定義?!盵8]本文從文獻(xiàn)資料中,摘取了有代表性的多個闡述如下。
圖靈獎得主Karp提出,很多自然、工程和社會系統(tǒng)中的過程自然而然是計算的,計算就是執(zhí)行信息的變換[9]。ACM曾任主席Denning指出,人類愈加發(fā)現(xiàn)信息和計算是諸多領(lǐng)域的基本過程,計算不再僅僅是一門人造科學(xué),它是對自然和人為的信息過程進(jìn)行研究[10]。平臺軟件Mathematica的首席設(shè)計師Wolfram認(rèn)為“計算作為一種概念的重要性被嚴(yán)重低估了,它只是作為一種方法的背景被提到,卻沒有意識到計算本身才是應(yīng)該研究的核心問題”[11]。陳國良院士認(rèn)為“長期以來,計算機(jī)科學(xué)與技術(shù)這門課程被構(gòu)造成專業(yè)性很強的工具學(xué)科,‘工具意味著它是一門輔助性學(xué)科,并不是主業(yè),這種狹隘的認(rèn)知對于信息科技的全民普及極其有害”[12]。國內(nèi)多個教材將“計算機(jī)科學(xué)”定義為“對描述和變換信息的算法過程系統(tǒng)地進(jìn)行研究的科學(xué),包括算法過程的理論、分析、設(shè)計、有效性、實現(xiàn)和應(yīng)用”[13]。
由此可見,大多數(shù)文獻(xiàn)都贊成“計算是對信息進(jìn)行處理”,計算的認(rèn)知主體是信息。因此,本文認(rèn)為計算思維的主要特征在于信息,而不僅僅是計算。
3.“從信息的角度認(rèn)知世界”將計算思維與其他兩種科學(xué)思維區(qū)別開來
一種思維模式實際上就是一種認(rèn)識世界的方法與觀點,也就是我們所說的世界觀。人們認(rèn)識物質(zhì)最早,到工業(yè)化時期才真正認(rèn)識能量,并發(fā)現(xiàn)能量和物質(zhì)可以相互轉(zhuǎn)換?,F(xiàn)有的物理科學(xué)系統(tǒng)正是基于伽利略、牛頓、愛因斯坦從物質(zhì)的角度觀察世界而揭示的結(jié)論。這一領(lǐng)域的典型特點是,結(jié)論無論是通過什么方式得到的,只有在實驗中被觀察和驗證,才能被接受?!皩嵶C”是判定結(jié)論正確性的唯一標(biāo)準(zhǔn)。從這一點說,實證思維具有明顯的可感知特點??筛兄傅氖撬季S的結(jié)論可以由客觀世界直觀形象表現(xiàn)出來。而以邏輯思維為代表的數(shù)學(xué)學(xué)科,則不同于實證方法,其研究對象、結(jié)論的產(chǎn)生以及結(jié)論的驗證都是以抽象的形式表達(dá),只要從公理出發(fā),論證過程符合邏輯,則其結(jié)論就會得到承認(rèn)。該結(jié)論是否與自然世界的現(xiàn)象符合與結(jié)論的正確性之間沒有關(guān)系。在20世紀(jì)40年代之前,這兩種方法互為補充,構(gòu)成了整個科學(xué)大廈的基石。
20世紀(jì)40年代以來,隨著科學(xué)技術(shù)的進(jìn)步,人們終于認(rèn)識到客觀世界里還有信息的存在??刂普摰膭?chuàng)始人維納認(rèn)為,信息就是信息,不是物質(zhì)也不是能量。由此,基本確定了現(xiàn)實世界的三大組成要素:物質(zhì)、能量和信息。人們也構(gòu)造了解釋世界的信息論模型,從信息的角度觀察和解釋世界,極大擴(kuò)展了人類的認(rèn)知范疇,以前從物質(zhì)和能量角度無法解決和解釋的事情,現(xiàn)在可以從信息的角度給以解釋和解決。比如,分子生物學(xué)以DNA結(jié)構(gòu)的信息編碼、生物大分子間的信息傳遞等理論闡明了生物的本質(zhì)和遺傳規(guī)律,由此揭示出生物界在遺傳密碼及生命信息傳遞和表達(dá)式上所呈現(xiàn)出的驚人統(tǒng)一性。
文獻(xiàn)[14]中談到計算思維的重要特質(zhì)之一是從關(guān)聯(lián)的角度分析現(xiàn)象背后的規(guī)律,而這一特征正是信息的基本屬性。香農(nóng)提出信息概念,是受玻爾茲曼“熵”概念的直接啟迪,認(rèn)為信息是消除不確定性。由此信息也經(jīng)常被認(rèn)為是負(fù)熵,是物質(zhì)和能量在空間和時間中分布不均勻程度,是系統(tǒng)的序,這里的“序”就包含了時間和空間上的關(guān)聯(lián)關(guān)系。
綜上所述,本文認(rèn)為計算思維是人類在認(rèn)知實踐中發(fā)展出的一系列從信息運動角度觀察和解釋世界的思想和方法,只有將計算思維從局限于計算機(jī)的框架中抽離出來,提升到科學(xué)認(rèn)知的高度,才能解釋“計算為什么會擴(kuò)展了我們對自己作為生物系統(tǒng)的理解,以及我們與周圍世界的關(guān)系”[15],也才能徹底地將其與其他兩種思維形式劃分開來。
三、計算思維與計算機(jī)科學(xué)的關(guān)系
計算思維是由計算機(jī)科學(xué)家提出的,是計算機(jī)科學(xué)的典型思維形式,那么計算思維是否就是計算機(jī)科學(xué)中的思維,兩者的關(guān)系如何?這一問題是計算思維概念中最重要和最基本的問題,本文從計算思維解決問題的一般方法入手,展開上述問題的討論,深化計算思維的內(nèi)涵理解。
如上所述,計算思維是從信息運動的角度觀察和理解世界的一種思想和方法,而計算是這一思想和方法實現(xiàn)的主要手段,是對信息進(jìn)行處理和變換。信息是真實世界的一種客觀存在,它必須經(jīng)由某種抽象才能在計算機(jī)中處理,這種抽象就是數(shù)據(jù),數(shù)據(jù)是信息的載體。運用計算的方法解決問題,本質(zhì)上是將客觀世界中的問題從信息角度進(jìn)行抽象,再以二進(jìn)制Bit的形式進(jìn)行重構(gòu),經(jīng)由算法實現(xiàn)機(jī)器的自動處理,以此解決客觀世界無法直接解決的問題,包括設(shè)計系統(tǒng)和理解人類行為。這也是“為什么構(gòu)造性是計算思維典型特征”的原因。信息時代,我們發(fā)現(xiàn)越來越多的問題可以用這種方法來處理,從宏觀上而言,人類以數(shù)據(jù)再造了一個虛擬的Bit世界。如果將以原子(Atom)構(gòu)成的物質(zhì)世界稱為A世界,以Bit方式構(gòu)成的世界稱為B世界,則計算思維可以通俗的理解為,人類在認(rèn)知過程中開辟的一個B世界,凡是A世界不可解決和解釋的問題,可以映射到B世界間接解決和解釋,反過來影響和理解A世界。
本文定義的計算思維概念隱含了其解決問題的一般方法和步驟:(1)計算機(jī)建模。待解問題從A世界到B世界的映射。(2)程序設(shè)計。B世界中的重構(gòu)問題在計算平臺的自動處理。(3)將計算結(jié)果返回A世界進(jìn)行檢驗和反饋,以迭代方式完善解決方案。盡管計算思維的概念和內(nèi)涵還存在爭議,但是人們卻就計算思維解決問題的一般方法和步驟達(dá)成了一致。文獻(xiàn)[1]中認(rèn)為計算思維是“首先將問題進(jìn)行抽象表達(dá),然后用自動化的方式描述解決方案”的過程。文獻(xiàn)[16]采用“現(xiàn)實世界問題域—建立模型—編程實現(xiàn)—計算機(jī)世界執(zhí)行求解”這一表達(dá)。
在這兩部分中,計算機(jī)建模涉及不同領(lǐng)域中待解問題的信息提取和抽象重構(gòu),隱含著對領(lǐng)域內(nèi)知識的深入理解。而程序設(shè)計部分指出,所有重構(gòu)問題的解決都需要在一定的計算環(huán)境和平臺中完成。計算機(jī)科學(xué)的作用恰在于此,它為其他學(xué)科從信息角度認(rèn)知世界,提供了強有力的計算環(huán)境和平臺,保證來自不同領(lǐng)域的用戶獲得快速、便捷和可靠的信息處理能力,以解決本領(lǐng)域的問題,它是B世界的基礎(chǔ)設(shè)施。從這一意義出發(fā),本文將B世界劃分為兩部分,一是面向所有領(lǐng)域、所有人的應(yīng)用層;二是由計算機(jī)科學(xué)搭建的基礎(chǔ)設(shè)施層,既包括硬件實體,也包括提升處理效率和保證結(jié)果可靠的軟件方法,圍繞這一部分,計算機(jī)科學(xué)發(fā)展出了系統(tǒng)的思想和方法。
1.計算機(jī)科學(xué)構(gòu)建了B世界的基礎(chǔ)設(shè)施層
(1)計算機(jī)科學(xué)的基本問題是圍繞B世界的基礎(chǔ)設(shè)施層提出的。在文獻(xiàn)[17]中,作者從科學(xué)哲學(xué)的角度闡述了計算機(jī)學(xué)科的三個基本問題,并指出盡管表述不同,但其核心思想是一致的。這三個基本問題分別是:①計算的平臺與環(huán)境問題。計算的平臺問題指從理論和實踐上給出自動計算的機(jī)器,此外計算平臺在使用上還要比較方便,由此派生出計算環(huán)境的概念。計算機(jī)學(xué)科中的計算模型、實際的計算系統(tǒng)、高級程序語言、體系結(jié)構(gòu)等都是圍繞這一問題展開的。②計算過程的能行操作和效率問題。一個問題的實際解決,必須按照能行的可構(gòu)造性特點,在一定的開銷內(nèi)給出實際解決的具體步驟,計算機(jī)科學(xué)的分支,如算法設(shè)計與分析、數(shù)字邏輯、計算復(fù)雜性理論等都是圍繞這一問題展開的。其基本的核心就是算法問題。③計算的正確性問題。一個計算問題在給出能行操作序列的同時,必須確保計算的正確性,如此計算才有意義,而程序驗證理論、計算的可靠性和安全性、分布式網(wǎng)絡(luò)協(xié)議等分支,則是圍繞這一問題展開。圍繞這三個基本問題的計算機(jī)科學(xué)研究構(gòu)建了整個B世界的基礎(chǔ)設(shè)施層,提供了信息處理的軟硬件平臺和環(huán)境,保證了信息處理過程的效率和結(jié)果的正確性。
(2)計算機(jī)科學(xué)的發(fā)展脈絡(luò)是基于B世界的基礎(chǔ)設(shè)施層展開的。第一代計算機(jī)采用電子管,在這一時期,計算機(jī)發(fā)展實現(xiàn)了三個轉(zhuǎn)變:從軍用到民用,從實驗室到工業(yè)生產(chǎn),從科學(xué)計算到數(shù)據(jù)處理。第二代計算機(jī)采用了當(dāng)時先進(jìn)的晶體管技術(shù),一方面提升了計算能力,減小了設(shè)備體積,另一方面出現(xiàn)了高級語言、操作系統(tǒng)等的研究,計算機(jī)的使用難度大大降低。第三代計算機(jī)采用的集成電路,沿著速度更快、體積更小的方向繼續(xù)發(fā)展,大容量、高速度計算機(jī)的出現(xiàn),使計算機(jī)的應(yīng)用范圍大大擴(kuò)展,軟件系統(tǒng)的規(guī)模越來越大,20世紀(jì)60年代出現(xiàn)了軟件危機(jī),人們意識到軟件開發(fā)在系統(tǒng)設(shè)計成敗中具有舉足輕重的作用,這一時期出現(xiàn)了軟件工程、程序理論等分支學(xué)科。同時操作系統(tǒng)的研究也有長足的進(jìn)步,由于操作系統(tǒng)屏蔽了底層復(fù)雜的硬件操作,用戶只需要通過調(diào)用一些功能接口就能實現(xiàn)計算機(jī)的操作,其直接結(jié)果是計算機(jī)的受眾人群進(jìn)一步擴(kuò)大。第四代計算機(jī)朝著專業(yè)化、微型化、網(wǎng)絡(luò)化的方向發(fā)展,微型化使得計算機(jī)真正進(jìn)入尋常百姓家,專業(yè)化使得計算機(jī)深入各行各業(yè)而不局限在計算機(jī)相關(guān)領(lǐng)域中,網(wǎng)絡(luò)化實現(xiàn)了計算機(jī)的全球覆蓋。這些發(fā)展相應(yīng)地又促進(jìn)了計算機(jī)體系結(jié)構(gòu)技術(shù)、并行與分布式算法和計算機(jī)網(wǎng)絡(luò)方向的形成和發(fā)展。
綜上所述,從學(xué)科發(fā)展史來看,計算機(jī)學(xué)科的發(fā)展目標(biāo)是提供計算能力更強、可靠性更高、使用更方便的計算平臺和環(huán)境支撐,以使更多人和更多領(lǐng)域受益。計算機(jī)科學(xué)為人類從信息角度認(rèn)知世界提供了強大的工具,伴隨著計算能力的快速發(fā)展,人類才真正迎來了信息時代。
2.B世界中的應(yīng)用層
從計算機(jī)學(xué)科的研究范疇和核心內(nèi)容出發(fā),應(yīng)用層又可以劃分為兩部分:一是一般應(yīng)用層,指將計算機(jī)應(yīng)用于各領(lǐng)域進(jìn)行具體的信息處
理;二是基礎(chǔ)應(yīng)用層,研究計算機(jī)應(yīng)用于具體領(lǐng)域的共性理論、方法和技術(shù)。前者應(yīng)劃入具體應(yīng)用的學(xué)科,后者屬于計算機(jī)科學(xué)的范疇。因此對于非計算機(jī)專業(yè)的一般應(yīng)用而言,學(xué)習(xí)計算思維更多的是了解和領(lǐng)會如何從信息運動的角度來分析問題,從信息處理的角度來解決問題,而對于具體的分析處理信息的平臺和工具,則由計算機(jī)專業(yè)進(jìn)行研究和開發(fā)。
綜上所述,計算思維涵蓋了從基礎(chǔ)設(shè)施層面到應(yīng)用層面的各個方面。對于非計算機(jī)專業(yè),我們從應(yīng)用層面來理解計算思維,并從中找到解決應(yīng)用問題的思路和方法。而對于計算機(jī)專業(yè),更多的是從基礎(chǔ)設(shè)施層面理解計算思維,設(shè)計和開發(fā)用于處理信息的各種平臺和工具軟件。這就可以看出計算機(jī)專業(yè)和非計算機(jī)專業(yè)對于計算思維的不同要求。計算機(jī)科學(xué)在其中扮演著工具和平臺提供者的角色,各個學(xué)科都有可能借此平臺創(chuàng)造性地發(fā)現(xiàn)和解決本學(xué)科的問題。由此才能充分解釋周以真教授在文獻(xiàn)[1]中對于計算思維的定義——計算思維是運用計算科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計以及人類行為理解等涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動。
我們經(jīng)常說,計算思維正在深刻影響傳統(tǒng)的工科專業(yè)和技術(shù)領(lǐng)域,這種影響是從內(nèi)而外的徹底改造,而不僅僅是表面上的變化,將一些產(chǎn)業(yè)的傳統(tǒng)工序?qū)崿F(xiàn)自動化,或者將一些人工管理用計算機(jī)實現(xiàn),這只是表面的工作,并不會觸動傳統(tǒng)產(chǎn)業(yè)深層次的結(jié)構(gòu),充其量只能是信息化十分初步的內(nèi)容,在這個層面上還談不上對于傳統(tǒng)工科的深刻影響。真正的變化是站在信息和數(shù)據(jù)的角度,通過計算思維對于全產(chǎn)業(yè)鏈和服務(wù)模式的重新認(rèn)知,并且由此帶來對于人和物、人和社會、甚至包括物和物之間相互關(guān)系的重新建立,形成像柔性制造、智慧醫(yī)療、移動支付那樣的顛覆性創(chuàng)新,這才是新工科建設(shè)對我們提出的新問題和新挑戰(zhàn)。
四、計算思維教學(xué)設(shè)計
如上所述,計算思維解決自然和社會問題的基本原理和方法是“從信息運動的角度對問題進(jìn)行抽象,用數(shù)據(jù)表達(dá)信息實現(xiàn)問題建模,使之能夠采用自動化的方式處理”。這一表述,蘊含著計算思維在應(yīng)用中的三個具體問題:A世界的問題是否都可以經(jīng)由映射,在B世界中得到解決?對于可解決的問題,如何通過信息采集和抽象,實現(xiàn)B世界中問題的建模?建模后的問題如何實現(xiàn)自動處理?
第一個問題是計算機(jī)學(xué)科的基本問題——
什么是可計算的?只有可計算的問題才可以通過建模的方式,實現(xiàn)計算機(jī)平臺的自動處理。第二和第三個問題是計算思維教學(xué)要表達(dá)的內(nèi)容。第二個問題本質(zhì)上是如何實現(xiàn)A世界中問題的計算機(jī)建模,第三個問題是模型的自動處理,即程序和算法設(shè)計問題。當(dāng)今社會越來越多地依賴計算機(jī)作為分析和解決問題的工具,這導(dǎo)致大多數(shù)計算思維教學(xué)以程序和算法為核心。從以上分析可以看出,程序和算法設(shè)計固然是計算思維教學(xué)內(nèi)容的重要部分,但并不是其全部。誠然,具體的編程技能對于問題的求解舉足輕重,但是很明顯“計算思維”不是要把每個人變成程序員,而是希望通過計算機(jī)科學(xué)提供的計算平臺和工具,使不同領(lǐng)域的人可以從信息屬性的角度創(chuàng)造性地理解和解決本領(lǐng)域的問題。這也是大學(xué)計算機(jī)基礎(chǔ)教育從傳統(tǒng)的“工具論”上升到“思維論”的出發(fā)點,要讓學(xué)生體會到,由于看問題角度的改變(從傳統(tǒng)的物質(zhì)角度到信息角度),而打開了一扇新世界的大門,帶來認(rèn)知層次上的提升。
在新工科建設(shè)中,各個傳統(tǒng)的工科專業(yè)都在經(jīng)歷信息化和數(shù)字化的改造過程。但是在這個過程中,如果只是將原來的手工作業(yè)改成自動化作業(yè),這只是對于傳統(tǒng)產(chǎn)業(yè)的自動化改造,屬于工業(yè)3.0的內(nèi)容。信息化真正的意義在于,信息理論和技術(shù)的發(fā)展,可以使得人們在信息層面認(rèn)識世界和理解問題,并通過信息流來重新組織生產(chǎn)流程或者商業(yè)模式,建立以信息為中心的新型社會管理系統(tǒng),從而改變甚至顛覆原有的以物質(zhì)流組織生產(chǎn)的方式,信息(也即數(shù)據(jù))成為驅(qū)動社會發(fā)展的新動力和新能源,這是信息社會和數(shù)字經(jīng)濟(jì)的深層含義。因此對于非計算機(jī)專業(yè)的學(xué)生,要學(xué)會從信息和計算的觀點下思考本領(lǐng)域如何實現(xiàn)新的行業(yè)形態(tài),而不是僅僅了解計算機(jī)本身,有關(guān)計算機(jī)的基本知識和內(nèi)容是必要的,但是將計算機(jī)與本行業(yè)的結(jié)合才是本質(zhì)的,我們應(yīng)該從面向?qū)W科知識的教學(xué)轉(zhuǎn)向面向領(lǐng)域應(yīng)用的教學(xué)。由于從小學(xué)到大學(xué),關(guān)于實證思維和邏輯思維的訓(xùn)練十分充分,而對于計算思維的訓(xùn)練則相對偏弱,因此在大學(xué)階段需要大力加強計算思維方面的課程建設(shè),使得學(xué)生的科學(xué)思維方式能夠跟上信息時代的要求。另一方面,由于計算思維提出的時間不長,其中的一些概念和內(nèi)涵也還有待于深化,因此繼續(xù)開展計算思維的研究仍有必要,特別是在新工科專業(yè)建設(shè)中如何培養(yǎng)學(xué)生從計算思維角度來理解新的工業(yè)革命,需要做出大量的理論研究和教學(xué)實踐工作。
在這樣的背景下,提出了對于計算機(jī)專業(yè)和非計算機(jī)專業(yè)學(xué)生在計算思維培養(yǎng)上的不同要求。計算機(jī)專業(yè)學(xué)生的培養(yǎng)目標(biāo)在于理解計算機(jī)科學(xué)的本質(zhì),為其他學(xué)科提供更強大、便捷和可靠的計算平臺和環(huán)境。非計算機(jī)專業(yè)則應(yīng)使學(xué)生能從其所從事的行業(yè)、學(xué)科或者所關(guān)注的問題出發(fā),學(xué)習(xí)如何有效提取其中的信息屬性,分析其中的信息流動規(guī)律,實現(xiàn)問題的計算機(jī)建模。經(jīng)濟(jì)學(xué)中的囚徒困境模型、物理學(xué)中的伊辛模型、機(jī)械行業(yè)中的數(shù)字化制造、醫(yī)學(xué)中的精準(zhǔn)醫(yī)療等都是這方面很典型的案例。對于問題的準(zhǔn)確理解與合理建模將極大促進(jìn)問題解決,而相對復(fù)雜的程序?qū)崿F(xiàn)過程,完全可以通過與計算機(jī)專家合作來實現(xiàn)。
綜上所述,面對非計算專業(yè)學(xué)生的計算思維教學(xué)關(guān)鍵點在于:具有一定的信息素養(yǎng)和信息敏感性,培養(yǎng)學(xué)生將其所在領(lǐng)域的問題進(jìn)行有效信息提取和抽象能力,即計算機(jī)建模能力;理解計算機(jī)科學(xué)的基本原理和解決問題的基本方法,培養(yǎng)學(xué)生在計算機(jī)科學(xué)搭建起來的基礎(chǔ)設(shè)施平臺上暢行無阻;具備計算機(jī)科學(xué)的基本話語能力,可以與計算機(jī)專業(yè)人員進(jìn)行有效的溝通交流。基本內(nèi)容大體可以有如下幾個方面。
(1)計算機(jī)理論基礎(chǔ)。包括計算機(jī)如何實現(xiàn)邏輯和算術(shù)運算,計算機(jī)硬件的組成,操作系統(tǒng)的基本原理,計算機(jī)如何表達(dá)文字、聲音和圖像,數(shù)據(jù)存儲和檢索,計算機(jī)網(wǎng)絡(luò)基本原理,程序的基本原理和軟件開發(fā)流程,理解常用的幾種典型算法,理解物聯(lián)網(wǎng)和移動網(wǎng)絡(luò)的基本內(nèi)容。這一部分內(nèi)容的教學(xué)目的是讓非計算機(jī)專業(yè)的學(xué)生理解計算機(jī)解決問題的一般原理和過程,實現(xiàn)專業(yè)人員和非專業(yè)人員之間的溝通和交流。
(2)各學(xué)科典型的計算機(jī)建模案例。包括計算機(jī)建模的有效抽象工具(系統(tǒng)框圖、狀態(tài)轉(zhuǎn)換圖、機(jī)器學(xué)習(xí)模型等),以及典型跨學(xué)科模型的應(yīng)用案例介紹。比如博弈模型如何用來理解經(jīng)濟(jì)學(xué)問題,發(fā)源于物理學(xué)的伊辛模型如何應(yīng)用于社會學(xué)領(lǐng)域,當(dāng)前的社會熱點共享單車或者無人駕駛的工作原理和實現(xiàn)流程圖,超市排隊中如何實現(xiàn)優(yōu)化設(shè)計等。建議結(jié)合具體的應(yīng)用案例,讓學(xué)生在實踐中,體會計算機(jī)技術(shù)如何和科研、工作和生活的方方面面相結(jié)合,培養(yǎng)學(xué)生從信息運動的角度發(fā)現(xiàn)問題和觀察世界的意識。
(3)計算機(jī)的具體應(yīng)用。由于學(xué)生對計算機(jī)技術(shù)掌握的差異性以及培養(yǎng)目標(biāo)的不同,這部分可根據(jù)情況而設(shè)。建議在實際教學(xué)中,立足差異,采用小班教學(xué)的方法,開展可視化編程技術(shù)、機(jī)器人實踐、大數(shù)據(jù)分析、移動應(yīng)用軟件開發(fā)、人工智能流圖(tensorflow)等方向的具體技能培訓(xùn),并且積極參與各種計算機(jī)應(yīng)用大賽。這部分內(nèi)容的設(shè)置并非可有可無,它充分體現(xiàn)了專業(yè)領(lǐng)域與計算機(jī)之間的融合,實現(xiàn)動手和動腦的協(xié)同,讓學(xué)生在解決實際問題過程中獲得深入學(xué)習(xí)的樂趣和動力。
此外,對于計算機(jī)領(lǐng)域的熱門話題,有能力的學(xué)校還可以開展人工智能、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)、網(wǎng)絡(luò)安全等重大技術(shù)的哲學(xué)思考及其對于社會的影響等專題類課程,使計算思維真正惠及各專業(yè)的學(xué)生。
參考文獻(xiàn):
[1]WingJ.M. Computational Thinking[J].Communications of ACM,2006,28(9):23-28.
[2] 史文崇. 全球計算思維研究與實踐綜述[J]. 計算機(jī)工程與應(yīng)用,2018,54(4):31-35.
[3] 孫家廣. 計算機(jī)科學(xué)的變革[J]. 中國計算機(jī)學(xué)會通訊,2009,5(2).
[4] 董榮勝,古天龍. 計算思維與計算機(jī)方法論[J]. 計算機(jī)科學(xué),2009,36(1):1-4,42.
[5] NRC. Report of a work shop on the pedagogical aspects of Computational Thinking[M]. Washington D C,USA:National Academical Press,2011.
[6] 恩格斯. 自然辯證法[ M ] . 北京:人民出版社,1971:27.
[7]“計算機(jī)教育20人論壇”報告編寫組. 計算機(jī)教育與可持續(xù)競爭力[M]. 北京:高等教育出版社,2018.
[8] Manna, Z. Mathematical Theory of Computation[M]. New York: McGraw-Hill,1974.
[9] K. M. Karp. Understanding Science through the Computational Lens[J]. Journal of Computer Science and Technology, July 2011, 26(4): 569-577.
[10] P. J. Denning, P. Computing is a natural science[J]. Communications of the ACM, 2007, 50: 15-18.
[11] Barry Cooper,Andrew Hodges. The once and future Turing:computing the world[M]. Cambridge University Press, 2016.
[12] 陳國良,董榮勝. 計算思維與大學(xué)計算機(jī)基礎(chǔ)教育[J]. 中國大學(xué)教學(xué),2011(1).
[13] 閔應(yīng)驊. 作為學(xué)科的計算科學(xué)[M]. 北京:清華大學(xué)出版社,1994.
[14] 李廉. 關(guān)于計算思維的特質(zhì)性[J]. 中國大學(xué)教學(xué),2014(11):8-14.
[15] Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: What is Involved and What is the role of the computer science education community?[J] ACM Inroads, 2(1), 48–54.
[16] Cuny J.,nyder L.,Wing J. M.Demystifying CT for noncomputer scientists[EB/OL].http://www.cs.cmu.edu/compthink/resources/thelinkwing.pdf,2017-10-15.
[17] 徐志偉,孫曉明. 計算機(jī)科學(xué)導(dǎo)論[M]. 北京:清華大學(xué)出版社,2018.
[責(zé)任編輯:余大品]