榮獲美國出版人協會(Association of American Publishers)電腦資訊科學最佳書籍獎
電腦網路技術無所不在:每天,我們從海量的資訊中搜尋到所要的資訊、我們上傳照片到臉書上、我們運用公鑰加密來傳送私人資訊例如信用卡號碼等等、我們使用數位簽章來確認所造訪的網站的真偽……
這本書介紹了讓電腦網路世界得以運作,塑造今日人類生活的九種最重要的演算法(algorithm)。作者挑選這九大演算法的標準是:
1.每天會被一般電腦使用者用到的演算法。
2.必須能解決現實世界的具體問題。
3.主要是與資訊科學理論有關的演算法。
4. 美、簡潔、優雅。
本書所介紹的九大演算法是:搜尋引擎的索引(search engine indexing)、網頁排序(page rank)、公鑰加密(public-key cryptography)、錯誤更正碼(error-correcting codes)、模式辨識(pattern recognition,如手寫辨識、聲音辨識、人臉辨識等等)、資料壓縮(data compression)、資料庫(databases)、數位簽章(digital signature),以及一種如果存在的話將會很了不起的偉大演算法,並探討電腦能力的極限。
作者將我們日常生活會用到的電腦功能背後的道理,以淺顯易懂的方式介紹,不具備資訊科學的背景也可以了解。而且令人驚喜的是,每一種演算法,都是一個解決問題的創意與線索,也讓我們得以一窺近代數學家、資訊科學家的努力探索成果。面對越來越科技化的現代生活與職場挑戰,這些基本原理和概念值得我們去了解、吸收,為未來世界做好準備。
名人推薦
媒體好評:
「這是一本很容易讀的書,介紹了一些很重要的演算法。最重要的是,這本書傳達了一種神奇——不光是指科技的成就,而是使得電腦發揮神奇功能的美麗科學。」
Andreas Trabesinger,《自然物理學》(Nature Physics)
「這本書寫得非常好……風格相當平易近人,適合廣大讀者閱讀。」
John Gilbey,《泰晤士報高等教育專刊》(Times Higher Education)
「作者讓讀者有一種發動機的感覺,這台發動機為網路世界提供動力……本書讓讀者體會真實世界,開始看到這些演算法在你我周遭活跳跳。」
Kevin Slavin,《新科學家》(New Scientist)
「成功地把電腦科學呈現給廣大群眾。」
Ernest Davis,《工業與應用數學學會通訊》(SIAM News)
「作者讓大家稍稍體會到,我們電腦科學家們之所以對演算法如此興奮的原因——因為演算法的功用,還有它們的美與優雅。」
Paul Curzon,《科學》(Science)
作者
約翰˙麥考米克John MacCormick
他是資訊科學領域傑出的研究學者與教授。他在牛津大學取得電腦視像(computer vision)博士學位,曾經在惠普(HP)與微軟(Microsoft)的研究實驗室工作。目前於賓州的狄金森學院(Dickinson College)擔任資訊科學教授。
譯者簡介
陳正芬
專職譯者,美國伊利諾大學香檳分校會計碩士。譯有《QBQ!問題背後的問題》、《C型人生》、《假如你明天當上主管》、《用心飲食》、《一座小行星的新飲食方式》、《你的錢,為什麼變薄了》、《定價思考術》、《關懷的力量》、《個體經濟學 入門的入門》、《如何活用行為經濟學》等。
目錄
前言
第1章 引言
讓今日電腦威力無窮的神奇概念
演算法:天才就在彈指間
偉大演算法的條件是什麼?
這些偉大的演算法為什麼重要?
第2章 搜尋引擎的索引:配對與排序
AltaVista:第一個網路規模的配對演算法
古早時代的陽春式索引
文字─位置技法
排序與相鄰
元詞技法
光是標註索引和配對技法還不夠
第3章 網頁排序:讓谷歌起飛的技術
超連結技法
權威性技法
隨機漫遊技法
網頁排序的實作
第4章 公鑰加密:用明信片寄送祕密
用共同的祕密來加密
設定一個公開的共同祕密
實務上的公鑰加密
第5章 錯誤更正碼:錯誤可以自己修正!
偵錯與改正的必要性
重複的技法
冗餘技法
校驗技法
定點目標技法
真實世界中的糾錯與偵錯
第6章 模式辨識:從經驗中學習
問題是什麼?
最近鄰居技法
二十個問題技法:決策樹
神經網路
模式辨識:過去、現在、未來
第7章 資料壓縮:白吃的午餐
無損失的壓縮:終極的白吃午餐
有損失的壓縮:不是白吃的午餐,但很划算
壓縮演算法的由來
第8章 資料庫:追求一致性
交易與待辦事項清單技法
複製資料庫所用的「準備然後承諾技法」
關聯式資料庫與虛擬表格技法
資料庫的人性面
第9章 數位簽章:這軟體到底是誰寫的?
數位簽章究竟用來做什麼?
書面簽字
上鎖的簽字
利用乘法鎖來簽字
利用指數型鎖來簽字
數位簽章的實務
解決矛盾
第10章 什麼是可計算的?
程式錯誤、毀壞和軟體的可靠度
反證法
用於分析其他程式的程式
有些程式不可能存在
尋找當機的程式不可能存在
電腦的極限給我們的啟示
第11章 結論:未來會如何呢?
頗具潛力的演算法
偉大的演算法可能失去光彩嗎?
我們學到了什麼?
旅程的結束
資料來源與延伸閱讀
序/導讀
前言
電腦運算(computing)正在改變我們的社會,影響之深一如物理學和化學在過去兩百年為人類帶來的改變。數位科技幾乎全面影響你我的生活乃至於掀起革命,有鑑於電腦運算對現代社會的重要性,然而人們對造就這一切事物的基本概念所知卻如此有限,就顯得有些矛盾了。電腦科學的核心正是在研究這些概念,而這本約翰.麥考米克(John MacCormick)的新書,就是將這些概念傳達給一般讀者的少數書籍之一。
一般人對於電腦科學做為一門學科的體認相對欠缺,理由之一是在高中階段很少教導這些東西。物理和化學的入門課通常是必修,然而通常要到了大專、大學階段,才真正有電腦科學這門課。此外學校教的電腦運算或資訊與通信技術(Information and communication technology,簡稱ICT),通常只是使用套裝軟體的技術訓練,也難怪學生會覺得乏味。即使學生很自然地對於電腦技術應用在娛樂和通訊方面感到興趣,但卻因為印象中這些技術的創造缺乏學術的深度,使得他們的興趣沒有進一步發展。或許這就是過去十年來,美國研讀電腦科學的大學生人數減少了50%的原因。基於數位科技對現代社會的關鍵重要性,現在正是讓人們對電腦科學的奧祕重燃起興趣的最佳時機。
2008年,我有幸被選中在第180屆英國皇家科學院聖誕講座(Royal Institution Christmas Lectures)上台報告,這個活動是由偉大科學家法拉第(Michael Faraday)於1826年所發起。2008年的演講首度以電腦科學為主題,我在準備時花了很多時間思索該如何向普羅大眾介紹電腦科學,結果發現資源很少,幾乎沒有科普書能滿足這樣的需要,也因此這本書特別令人期待。
作者將複雜的電腦科學觀念很完美地傳達給讀者大眾,其中一些觀念的美與優雅,本身就值得大眾的關注。舉個例子:過去幾十年來,在公開管道上進行安全通訊一直是個棘手問題,直到人們想出了如何在網路上安全地傳送機密資訊(例如信用卡卡號),才造就了電子商務爆炸性的成長。在本書中,作者以比喻的方式來說明這些優雅的解決方案的來龍去脈,讀者不須具備電腦科學知識就可以理解。諸如此類的優點,使本書成為不可多得的科普書籍,我極力推薦。
----畢夏普(Chris Bishop),微軟劍橋研究中心卓越科學家、英國皇家學院副院長、愛丁堡大學資訊科學教授