什么是计算机思维?
計(jì)算機(jī)思維是一套概念模型
我們運(yùn)用一個(gè)思維模型時(shí),要經(jīng)歷這樣三個(gè)階段:建模,解模,解釋。與之相對應(yīng)的則是抽象思維、演繹思維、發(fā)散思維。通過抽象,形式化,將我們所需要研究的問題進(jìn)行歸納,用一種范式表達(dá)出來,建立模型;然后通過嚴(yán)密的演繹推理,解出這個(gè)模型;最后,使用發(fā)散思維,將蘊(yùn)含于這個(gè)模型中的意義用自然語言表述出來。
計(jì)算思維?
Jeannette M. Wing (周以真)?(翻譯:徐韻文,王飛躍, 校對:王飛躍)?
它代表著一種普遍的認(rèn)識和一類普適的技能,每一個(gè)人,不僅僅是計(jì)算機(jī)科學(xué)家,都應(yīng)熱心于它的學(xué)習(xí)和運(yùn)用。?
計(jì)算思維是建立在計(jì)算過程的能力和限制之上的,不管這些過程是由人還是由機(jī)器執(zhí)行的。計(jì)算方法和模型給了我們勇氣去處理那些原本無法由任何個(gè)人獨(dú)自完成的問題求解和系統(tǒng)設(shè)計(jì)。計(jì)算思維直面機(jī)器智能的不解之謎:什么人類能比計(jì)算機(jī)做得更好?什么計(jì)算機(jī)能比人類做得更好?最基本的是它涉及這樣的問題:什么是可計(jì)算的?今天,我們對這些問題的答案仍是一知半解。?
計(jì)算思維是每個(gè)人的基本技能,不僅僅屬于計(jì)算機(jī)科學(xué)家。在閱讀、寫作和算術(shù)(英文簡稱3R)之外,我們應(yīng)當(dāng)將計(jì)算思維加到每個(gè)孩子的解析能力之中。正如印刷出版促進(jìn)了3R的傳播,計(jì)算和計(jì)算機(jī)也以類似的正反饋促進(jìn)了計(jì)算思維的傳播。?
計(jì)算思維涉及運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計(jì)系統(tǒng)和理解人類的行為。計(jì)算思維涵蓋了反映計(jì)算機(jī)科學(xué)之廣泛性的一系列思維活動。?
當(dāng)求解一個(gè)特定的問題時(shí),我們會問:解決這個(gè)問題有多困難?怎樣才是最佳的解決之道? 計(jì)算機(jī)科學(xué)根據(jù)堅(jiān)實(shí)的理論基礎(chǔ)來準(zhǔn)確地回答這些問題。表明問題的困難程度是為了考量機(jī)器——就是用來運(yùn)行其解的計(jì)算工具之基本能力。我們必須考慮機(jī)器的指令系統(tǒng)、它的資源約束和它的操作環(huán)境。?
為了有效地求解一個(gè)問題,我們可能要進(jìn)一步問:一個(gè)近似解是否就足夠了,是否可以利用一下隨機(jī)化,以及是否允許誤正或誤負(fù)。計(jì)算思維就是把一個(gè)看來困難的問題重新闡述成一個(gè)我們知道怎樣解的問題,如通過約簡、嵌入、轉(zhuǎn)化和仿真的方法。?
計(jì)算思維是一種遞歸思維。它是并行處理。它是把代碼譯成數(shù)據(jù)又把數(shù)據(jù)譯成代碼。它是由推廣量綱分析進(jìn)行的類型檢查。對于別名或賦予人與物多個(gè)名字的做法,它既知道其益處又了解其害處。對于間接尋址和程序調(diào)用的做法,它既知道其威力又了解其代價(jià)。它評價(jià)一個(gè)程序時(shí),不僅僅根據(jù)其準(zhǔn)確性和效率,還有美學(xué)的考量,而對于系統(tǒng)的設(shè)計(jì),還考慮簡潔和優(yōu)雅。?
計(jì)算思維采用了抽象和分解來迎戰(zhàn)浩大復(fù)雜的任務(wù)或者設(shè)計(jì)巨大復(fù)雜的系統(tǒng)。它是關(guān)注的分離。它是選擇合適的方式去陳述一個(gè)問題,或者是選擇合適的方式對一個(gè)問題的相關(guān)方面建模使其易于處理。它是利用不變量簡明扼要且表述性地刻畫系統(tǒng)的行為。它是我們在不必理解每一個(gè)細(xì)節(jié)的情況下就能夠安全地使用、調(diào)整和影響一個(gè)大型復(fù)雜系統(tǒng)的信心。它就是為預(yù)期的多個(gè)用戶而進(jìn)行的模塊化,它就是為預(yù)期的未來應(yīng)用而進(jìn)行的預(yù)置和緩存。?
計(jì)算思維是通過冗余、堵錯(cuò)、糾錯(cuò)的方式,在最壞情況下進(jìn)行預(yù)防、保護(hù)和恢復(fù)的一種思維。它稱堵塞為死結(jié),叫合同為界面。它就是學(xué)習(xí)在諧調(diào)同步相互會合時(shí)如何避免競爭的情形。?
計(jì)算思維是利用啟發(fā)式推理來尋求解答。它就是在不確定情況下的規(guī)劃、學(xué)習(xí)和調(diào)度。它就是搜索、搜索、再搜索,最后得到的是一系列的網(wǎng)頁,一個(gè)贏得游戲的策略,或者一個(gè)反例。計(jì)算思維是利用海量的數(shù)據(jù)來加快計(jì)算。它就是在時(shí)間和空間之間,在處理能力和存儲容量之間的權(quán)衡。?
考慮這些日常中的事例:當(dāng)你女兒早晨去學(xué)校時(shí),她把當(dāng)天需要的東西放進(jìn)背包;這就是預(yù)置和緩存。當(dāng)你兒子弄丟他的手套時(shí),你建議他沿走過的路回尋;這就是回推。在什么時(shí)候你停止租用滑雪板而為自己買一對呢?這就是在線算法。在超市付賬時(shí)你應(yīng)當(dāng)去排哪個(gè)隊(duì)呢?這就是多服務(wù)器系統(tǒng)的性能模型。為什么停電時(shí)你的電話仍然可用?這就是失敗的無關(guān)性和設(shè)計(jì)的冗余性。完全自動的大眾圖靈測試是如何區(qū)分計(jì)算機(jī)和人類(簡稱CAPTCHA)的,即CAPTCHAs是怎樣鑒別人類的?這就是充分利用求解人工智能難題之艱難來挫敗計(jì)算代理程序。?
計(jì)算思維將滲入到我們每個(gè)人的生活之中,那時(shí)諸如算法和前提條件已成為每個(gè)人日常詞匯的一部分,非確定論和垃圾收集已含有計(jì)算機(jī)學(xué)家所指的含義,而樹已常常被倒過來畫了。?
我們已見證了計(jì)算思維在其它學(xué)科中的影響。例如,機(jī)器學(xué)習(xí)已經(jīng)改變了統(tǒng)計(jì)學(xué)。就數(shù)據(jù)尺度和維數(shù)而言,統(tǒng)計(jì)學(xué)習(xí)用于各類問題的規(guī)模僅在幾年前還是不可想象的。各種組織的統(tǒng)計(jì)部門都聘請了計(jì)算機(jī)科學(xué)家。計(jì)算機(jī)學(xué)院系正在聯(lián)姻已有或開設(shè)新的統(tǒng)計(jì)部門。?
計(jì)算機(jī)學(xué)家們近來對生物科學(xué)的興趣是由他們堅(jiān)信生物學(xué)家能夠從計(jì)算思維中獲益的信念驅(qū)動的。計(jì)算機(jī)科學(xué)對于生物學(xué)的貢獻(xiàn)決不限于其能夠在海量時(shí)序數(shù)據(jù)中搜索尋找模式規(guī)律的本領(lǐng)。最終的希望是數(shù)據(jù)結(jié)構(gòu)和算法——我們的計(jì)算抽象和方法——能夠以闡釋其功能的方式表示蛋白質(zhì)的結(jié)構(gòu)。計(jì)算生物學(xué)正在改變著生物學(xué)家的思考方式。類似地,計(jì)算博弈理論正改變著經(jīng)濟(jì)學(xué)家的思考方式,納米計(jì)算改變著化學(xué)家的思考方式,量子計(jì)算改變著物理學(xué)家的思考方式。?
這種思維將成為不僅僅是其他科學(xué)家,而且是其他每一個(gè)人的技能組合之部分。普在計(jì)算之于今天就是計(jì)算思維之于明天。普在計(jì)算是已變?yōu)榻袢罩F(xiàn)實(shí)的昨日之夢,計(jì)算思維就是明日之現(xiàn)實(shí)。?
它是什么,又不是什么?
計(jì)算機(jī)科學(xué)是計(jì)算的學(xué)問——什么是可計(jì)算的,怎樣去計(jì)算。因此,計(jì)算思維具有以下特性:?
概念化,不是程序化。計(jì)算機(jī)科學(xué)不是計(jì)算機(jī)編程。像計(jì)算機(jī)科學(xué)家那樣去思維意味著遠(yuǎn)遠(yuǎn)不止能為計(jì)算機(jī)編程。它要求能夠在抽象的多個(gè)層次上思維。?
基礎(chǔ)的,不是機(jī)械的技能。基礎(chǔ)的技能是每一個(gè)人為了在現(xiàn)代社會中發(fā)揮職能所必須掌握的。生搬硬套之機(jī)械的技能意味著機(jī)械的重復(fù)。具有諷刺意味的是,只有當(dāng)計(jì)算機(jī)科學(xué)解決了人工智能的宏偉挑戰(zhàn)——使計(jì)算機(jī)像人類一樣思考之后,思維才會變成機(jī)械的生搬硬套。?
人的,不是計(jì)算機(jī)的思維。計(jì)算思維是人類求解問題的一條途徑,但決非試圖使人類像計(jì)算機(jī)那樣地思考。計(jì)算機(jī)枯燥且沉悶;人類聰穎且富有想象力。我們?nèi)祟愘x予計(jì)算機(jī)以激情。配置了計(jì)算設(shè)備,我們就能用自己的智慧去解決那些計(jì)算時(shí)代之前不敢嘗試的問題,就能建造那些其功能僅僅受制于我們想象力的系統(tǒng)。?
數(shù)學(xué)和工程思維的互補(bǔ)與融合。計(jì)算機(jī)科學(xué)在本質(zhì)上源自數(shù)學(xué)思維,因?yàn)橄袼械目茖W(xué)一樣,它的形式化解析基礎(chǔ)筑于數(shù)學(xué)之上。計(jì)算機(jī)科學(xué)又從本質(zhì)上源自工程思維,因?yàn)槲覀兘ㄔ斓氖悄軌蚺c實(shí)際世界互動的系統(tǒng)。基本計(jì)算設(shè)備的限制迫使計(jì)算機(jī)學(xué)家必須計(jì)算性地思考,不能只是數(shù)學(xué)性地思考。構(gòu)建虛擬世界的自由使我們能夠超越物理世界去打造各種系統(tǒng)。?
是思想,不是人造品。不只是我們生產(chǎn)的軟件硬件人造品將以物理形式到處呈現(xiàn)并時(shí)時(shí)刻刻觸及我們的生活,更重要的是還將有我們用以接近和求解問題、管理日常生活、與他人交流和互動之計(jì)算性的概念;而且,?
面向所有的人,所有地方。當(dāng)計(jì)算思維真正融入人類活動的整體以致不再是一種顯式之哲學(xué)的時(shí)候,它就將成為現(xiàn)實(shí)。?
許多人將計(jì)算機(jī)科學(xué)等同于計(jì)算機(jī)編程。有些家長為他們主修計(jì)算機(jī)科學(xué)的孩子看到的只是一個(gè)狹窄的就業(yè)范圍。許多人認(rèn)為計(jì)算機(jī)科學(xué)的基礎(chǔ)研究已經(jīng)完成,剩下的只是工程部分而已。當(dāng)我們行動起來去改變這一領(lǐng)域的社會形象時(shí),計(jì)算思維就是一個(gè)引導(dǎo)著計(jì)算機(jī)教育家、研究者和實(shí)踐者的宏大愿景。我們特別需要走進(jìn)大學(xué)之前的聽眾,包括老師、父母、學(xué)生,向他們傳送兩個(gè)主要信息:?
智力上極有挑戰(zhàn)性并且引人入勝的科學(xué)問題依舊亟待理解和解決。這些問題的范圍和解決方案的范圍之唯一局限就是我們自己的好奇心和創(chuàng)造力;同時(shí)?
一個(gè)人可以主修計(jì)算機(jī)科學(xué)并且干什么都行。一個(gè)人可以主修英語或者數(shù)學(xué),接著從事各種各樣的職業(yè)。計(jì)算機(jī)科學(xué)也一樣。一個(gè)人可以主修計(jì)算機(jī)科學(xué),接著從事醫(yī)學(xué)、法律、商業(yè)、政治,以及任何類型的科學(xué)和工程,甚至藝術(shù)工作。?
計(jì)算機(jī)科學(xué)的教授應(yīng)當(dāng)為大學(xué)新生開一門稱為“怎么像計(jì)算機(jī)科學(xué)家一樣思維”的課,面向非專業(yè)的,而不僅僅是計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生。我們應(yīng)當(dāng)使大學(xué)之前的學(xué)生接觸計(jì)算的方法和模型。我們應(yīng)當(dāng)設(shè)法激發(fā)公眾對于計(jì)算機(jī)領(lǐng)域中的科學(xué)探索之興趣,而不是悲嘆對其興趣的衰落或者哀泣其研究經(jīng)費(fèi)的下降。所以,我們應(yīng)當(dāng)傳播計(jì)算機(jī)科學(xué)的快樂、崇高和力量,致力于計(jì)算思維的常識化。
總結(jié)
- 上一篇: 如何在Microwindows中显示图片
- 下一篇: linux借助expect完成自动登录