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