計算機科學發展的動力html
姚堯算法
計算機對現代人來講並不陌生。我經常在坐車或者吃飯時和不是學計算機的朋友閒聊。出乎意料的是他們總會認爲學計算機就是學會十分懂得如何組裝電腦、如何重裝操做系統,或者如何入侵他人的計算機作一些破壞活動,至少從話語表面上看如此。編程
不錯,設計硬件體系結構、編寫操做系統和網絡安全攻防屬於計算機科學領域研究的問題。但不多有人問:爲何如今處處都是馮諾依曼體系結構、Windows操做系統、這樣充滿問題的計算機網絡呢?若是要回答這些問題,就必須討論到計算機發展的深層理由:爲何也稱學習計算機也是學習一門科學,計算機科學可以發展成爲一門獨立科學的動力是什麼。安全
不少人知道計算機科學的出現源於應用數學的發展,最先是應用數學的一個分支。計算機科學活動自己就有數學精神涵於其中。馮諾依曼認爲一門純粹數學分支的發展最初是深受實際經驗的啓發和推進,一經形式化和高度抽象以後便爲純粹審美的目的所指導。雖然不十分確定,可是個人體會是,計算機科學一樣是源於人類經驗和實際問題的。而計算機科學的純粹部分,即理論計算機科學,一方面深受數理邏輯、集合論和組合數學的影響;另外一方面,當計算機科學家在深刻分析抽象計算方法本質的過程當中發現了其獨特的魅力。網絡
我認爲計算機科學發展的動力來源於三方面:考察天然和人類心智得到的經驗、數學理論和社會實際的問題、以及計算機科學各個方法之間深入的聯繫帶來的優美體驗。分佈式
人類在現代以前對天然和心智的考察積累的豐富的經驗推進了早期計算機科學思想。古巴比倫人發明算盤用來作60進制的運算,多是爲了物品計數和天文曆法。60進制運算、計數觀測天文與制定曆法的活動主要依據天然觀察。Leibniz很是強調二進制運算、創建真假二元的形式邏輯之中的邏輯思想。Leibniz設想這樣的代數化的邏輯可以表示、推演出全部的人類知識。另外他認爲當時東西方的主流哲學意識也融合在其中:「1表明上帝,0表明虛無,上帝從虛無中創造了萬物」;「凡物皆陰陽二氣,相剋相生」。統一的邏輯表示、推演以及機器製造正是計算機科學的最初動力。函數
步入現代以後,地球上的人類交流愈來愈頻繁,哲學的、科學的、數學的經驗不斷的積累。大量理論或實際的應用問題產生,推進計算機科學迅速嶄露頭角。Hilbert很是強調數學問題對數學發展的根本做用。正是嘗試解決Hilbert「斷定問題」的過程當中創造了現代計算機科學的內核,可計算性以及圖靈機模型、遞歸函數。學習
至於解決實際的問題誕生的發明就更多並且廣爲人知。包括生產、生活、戰爭:打卡式織布機(編程織布圖案)、Harvard Mark I(彈道計算)、Colossus(破譯德軍Enigma密碼機)、ENIAC(火炮計算)、EDVAC(Manhattan工程製造核彈)等。回過頭來看,隨着人類交流愈來愈密切、愈來愈追求便利,大型機轉向小型我的機、單機組合成網絡、繼電器-電子管-晶體管-編譯器-集成電路-微處理器-鼠標與圖形界面-RISC體系結構-我的電腦與現代操做系統-互聯網-網絡病毒-手機-光纖-電子商務-分佈式計算-搜索引擎-運籌優化與數據分析-專家系統-終極人工智能之夢這樣的趨勢就不難理解了。優化
最後咱們有了如今的花花世界,世界上充斥着無數人造物品(論文也是其一)、方法和理論。各類紛繁的方法和理論之間須要整理分類、思考其中的聯繫和矛盾。在這個思考的過程當中,愈來愈抽象的概念被提出、學科門類愈來愈細。理論計算機科學方面,數理邏輯、計算理論和計算複雜度理論很好的結合在一塊兒。依據圖靈機做爲通用的計算模型判斷抽象問題能否計算,解決各類可計算問題算法的計算複雜度根據時間或空間度量的多項式函數分類。如此理論計算機科學的核心主體建築的構架完成了。理解理論計算機科學之深入和優雅的人都會體會到。搜索引擎
回顧數學發展的歷程和動力,不難發覺計算機科學和數學有共同的基礎。算法分析之父、數學家 Donald Knuth (b. 1938,中文名「高德納」) 除在鉅著 The Art of Computer Programming (《計算機程序設計藝術》) 第一卷第一章講述數學基礎以外還跟人合著 Concrete Mathematics (《具體數學》) 做爲教授計算機科學基礎的教材。可見一斑。