偉大的計算原理 Great Principles of Computing

Peter J. Denning,Craig H. Martell

買這商品的人也買了...

相關主題

商品描述

理解計算,並不是將電腦當作工具,而是要領會應用於計算諸多方面和示例中的基礎原理。本書為我們鋪設了一條發掘這些基礎原理的道路。一旦讀完了Denning和Martell為我們撰寫的這本精心之作,你會發現這本書不是填鴨式地灌輸,而是需要你自己去發掘、吸收,並將它們連貫起來。本書全力為我們展現這樣一個全面的視圖:計算是什麽以及計算又是如何應用到我們居住的這個世界的。
—— Leonard Kleinrock,加州大學洛杉磯分校電腦科學特聘教授

通過努力,幾乎每個人都可以學會編程。然而僅僅靠編寫代碼並不足以構建輝煌的計算世界,要完成這個目標起碼需要對以下幾個方面有更深入的認識:電腦是如何工作的,如何選擇算法,計算系統是如何組織的,以及如何進行正確而可靠的設計。如何開始學習這些相關的知識呢?本書就是一個方法——這是一本深思熟慮地綜合描述計算背後的基本概念的書。通過一系列詳細且容易理解的話題,本書為正在學習如何認識計算(而不僅僅是用某種程序設計語言進行編碼)的讀者提供了堅實的基礎。Denning和Martell確實為計算領域的學生呈現了其中的基本原理。
—— Eugene H. Spafford,普渡大學電腦科學教授
計算通常被看作是一個按照摩爾定律高速發展的技術領域。如果我們稍不留意,就有可能錯過一個劃時代的技術突破或者翻天覆地的理論發展。該書從一個不同的視角,把計算看作一門遵從一些基本原理的科學,而這些基本原理可以涵蓋其中所有的技術。電腦科學是一門關於信息處理的科學,我們需要一種新的“語言”來描述這門科學。在本書中,Denning和Martell給出了一個重要原理框架作為這種語言。本書涵蓋了計算的方方面面——包括算法、體系結構和設計。
Denning和Martell將計算的基本原理分為六大類:通信、計算、協作、記憶(存儲)、評估和設計。他們首先對作為科學的計算進行了概括性的描述,包括它的歷史、與其他領域的諸多交互、應用領域以及重要原理框架的結構。進而在不同的領域(包括信息、機器、程序設計、計算、存儲、並行、排隊和設計)中驗證了這些基本原理。最後,將這些基本原理應用到電腦網絡,尤其是因特網之中。
無論是包含計算分支的科學和工程領域中的專業人員,還是想要大致瞭解電腦科學中不太熟悉的計算領域的從業人員,抑或是想要窺視電腦科學門徑的非電腦科學專業人員,本書都是適合他們閱讀的一本基礎讀物。

作者簡介

彼得J.丹寧(Peter J.Denning)
美國海軍研究生院傑出教授,ACM前,有名計算機雜誌《Communicalions of The ACM》前主編。


克雷格H.馬特爾(Craig H.Martell)
美國海軍研究生院計算機科學系副教授。

目錄大綱

目錄
Great Principles of Computing
出版者的話
譯者序

前言

第1章作為科學的計算1
計算的範型5
計算的重要原理9
計算在科學中的位置12
本書的關注點13
總結14
致謝14

第2章計算領域15
領域和基本原理16
信息安全19
人工智能20
雲計算22
大數據24
總結26

第3章信息27
信息的表示28
通信系統30
信息的測量34
信息的轉換38
交互系統40
解決悖論41
信息和發現42
總結43
致謝44

第4章機器45
機器46
可以計算的機器49
程序及其表示53
棧式計算機:計算機系統的一種簡單模型54
過程與異常56
選擇的不確定性61
結論64

第5章程序設計65
程序、程序員和程序設計語言66
程序設計實踐68
程序中的錯誤70
自動翻譯72
總結76

第6章計算78
簡單問題80
實例1簡單的線性搜索81
實例2二分搜索81
實例3排序82
實例4矩陣乘法84
指數級困難問題85
實例5所有的十位數85
實例6背包問題85
實例7參觀所有城市86
實例8合數分解87
計算困難但容易驗證的問題88
NP完全89
不可計算問題92
總結96

第7章存儲98
存儲系統99
存儲器的基本使用模型100
命名101
映射105
虛擬存儲105
共享107
能力108
認證111
層級結構中的定位112
為什麼局部性是基礎116
結論117

第8章並行119
並行計算的早期方向120
並行系統的模型123
協作的順序進程124
功能係統124
事件驅動的系統125
MapReduce系統125
協作的順序進程125
功能係統131
結論134

第9章排隊136
排隊論遇上計算機科學137
用模型計算和預測139
服務器、作業、網絡和規則140
瓶頸144
平衡方程146
ATM 147
電話交換機148
分時系統149
用模型來計算150
結論152

第10章設計154
什麼是設計156
軟件系統的準則158
需求158
正確性159
容錯性159
時效性160
適用性160
設計原理、模式和示意161
原理161
模式162
示意163
軟件系統的設計原理163
層級式聚合164
封裝165
級別166
虛擬機168
對象170
客戶端與服務器171
總結172

第11章網絡173
彈性網絡174
數據包交換175
互聯網絡協議178
傳輸控制協議179
客戶端與服務器180
域名系統181
網絡軟件的組織結構183
萬維網184
網絡科學187
致謝188

第12章後記189
沒有意識的機器189
智能機器189
架構和算法191
經驗思維192
一個嶄新的機器時代來臨192
我們的思維方式正在轉變193
設計的核心性193
各章概要195
註釋200
參考文獻213
索引227