計算思維
計算思維
計算思維是運用計算機科學的基礎概念進行問題求解、系統設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動,由周以真於2006年3月首次提出。2010年,周以真教授又指出計算思維是與形式化問題及其解決方案相關的思維過程,其解決問題的表示形式應該能有效地被信息處理代理執行。
2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授在美國計算機權威期刊《Communications of the ACM》雜誌上給出,並定義的計算思維(Computational Thinking)。
周以真
電子計算機
優點
計算思維建立在計算過程的能力和限制之上,由人由機器執行。計算方法和模型使我們敢於去處理那些原本無法由個人獨立完成的問題求解和系統設計。
內容
計算思維中的抽象完全超越物理的時空觀,並完全用符號來表示,其中,數字抽象只是一類特例。
與數學和物理科學相比,計算思維中的抽象顯得更為豐富,也更為複雜。數學抽象的最大特點是拋開現實事物的物理、化學和生物學等特性,而僅保留其量的關係和空間的形式,而計算思維中的抽象卻不僅僅如此。
操作模式 計算思維建立在計算過程的能力和限制之上,由人由機器執行。計算方法和模型使我們敢於去處理那些原本無法由任何個人獨自完成的問題求解和系統設計。計算思維直面機器智能的不解之謎:什麼人類比計算機做得好?什麼計算機比人類做得好?最基本的問題是:什麼是可計算的?迄今為止我們對這些問題仍是一知半解。
計算思維用途 計算思維是每個人的基本技能,不僅僅屬於計算機科學家。我們應當使每個孩子在培養解析能力時不僅掌握閱讀、寫作和算術(Reading, wRiting, and aRithmetic——3R),還要學會計算思維。正如印刷出版促進了3R的普及,計算和計算機也以類似的正反饋促進了計算思維的傳播。
計算思維
為了有效地求解一個問題,我們可能要進一步問:一個近似解是否就夠了,是否可以利用一下隨機化,以及是否允許誤報(false positive)和漏報(false negative)。計算思維就是通過約簡、嵌入、轉化和模擬等方法,把一個看來困難的問題重新闡釋成一個我們知道怎樣解決的問題。
計算思維是一種遞歸思維 它是并行處理。它是把代碼譯成數據又把數據譯成代碼。它是由廣義量綱分析進行的類型檢查。對於別名或賦予人與物多個名字的做法,它既知道其益處又了解其害處。對於間接定址和程序調用的方法,它既知道其威力又了解其代價。它評價一個程序時,不僅僅根據其準確性和效率,還有美學的考量,而對於系統的設計,還考慮簡潔和優雅。
智能機器人
計算思維利用啟髮式推理來尋求解答,就是在不確定情況下的規劃、學習和調度。它就是搜索、搜索、再搜索,結果是一系列的網頁,一個贏得遊戲的策略,或者一個反例。計算思維利用海量數據來加快計算,在時間和空間之間,在處理能力和存儲容量之間進行權衡。
考慮下面日常生活中的事例:當你女兒早晨去學校時,她把當天需要的東西放進背包,這就是預置和緩存;當你兒子弄丟他的手套時,你建議他沿走過的路尋找,這就是回推;在什麼時候停止租用滑雪板而為自己買一付呢?這就是在線演演算法;在超市付帳時,你應當去排哪個隊呢?這就是多伺服器系統的性能模型;為什麼停電時你的電話仍然可用?這就是失敗的無關性和設計的冗餘性;完全自動的大眾圖靈測試如何區分計算機和人類,即CAPTCHA[注1]程序是怎樣鑒別人類的?這就是充分利用求解人工智慧難題之艱難來挫敗計算代理程序。
計算思維將滲透到我們每個人的生活之中,到那時諸如演演算法和前提條件這些辭彙將成為每個人日常語言的一部分,對“非確定論”和“垃圾收集”這些詞的理解會和計算機科學里的含義驅近,而樹已常常被倒過來畫了。
我們已見證了計算思維在其他學科中的影響。例如,機器學習已經改變了統計學。就數學尺度和維數而言,統計學慣用於各類問題的規模僅在幾年前還是不可想象的。各種組織的統計部門都聘請了計算機科學家。計算機學院(系)正在與已有或新開設的統計學系聯姻。
計算機學家們對生物科學越來越感興趣,因為他們堅信生物學家能夠從計算思維中獲益。計算機科學對生物學的貢獻決不限於其能夠在海量序列數據中搜索尋找模式規律的本領。最終希望是數據結構和演演算法(我們自身的計算抽象和方法)能夠以其體現自身功能的方式來表示蛋白質的結構。計算生物學正在改變著生物學家的思考方式。類似地,計算博弈理論正改變著經濟學家的思考方式,納米計算改變著化學家的思考方式,量子計算改變著物理學家的思考方式。
這種思維將成為每一個人的技能組合成分,而不僅僅限於科學家。普適計算之於今天就如計算思維之於明天。普適計算是已成為今日現實的昨日之夢,而計算思維就是明日現實。
概念化,不是程序化
計算機科學不是計算機編程。像計算機科學家那樣去思維意味著遠不止能為計算機編程,還要求能夠在抽象的多個層次上思維。
根本的,不是刻板的技能
根本技能是每一個人為了在現代社會中發揮職能所必須掌握的。刻板技能意味著機械的重複。具有諷刺意味的是,當計算機像人類一樣思考之後,思維可就真的變成機械的了。
計算思維
計算思維是人類求解問題的一條途徑,但決非要使人類像計算機那樣地思考。計算機枯燥且沉悶,人類聰穎且富有想象力。是人類賦予計算機激情。配置了計算設備,我們就能用自己的智慧去解決那些在計算時代之前不敢嘗試的問題,實現“只有想不到,沒有做不到”的境界。
數學和工程思維的互補與融合
計算機科學在本質上源自數學思維,因為像所有的科學一樣,其形式化基礎建築於數學之上。計算機科學又從本質上源自工程思維,因為我們建造的是能夠與實際世界互動的系統,基本計算設備的限制迫使計算機學家必須計算性地思考,不能只是數學性地思考。構建虛擬世界的自由使我們能夠設計超越物理世界的各種系統。
是思想,不是人造物
不只是我們生產的軟體硬體等人造物將以物理形式到處呈現並時時刻刻觸及我們的生活,更重要的是還將有我們用以接近和求解問題、管理日常生活、與他人交流和互動的計算概念;而且,面向所有的人,所有地方。當計算思維真正融入人類活動的整體以致不再表現為一種顯式之哲學的時候,它就將成為一種現實。
許多人將計算機科學等同於計算機編程。有些家長為他們主修計算機科學的孩子看到的只是一個狹窄的就業範圍。許多人認為計算機科學的基礎研究已經完成,剩下的只是工程問題。當我們行動起來去改變這一領域的社會形象時,計算思維就是一個引導著計算機教育家、研究者和實踐者的宏大願景。我們特別需要抓住尚未進入大學之前的聽眾,包括老師、父母和學生,向他們傳送下面兩個主要信息:
智力上的挑戰和引人入勝的科學問題依舊亟待理解和解決。這些問題和解答僅僅受限於我們自己的好奇心和創造力;同時一個人可以主修計算機科學而從事任何行業。一個人可以主修英語或者數學,接著從事各種各樣的職業。計算機科學也一樣。一個人可以主修計算機科學,接著從事醫學、法律、商業、政治,以及任何類型的科學和工程,甚至藝術工作。
計算機科學的教授應當為大學新生開一門稱為“怎麼像計算機科學家一樣思維”的課程,面向所有專業,而不僅僅是計算機科學專業的學生。我們應當使入大學之前的學生接觸計算的方法和模型。我們應當設法激發公眾對計算機領域科學探索的興趣,而不是悲嘆對其興趣的衰落或者哀泣其研究經費的下降。所以,我們應當傳播計算機科學的快樂、崇高和力量,致力於使計算思維成為常識。