計算機科學概論(第12版)

計算機科學概論(第12版)

《計算機科學概論(第12版)》是2019年10月人民郵電出版社出版的圖書,作者是[美]J·格倫·布魯克希爾、丹尼斯·布里羅。

基本介紹

  • 書名:計算機科學概論(第12版)
  • 作者:[美]J·格倫·布魯克希爾
    丹尼斯·布里羅
  • ISBN:9787115444271
  • 定價:69元
  • 出版社:人民郵電出版社
  • 出版時間:2019年10月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

《計算機科學概論》是計算機科學概論課程的經典教材,全書對計算機科學做了百科全書式的精彩闡述,充分展現了計算機科學的歷史背景、發展歷程和新的技術趨勢。《計算機科學概論》首先介紹的是信息編碼及計算機體系結構的基本原理,進而講述作業系統和組網及網際網路,接著探討算法、程式設計語言及軟體工程,然後討論凝再墊數據抽象和資料庫方面的問題,講述圖形學的一些主要套用以及人工智慧,以計算理論的介紹結束全書。《計算機科學概論》在內容編排上由具體到抽象逐步推進,很適合教學安排,每一個主題自然而然地引導出下一個主題。此外,書中還包含大量的圖、表和示例,有助於讀者對知識的了解與把握。
第 12版主要是將Python程式設計語言方面的介紹納入了重點章節,除了增加與Python相關的內容,幾乎每一章都能看到對前一版對應章節的修訂、更新以及修正。

圖書目錄

緒0論 緒論 1
0.1 算法的作用 1
0.2 計算機器的由來 3
0.3 學習大綱 6
0.4 計算機科學的首要主題 7
0.4.1 算法 8
0.4.2 抽象 9
0.4.3 創新 9
0.4.4 數據 10
0.4.5 程式設計 10
0.4.6 網際網路 10
0.4.7 影響 11
社會問題 11
課外閱讀 13
第 1章 數據存儲 14
1.1 位和位存儲 14
1.1.1 布爾運算 14
1.1.2 門和觸發器 15
1.1.3 十六進制記數法 18
1.2 主存儲器 19
1.2.1 存儲器結構 19
1.2.2 存儲器容量的度量 20
1.3 海量存儲器 21
1.3.1 磁系統 21
1.3.2 光系統 22
1.3.3 快閃記憶體驅動器 23
1.4 用位模式表示信息 24
1.4.1 文本的表示 24
1.4.2 數值的表示 26
1.4.3 圖像的表示 27
1.4.4 聲音的表示 27
*1.5 二進制系遙汗符統 29
1.5.1 二進制記數法 29
1.5.2 二進制加法棕設立重 30
1.5.3 二進制中的小數 31
*1.6 整數的存儲 32
1.6.1 二進制補碼記數法 33
1.6.2 余碼記數法 35
*1.7 小數的存儲 37
1.7.1 浮點記數法 37
1.7.2 截斷誤差 38
*1.8 數據與程式設計 40
1.8.1 Python入門 41
1.8.2 你好,Python 41
1.8.3 變數 42
1.8.4 運算符和表達式 43
1.8.5 貨幣轉換 44
1.8.6 調試 44
*1.9 數據壓縮 45
1.9.1 通用的數據壓縮技術 45
1.9.2 圖像壓縮 47
1.9.3 音頻和視頻壓縮 48
*1.10 通信差錯 49
1.10.1 奇偶校驗位 49
1.10.2 糾錯碼 50
複習題 52
社會問題 55
課外閱讀 56
第 2章 數據操控 57
2.1 轎欠計算機體系結構 57
2.1.1 CPU基礎知識 57
2.1.2 存儲程墊霸尋凶序概念 58
2.2 機器語言 59
2.2.1 指令系統 60
2.2.2 一種演示用的機器語言 61
2.3 程式執行 64
2.3.1 程式執行的一個例子 65
2.3.2 程式與數據 67
*2.4 算術/邏輯指令 69
2.4.1 邏輯運算 69
2.4.2 循環移位鍵辯講運算及移位運算 70
2.4.3 算術運算 71
*2.5 與其他設備通信 72
2.5.1 控制器的作用 72
2.5.2 直接存儲器存取 74
2.5.3 握手 74
2.5.4 流行的通信媒介 74
2.5.5 通信速率 75
*2.6 數據操控編程 76
2.6.1 邏輯運算和移位運算頁才全 76
2.6.2 控制結構 77
2.6.3 輸入和輸出 79
2.6.4 馬拉松訓練助手 80
*2.7 其他體系結構 82
2.7.1 流水線 82
2.7.2 多處理器機器 83
複習題 84
社會問題 89
課外閱讀 90
第3章 作業系統 91
3.1 作業系統的歷史 91
3.2 作業系統的體系結構 94
3.2.1 軟體概述 94
3.2.2 作業系統組件 96
3.2.3 系統啟動 98
3.3 協調機器的活動 100
3.3.1 進程的概念 100
3.3.2 進程管理 100
*3.4 處理進程間的競爭 102
3.4.1 信號量 102
3.4.2 死鎖 103
3.5 安全性 105
3.5.1 來自外部的攻擊 106
3.5.2 來自內部的攻擊 106
複習題 108
社會問題 110
課外閱讀 110
第4章 組網及網際網路 112
4.1 網路基礎 112
4.1.1 網路分類 112
4.1.2 協定 113
4.1.3 組合網路 115
4.1.4 進程間通信的方法 117
4.1.5 分散式系統 118
4.2 網際網路 118
4.2.1 網際網路體系結構 119
4.2.2 網際網路編址 120
4.2.3 網際網路套用 122
4.3 全球資訊網 126
4.3.1 全球資訊網實現 126
4.3.2 HTML 127
4.3.3 XML 129
4.3.4 客戶端和伺服器端的活動 130
*4.4 網際網路協定 132
4.4.1 網際網路軟體的分層方法 132
4.4.2 TCP/IP協定簇 134
4.5 安全性 136
4.5.1 入侵的形式 136
4.5.2 防護和對策 137
4.5.3 加密 138
4.5.4 網路安全的法律途徑 140
複習題 142
社會問題 143
課外閱讀 144
第5章 算法 146
5.1 算法的概念 146
5.1.1 非正式的回顧 146
5.1.2 算法的正式定義 147
5.1.3 算法的抽象本質 148
5.2 算法的表示 148
5.2.1 原語 149
5.2.2 偽代碼 151
5.3 算法的發現 154
5.3.1 問題求解的藝術 155
5.3.2 邁出第 一步 156
5.4 疊代結構 159
5.4.1 順序搜尋算法 159
5.4.2 循環控制 160
5.4.3 插入排序算法 164
5.5 遞歸結構 167
5.5.1 二分搜尋算法 167
5.5.2 遞歸控制 171
5.6 效率和正確性 174
5.6.1 算法效率 174
5.6.2 軟體驗證 177
複習題 180
社會問題 185
課外閱讀 185
第6章 程式設計語言 186
6.1 歷史回顧 186
6.1.1 早期程式設計語言 186
6.1.2 機器無關和超越機器無關 188
6.1.3 程式設計范型 189
6.2 傳統的程式設計概念 192
6.2.1 變數和數據類型 193
6.2.2 數據結構 195
6.2.3 常量和字面量 196
6.2.4 賦值語句 197
6.2.5 控制語句 198
6.2.6 注釋 201
6.3 過程單元 202
6.3.1 函式 202
6.3.2 參數 203
6.3.3 有返回值的函式 205
6.4 語言實現 207
6.4.1 翻譯過程 207
6.4.2 軟體開發包 212
6.5 面向對象程式設計 213
6.5.1 類和對象 213
6.5.2 構造器 216
6.5.3 附加特性 217
*6.6 程式設計並發活動 218
*6.7 說明性程式設計 220
6.7.1 邏輯推演 220
6.7.2 Prolog 222
複習題 224
社會問題 227
課外閱讀 228
第7章 軟體工程 229
7.1 軟體工程學科 229
7.2 軟體生命周期 231
7.2.1 周期是個整體 231
7.2.2 傳統的開發階段 232
7.4 模組化 236
7.4.1 模組式實現 236
7.4.2 耦合 238
7.4.3 內聚 239
7.4.4 信息隱藏 239
7.4.5 構件 240
7.5 行業工具 241
7.5.1 較老的工具 241
7.5.2 統一建模語言 242
7.5.3 設計模式 246
7.6 質量保證 247
7.6.1 質量保證的範圍 247
7.6.2 軟體測試 248
7.7 文檔 249
7.8 人機界面 250
7.9 軟體所有權和責任 252
複習題 254
社會問題 256
課外閱讀 257
第8章 數據抽象 258
8.1 基本數據結構 258
8.1.1 數組和聚合 258
8.1.2 列表、棧和佇列 259
8.1.3 樹 260
8.2 相關概念 261
8.2.1 抽象 261
8.2.2 靜態結構與動態結構 261
8.2.3 指針 262
8.3 數據結構的實現 263
8.3.1 存儲數組 263
8.3.2 存儲聚合 265
8.3.3 存儲列表 266
8.3.4 存儲棧和佇列 268
8.3.5 存儲二叉樹 270
8.3.6 操控數據結構 272
8.4 一個簡短的案例 273
8.5 定製的數據類型 277
8.5.1 用戶定義的數據類型 277
8.5.2 抽象數據類型 278
8.6 類和對象 280
*8.7 機器語言中的指針 282
複習題 284
社會問題 287
課外閱讀 288
第9章 資料庫系統 290
9.1 資料庫基礎 290
9.1.1 資料庫系統的重要性 290
9.1.2 模式的作用 291
9.1.3 資料庫管理系統 292
9.1.4 資料庫模型 293
9.2 關係模型 294
9.2.1 關係設計中的問題 294
9.2.2 關係運算 297
9.2.3 SQL 300
*9.4 維護資料庫的完整性 304
9.4.1 提交/回滾協定 304
9.4.2 鎖定 305
*9.5 傳統的檔案結構 307
9.5.1 順序檔案 307
9.5.2 索引檔案 309
9.5.3 散列檔案 310
9.6 數據挖掘 313
9.7 資料庫技術的社會影響 314
複習題 316
社會問題 319
課外閱讀 320
第 10章 計算機圖形學 321
10.1 計算機圖形學的範圍 321
10.2 3D圖形概述 322
10.3 建模 324
10.3.1 單個物體的建模 324
10.3.2 整個場景的建模 327
10.4 渲染 329
10.4.1 光-表面互動 329
10.4.2 裁剪、掃描轉換和隱藏面的
消除 331
10.4.3 著色 333
10.4.4 渲染-流水線硬體 334
*10.5 處理全局照明 335
10.5.1 光線跟蹤 336
10.5.2 輻射度 337
10.6 動畫 338
10.6.1 動畫基礎 338
10.6.2 動力學和運動學 339
10.6.3 動畫製作過程 340
複習題 341
社會問題 342
課外閱讀 343
第 11章 人工智慧 344
11.1 智慧型與機器 344
11.1.1 智慧型體 344
11.1.2 研究方法 346
11.1.3 圖靈測試 346
11.2 感知 347
11.2.1 理解圖像 347
11.2.2 語言處理 349
11.3 推理 352
11.3.1 產生式系統 352
11.3.2 搜尋樹 354
11.3.3 啟發式法 356
11.4 其他研究領域 360
11.4.1 知識的表達和處理 360
11.4.2 學習 361
11.4.3 遺傳算法 362
11.5 人工神經網路 363
11.5.1 基本特性 363
11.5.2 訓練人工神經網路 365
11.5.3 聯想記憶 367
11.6 機器人學 369
11.7 後果的思考 371
複習題 372
社會問題 376
課外閱讀 377
第 12章 計算理論 378
12.1 函式及其計算 378
12.2 圖靈機 380
12.2.1 圖靈機的原理 380
12.2.2 丘奇-圖靈論題 382
12.3 通用程式設計語言 383
12.3.1 Bare Bones語言 383
12.3.2 用Bare Bones語言編程 385
12.3.3 Bare Bones的通用性 385
12.4 一個不可計算的函式 387
12.4.1 停機問題 387
12.4.2 停機問題的不可解性 388
12.5 問題的複雜性 391
12.5.1 問題複雜性的度量 391
12.5.2 多項式問題與非多項式問題 394
12.5.3 NP問題 395
*12.6 公鑰密碼學 397
12.6.1 模表示法 398
12.6.2 RSA公鑰密碼學 399
複習題 400
社會問題 403
課外閱讀 404
附錄A ASCII碼 405
附錄B 用於處理二進制補碼表示的電路 406
附錄C 一種簡單的機器語言 408
附錄D 程式設計語言 410
附錄E 疊代結構與遞歸結構的等價性 412
索引 414
緒0論 緒論 1
0.1 算法的作用 1
0.2 計算機器的由來 3
0.3 學習大綱 6
0.4 計算機科學的首要主題 7
0.4.1 算法 8
0.4.2 抽象 9
0.4.3 創新 9
0.4.4 數據 10
0.4.5 程式設計 10
0.4.6 網際網路 10
0.4.7 影響 11
社會問題 11
課外閱讀 13
第 1章 數據存儲 14
1.1 位和位存儲 14
1.1.1 布爾運算 14
1.1.2 門和觸發器 15
1.1.3 十六進制記數法 18
1.2 主存儲器 19
1.2.1 存儲器結構 19
1.2.2 存儲器容量的度量 20
1.3 海量存儲器 21
1.3.1 磁系統 21
1.3.2 光系統 22
1.3.3 快閃記憶體驅動器 23
1.4 用位模式表示信息 24
1.4.1 文本的表示 24
1.4.2 數值的表示 26
1.4.3 圖像的表示 27
1.4.4 聲音的表示 27
*1.5 二進制系統 29
1.5.1 二進制記數法 29
1.5.2 二進制加法 30
1.5.3 二進制中的小數 31
*1.6 整數的存儲 32
1.6.1 二進制補碼記數法 33
1.6.2 余碼記數法 35
*1.7 小數的存儲 37
1.7.1 浮點記數法 37
1.7.2 截斷誤差 38
*1.8 數據與程式設計 40
1.8.1 Python入門 41
1.8.2 你好,Python 41
1.8.3 變數 42
1.8.4 運算符和表達式 43
1.8.5 貨幣轉換 44
1.8.6 調試 44
*1.9 數據壓縮 45
1.9.1 通用的數據壓縮技術 45
1.9.2 圖像壓縮 47
1.9.3 音頻和視頻壓縮 48
*1.10 通信差錯 49
1.10.1 奇偶校驗位 49
1.10.2 糾錯碼 50
複習題 52
社會問題 55
課外閱讀 56
第 2章 數據操控 57
2.1 計算機體系結構 57
2.1.1 CPU基礎知識 57
2.1.2 存儲程式概念 58
2.2 機器語言 59
2.2.1 指令系統 60
2.2.2 一種演示用的機器語言 61
2.3 程式執行 64
2.3.1 程式執行的一個例子 65
2.3.2 程式與數據 67
*2.4 算術/邏輯指令 69
2.4.1 邏輯運算 69
2.4.2 循環移位運算及移位運算 70
2.4.3 算術運算 71
*2.5 與其他設備通信 72
2.5.1 控制器的作用 72
2.5.2 直接存儲器存取 74
2.5.3 握手 74
2.5.4 流行的通信媒介 74
2.5.5 通信速率 75
*2.6 數據操控編程 76
2.6.1 邏輯運算和移位運算 76
2.6.2 控制結構 77
2.6.3 輸入和輸出 79
2.6.4 馬拉松訓練助手 80
*2.7 其他體系結構 82
2.7.1 流水線 82
2.7.2 多處理器機器 83
複習題 84
社會問題 89
課外閱讀 90
第3章 作業系統 91
3.1 作業系統的歷史 91
3.2 作業系統的體系結構 94
3.2.1 軟體概述 94
3.2.2 作業系統組件 96
3.2.3 系統啟動 98
3.3 協調機器的活動 100
3.3.1 進程的概念 100
3.3.2 進程管理 100
*3.4 處理進程間的競爭 102
3.4.1 信號量 102
3.4.2 死鎖 103
3.5 安全性 105
3.5.1 來自外部的攻擊 106
3.5.2 來自內部的攻擊 106
複習題 108
社會問題 110
課外閱讀 110
第4章 組網及網際網路 112
4.1 網路基礎 112
4.1.1 網路分類 112
4.1.2 協定 113
4.1.3 組合網路 115
4.1.4 進程間通信的方法 117
4.1.5 分散式系統 118
4.2 網際網路 118
4.2.1 網際網路體系結構 119
4.2.2 網際網路編址 120
4.2.3 網際網路套用 122
4.3 全球資訊網 126
4.3.1 全球資訊網實現 126
4.3.2 HTML 127
4.3.3 XML 129
4.3.4 客戶端和伺服器端的活動 130
*4.4 網際網路協定 132
4.4.1 網際網路軟體的分層方法 132
4.4.2 TCP/IP協定簇 134
4.5 安全性 136
4.5.1 入侵的形式 136
4.5.2 防護和對策 137
4.5.3 加密 138
4.5.4 網路安全的法律途徑 140
複習題 142
社會問題 143
課外閱讀 144
第5章 算法 146
5.1 算法的概念 146
5.1.1 非正式的回顧 146
5.1.2 算法的正式定義 147
5.1.3 算法的抽象本質 148
5.2 算法的表示 148
5.2.1 原語 149
5.2.2 偽代碼 151
5.3 算法的發現 154
5.3.1 問題求解的藝術 155
5.3.2 邁出第 一步 156
5.4 疊代結構 159
5.4.1 順序搜尋算法 159
5.4.2 循環控制 160
5.4.3 插入排序算法 164
5.5 遞歸結構 167
5.5.1 二分搜尋算法 167
5.5.2 遞歸控制 171
5.6 效率和正確性 174
5.6.1 算法效率 174
5.6.2 軟體驗證 177
複習題 180
社會問題 185
課外閱讀 185
第6章 程式設計語言 186
6.1 歷史回顧 186
6.1.1 早期程式設計語言 186
6.1.2 機器無關和超越機器無關 188
6.1.3 程式設計范型 189
6.2 傳統的程式設計概念 192
6.2.1 變數和數據類型 193
6.2.2 數據結構 195
6.2.3 常量和字面量 196
6.2.4 賦值語句 197
6.2.5 控制語句 198
6.2.6 注釋 201
6.3 過程單元 202
6.3.1 函式 202
6.3.2 參數 203
6.3.3 有返回值的函式 205
6.4 語言實現 207
6.4.1 翻譯過程 207
6.4.2 軟體開發包 212
6.5 面向對象程式設計 213
6.5.1 類和對象 213
6.5.2 構造器 216
6.5.3 附加特性 217
*6.6 程式設計並發活動 218
*6.7 說明性程式設計 220
6.7.1 邏輯推演 220
6.7.2 Prolog 222
複習題 224
社會問題 227
課外閱讀 228
第7章 軟體工程 229
7.1 軟體工程學科 229
7.2 軟體生命周期 231
7.2.1 周期是個整體 231
7.2.2 傳統的開發階段 232
7.4 模組化 236
7.4.1 模組式實現 236
7.4.2 耦合 238
7.4.3 內聚 239
7.4.4 信息隱藏 239
7.4.5 構件 240
7.5 行業工具 241
7.5.1 較老的工具 241
7.5.2 統一建模語言 242
7.5.3 設計模式 246
7.6 質量保證 247
7.6.1 質量保證的範圍 247
7.6.2 軟體測試 248
7.7 文檔 249
7.8 人機界面 250
7.9 軟體所有權和責任 252
複習題 254
社會問題 256
課外閱讀 257
第8章 數據抽象 258
8.1 基本數據結構 258
8.1.1 數組和聚合 258
8.1.2 列表、棧和佇列 259
8.1.3 樹 260
8.2 相關概念 261
8.2.1 抽象 261
8.2.2 靜態結構與動態結構 261
8.2.3 指針 262
8.3 數據結構的實現 263
8.3.1 存儲數組 263
8.3.2 存儲聚合 265
8.3.3 存儲列表 266
8.3.4 存儲棧和佇列 268
8.3.5 存儲二叉樹 270
8.3.6 操控數據結構 272
8.4 一個簡短的案例 273
8.5 定製的數據類型 277
8.5.1 用戶定義的數據類型 277
8.5.2 抽象數據類型 278
8.6 類和對象 280
*8.7 機器語言中的指針 282
複習題 284
社會問題 287
課外閱讀 288
第9章 資料庫系統 290
9.1 資料庫基礎 290
9.1.1 資料庫系統的重要性 290
9.1.2 模式的作用 291
9.1.3 資料庫管理系統 292
9.1.4 資料庫模型 293
9.2 關係模型 294
9.2.1 關係設計中的問題 294
9.2.2 關係運算 297
9.2.3 SQL 300
*9.4 維護資料庫的完整性 304
9.4.1 提交/回滾協定 304
9.4.2 鎖定 305
*9.5 傳統的檔案結構 307
9.5.1 順序檔案 307
9.5.2 索引檔案 309
9.5.3 散列檔案 310
9.6 數據挖掘 313
9.7 資料庫技術的社會影響 314
複習題 316
社會問題 319
課外閱讀 320
第 10章 計算機圖形學 321
10.1 計算機圖形學的範圍 321
10.2 3D圖形概述 322
10.3 建模 324
10.3.1 單個物體的建模 324
10.3.2 整個場景的建模 327
10.4 渲染 329
10.4.1 光-表面互動 329
10.4.2 裁剪、掃描轉換和隱藏面的
消除 331
10.4.3 著色 333
10.4.4 渲染-流水線硬體 334
*10.5 處理全局照明 335
10.5.1 光線跟蹤 336
10.5.2 輻射度 337
10.6 動畫 338
10.6.1 動畫基礎 338
10.6.2 動力學和運動學 339
10.6.3 動畫製作過程 340
複習題 341
社會問題 342
課外閱讀 343
第 11章 人工智慧 344
11.1 智慧型與機器 344
11.1.1 智慧型體 344
11.1.2 研究方法 346
11.1.3 圖靈測試 346
11.2 感知 347
11.2.1 理解圖像 347
11.2.2 語言處理 349
11.3 推理 352
11.3.1 產生式系統 352
11.3.2 搜尋樹 354
11.3.3 啟發式法 356
11.4 其他研究領域 360
11.4.1 知識的表達和處理 360
11.4.2 學習 361
11.4.3 遺傳算法 362
11.5 人工神經網路 363
11.5.1 基本特性 363
11.5.2 訓練人工神經網路 365
11.5.3 聯想記憶 367
11.6 機器人學 369
11.7 後果的思考 371
複習題 372
社會問題 376
課外閱讀 377
第 12章 計算理論 378
12.1 函式及其計算 378
12.2 圖靈機 380
12.2.1 圖靈機的原理 380
12.2.2 丘奇-圖靈論題 382
12.3 通用程式設計語言 383
12.3.1 Bare Bones語言 383
12.3.2 用Bare Bones語言編程 385
12.3.3 Bare Bones的通用性 385
12.4 一個不可計算的函式 387
12.4.1 停機問題 387
12.4.2 停機問題的不可解性 388
12.5 問題的複雜性 391
12.5.1 問題複雜性的度量 391
12.5.2 多項式問題與非多項式問題 394
12.5.3 NP問題 395
*12.6 公鑰密碼學 397
12.6.1 模表示法 398
12.6.2 RSA公鑰密碼學 399
複習題 400
社會問題 403
課外閱讀 404
附錄A ASCII碼 405
附錄B 用於處理二進制補碼表示的電路 406
附錄C 一種簡單的機器語言 408
附錄D 程式設計語言 410
附錄E 疊代結構與遞歸結構的等價性 412
索引 414
1.10.1 奇偶校驗位 49
1.10.2 糾錯碼 50
複習題 52
社會問題 55
課外閱讀 56
第 2章 數據操控 57
2.1 計算機體系結構 57
2.1.1 CPU基礎知識 57
2.1.2 存儲程式概念 58
2.2 機器語言 59
2.2.1 指令系統 60
2.2.2 一種演示用的機器語言 61
2.3 程式執行 64
2.3.1 程式執行的一個例子 65
2.3.2 程式與數據 67
*2.4 算術/邏輯指令 69
2.4.1 邏輯運算 69
2.4.2 循環移位運算及移位運算 70
2.4.3 算術運算 71
*2.5 與其他設備通信 72
2.5.1 控制器的作用 72
2.5.2 直接存儲器存取 74
2.5.3 握手 74
2.5.4 流行的通信媒介 74
2.5.5 通信速率 75
*2.6 數據操控編程 76
2.6.1 邏輯運算和移位運算 76
2.6.2 控制結構 77
2.6.3 輸入和輸出 79
2.6.4 馬拉松訓練助手 80
*2.7 其他體系結構 82
2.7.1 流水線 82
2.7.2 多處理器機器 83
複習題 84
社會問題 89
課外閱讀 90
第3章 作業系統 91
3.1 作業系統的歷史 91
3.2 作業系統的體系結構 94
3.2.1 軟體概述 94
3.2.2 作業系統組件 96
3.2.3 系統啟動 98
3.3 協調機器的活動 100
3.3.1 進程的概念 100
3.3.2 進程管理 100
*3.4 處理進程間的競爭 102
3.4.1 信號量 102
3.4.2 死鎖 103
3.5 安全性 105
3.5.1 來自外部的攻擊 106
3.5.2 來自內部的攻擊 106
複習題 108
社會問題 110
課外閱讀 110
第4章 組網及網際網路 112
4.1 網路基礎 112
4.1.1 網路分類 112
4.1.2 協定 113
4.1.3 組合網路 115
4.1.4 進程間通信的方法 117
4.1.5 分散式系統 118
4.2 網際網路 118
4.2.1 網際網路體系結構 119
4.2.2 網際網路編址 120
4.2.3 網際網路套用 122
4.3 全球資訊網 126
4.3.1 全球資訊網實現 126
4.3.2 HTML 127
4.3.3 XML 129
4.3.4 客戶端和伺服器端的活動 130
*4.4 網際網路協定 132
4.4.1 網際網路軟體的分層方法 132
4.4.2 TCP/IP協定簇 134
4.5 安全性 136
4.5.1 入侵的形式 136
4.5.2 防護和對策 137
4.5.3 加密 138
4.5.4 網路安全的法律途徑 140
複習題 142
社會問題 143
課外閱讀 144
第5章 算法 146
5.1 算法的概念 146
5.1.1 非正式的回顧 146
5.1.2 算法的正式定義 147
5.1.3 算法的抽象本質 148
5.2 算法的表示 148
5.2.1 原語 149
5.2.2 偽代碼 151
5.3 算法的發現 154
5.3.1 問題求解的藝術 155
5.3.2 邁出第 一步 156
5.4 疊代結構 159
5.4.1 順序搜尋算法 159
5.4.2 循環控制 160
5.4.3 插入排序算法 164
5.5 遞歸結構 167
5.5.1 二分搜尋算法 167
5.5.2 遞歸控制 171
5.6 效率和正確性 174
5.6.1 算法效率 174
5.6.2 軟體驗證 177
複習題 180
社會問題 185
課外閱讀 185
第6章 程式設計語言 186
6.1 歷史回顧 186
6.1.1 早期程式設計語言 186
6.1.2 機器無關和超越機器無關 188
6.1.3 程式設計范型 189
6.2 傳統的程式設計概念 192
6.2.1 變數和數據類型 193
6.2.2 數據結構 195
6.2.3 常量和字面量 196
6.2.4 賦值語句 197
6.2.5 控制語句 198
6.2.6 注釋 201
6.3 過程單元 202
6.3.1 函式 202
6.3.2 參數 203
6.3.3 有返回值的函式 205
6.4 語言實現 207
6.4.1 翻譯過程 207
6.4.2 軟體開發包 212
6.5 面向對象程式設計 213
6.5.1 類和對象 213
6.5.2 構造器 216
6.5.3 附加特性 217
*6.6 程式設計並發活動 218
*6.7 說明性程式設計 220
6.7.1 邏輯推演 220
6.7.2 Prolog 222
複習題 224
社會問題 227
課外閱讀 228
第7章 軟體工程 229
7.1 軟體工程學科 229
7.2 軟體生命周期 231
7.2.1 周期是個整體 231
7.2.2 傳統的開發階段 232
7.4 模組化 236
7.4.1 模組式實現 236
7.4.2 耦合 238
7.4.3 內聚 239
7.4.4 信息隱藏 239
7.4.5 構件 240
7.5 行業工具 241
7.5.1 較老的工具 241
7.5.2 統一建模語言 242
7.5.3 設計模式 246
7.6 質量保證 247
7.6.1 質量保證的範圍 247
7.6.2 軟體測試 248
7.7 文檔 249
7.8 人機界面 250
7.9 軟體所有權和責任 252
複習題 254
社會問題 256
課外閱讀 257
第8章 數據抽象 258
8.1 基本數據結構 258
8.1.1 數組和聚合 258
8.1.2 列表、棧和佇列 259
8.1.3 樹 260
8.2 相關概念 261
8.2.1 抽象 261
8.2.2 靜態結構與動態結構 261
8.2.3 指針 262
8.3 數據結構的實現 263
8.3.1 存儲數組 263
8.3.2 存儲聚合 265
8.3.3 存儲列表 266
8.3.4 存儲棧和佇列 268
8.3.5 存儲二叉樹 270
8.3.6 操控數據結構 272
8.4 一個簡短的案例 273
8.5 定製的數據類型 277
8.5.1 用戶定義的數據類型 277
8.5.2 抽象數據類型 278
8.6 類和對象 280
*8.7 機器語言中的指針 282
複習題 284
社會問題 287
課外閱讀 288
第9章 資料庫系統 290
9.1 資料庫基礎 290
9.1.1 資料庫系統的重要性 290
9.1.2 模式的作用 291
9.1.3 資料庫管理系統 292
9.1.4 資料庫模型 293
9.2 關係模型 294
9.2.1 關係設計中的問題 294
9.2.2 關係運算 297
9.2.3 SQL 300
*9.4 維護資料庫的完整性 304
9.4.1 提交/回滾協定 304
9.4.2 鎖定 305
*9.5 傳統的檔案結構 307
9.5.1 順序檔案 307
9.5.2 索引檔案 309
9.5.3 散列檔案 310
9.6 數據挖掘 313
9.7 資料庫技術的社會影響 314
複習題 316
社會問題 319
課外閱讀 320
第 10章 計算機圖形學 321
10.1 計算機圖形學的範圍 321
10.2 3D圖形概述 322
10.3 建模 324
10.3.1 單個物體的建模 324
10.3.2 整個場景的建模 327
10.4 渲染 329
10.4.1 光-表面互動 329
10.4.2 裁剪、掃描轉換和隱藏面的
消除 331
10.4.3 著色 333
10.4.4 渲染-流水線硬體 334
*10.5 處理全局照明 335
10.5.1 光線跟蹤 336
10.5.2 輻射度 337
10.6 動畫 338
10.6.1 動畫基礎 338
10.6.2 動力學和運動學 339
10.6.3 動畫製作過程 340
複習題 341
社會問題 342
課外閱讀 343
第 11章 人工智慧 344
11.1 智慧型與機器 344
11.1.1 智慧型體 344
11.1.2 研究方法 346
11.1.3 圖靈測試 346
11.2 感知 347
11.2.1 理解圖像 347
11.2.2 語言處理 349
11.3 推理 352
11.3.1 產生式系統 352
11.3.2 搜尋樹 354
11.3.3 啟發式法 356
11.4 其他研究領域 360
11.4.1 知識的表達和處理 360
11.4.2 學習 361
11.4.3 遺傳算法 362
11.5 人工神經網路 363
11.5.1 基本特性 363
11.5.2 訓練人工神經網路 365
11.5.3 聯想記憶 367
11.6 機器人學 369
11.7 後果的思考 371
複習題 372
社會問題 376
課外閱讀 377
第 12章 計算理論 378
12.1 函式及其計算 378
12.2 圖靈機 380
12.2.1 圖靈機的原理 380
12.2.2 丘奇-圖靈論題 382
12.3 通用程式設計語言 383
12.3.1 Bare Bones語言 383
12.3.2 用Bare Bones語言編程 385
12.3.3 Bare Bones的通用性 385
12.4 一個不可計算的函式 387
12.4.1 停機問題 387
12.4.2 停機問題的不可解性 388
12.5 問題的複雜性 391
12.5.1 問題複雜性的度量 391
12.5.2 多項式問題與非多項式問題 394
12.5.3 NP問題 395
*12.6 公鑰密碼學 397
12.6.1 模表示法 398
12.6.2 RSA公鑰密碼學 399
複習題 400
社會問題 403
課外閱讀 404
附錄A ASCII碼 405
附錄B 用於處理二進制補碼表示的電路 406
附錄C 一種簡單的機器語言 408
附錄D 程式設計語言 410
附錄E 疊代結構與遞歸結構的等價性 412
索引 414
緒0論 緒論 1
0.1 算法的作用 1
0.2 計算機器的由來 3
0.3 學習大綱 6
0.4 計算機科學的首要主題 7
0.4.1 算法 8
0.4.2 抽象 9
0.4.3 創新 9
0.4.4 數據 10
0.4.5 程式設計 10
0.4.6 網際網路 10
0.4.7 影響 11
社會問題 11
課外閱讀 13
第 1章 數據存儲 14
1.1 位和位存儲 14
1.1.1 布爾運算 14
1.1.2 門和觸發器 15
1.1.3 十六進制記數法 18
1.2 主存儲器 19
1.2.1 存儲器結構 19
1.2.2 存儲器容量的度量 20
1.3 海量存儲器 21
1.3.1 磁系統 21
1.3.2 光系統 22
1.3.3 快閃記憶體驅動器 23
1.4 用位模式表示信息 24
1.4.1 文本的表示 24
1.4.2 數值的表示 26
1.4.3 圖像的表示 27
1.4.4 聲音的表示 27
*1.5 二進制系統 29
1.5.1 二進制記數法 29
1.5.2 二進制加法 30
1.5.3 二進制中的小數 31
*1.6 整數的存儲 32
1.6.1 二進制補碼記數法 33
1.6.2 余碼記數法 35
*1.7 小數的存儲 37
1.7.1 浮點記數法 37
1.7.2 截斷誤差 38
*1.8 數據與程式設計 40
1.8.1 Python入門 41
1.8.2 你好,Python 41
1.8.3 變數 42
1.8.4 運算符和表達式 43
1.8.5 貨幣轉換 44
1.8.6 調試 44
*1.9 數據壓縮 45
1.9.1 通用的數據壓縮技術 45
1.9.2 圖像壓縮 47
1.9.3 音頻和視頻壓縮 48
*1.10 通信差錯 49
1.10.1 奇偶校驗位 49
1.10.2 糾錯碼 50
複習題 52
社會問題 55
課外閱讀 56
第 2章 數據操控 57
2.1 計算機體系結構 57
2.1.1 CPU基礎知識 57
2.1.2 存儲程式概念 58
2.2 機器語言 59
2.2.1 指令系統 60
2.2.2 一種演示用的機器語言 61
2.3 程式執行 64
2.3.1 程式執行的一個例子 65
2.3.2 程式與數據 67
*2.4 算術/邏輯指令 69
2.4.1 邏輯運算 69
2.4.2 循環移位運算及移位運算 70
2.4.3 算術運算 71
*2.5 與其他設備通信 72
2.5.1 控制器的作用 72
2.5.2 直接存儲器存取 74
2.5.3 握手 74
2.5.4 流行的通信媒介 74
2.5.5 通信速率 75
*2.6 數據操控編程 76
2.6.1 邏輯運算和移位運算 76
2.6.2 控制結構 77
2.6.3 輸入和輸出 79
2.6.4 馬拉松訓練助手 80
*2.7 其他體系結構 82
2.7.1 流水線 82
2.7.2 多處理器機器 83
複習題 84
社會問題 89
課外閱讀 90
第3章 作業系統 91
3.1 作業系統的歷史 91
3.2 作業系統的體系結構 94
3.2.1 軟體概述 94
3.2.2 作業系統組件 96
3.2.3 系統啟動 98
3.3 協調機器的活動 100
3.3.1 進程的概念 100
3.3.2 進程管理 100
*3.4 處理進程間的競爭 102
3.4.1 信號量 102
3.4.2 死鎖 103
3.5 安全性 105
3.5.1 來自外部的攻擊 106
3.5.2 來自內部的攻擊 106
複習題 108
社會問題 110
課外閱讀 110
第4章 組網及網際網路 112
4.1 網路基礎 112
4.1.1 網路分類 112
4.1.2 協定 113
4.1.3 組合網路 115
4.1.4 進程間通信的方法 117
4.1.5 分散式系統 118
4.2 網際網路 118
4.2.1 網際網路體系結構 119
4.2.2 網際網路編址 120
4.2.3 網際網路套用 122
4.3 全球資訊網 126
4.3.1 全球資訊網實現 126
4.3.2 HTML 127
4.3.3 XML 129
4.3.4 客戶端和伺服器端的活動 130
*4.4 網際網路協定 132
4.4.1 網際網路軟體的分層方法 132
4.4.2 TCP/IP協定簇 134
4.5 安全性 136
4.5.1 入侵的形式 136
4.5.2 防護和對策 137
4.5.3 加密 138
4.5.4 網路安全的法律途徑 140
複習題 142
社會問題 143
課外閱讀 144
第5章 算法 146
5.1 算法的概念 146
5.1.1 非正式的回顧 146
5.1.2 算法的正式定義 147
5.1.3 算法的抽象本質 148
5.2 算法的表示 148
5.2.1 原語 149
5.2.2 偽代碼 151
5.3 算法的發現 154
5.3.1 問題求解的藝術 155
5.3.2 邁出第 一步 156
5.4 疊代結構 159
5.4.1 順序搜尋算法 159
5.4.2 循環控制 160
5.4.3 插入排序算法 164
5.5 遞歸結構 167
5.5.1 二分搜尋算法 167
5.5.2 遞歸控制 171
5.6 效率和正確性 174
5.6.1 算法效率 174
5.6.2 軟體驗證 177
複習題 180
社會問題 185
課外閱讀 185
第6章 程式設計語言 186
6.1 歷史回顧 186
6.1.1 早期程式設計語言 186
6.1.2 機器無關和超越機器無關 188
6.1.3 程式設計范型 189
6.2 傳統的程式設計概念 192
6.2.1 變數和數據類型 193
6.2.2 數據結構 195
6.2.3 常量和字面量 196
6.2.4 賦值語句 197
6.2.5 控制語句 198
6.2.6 注釋 201
6.3 過程單元 202
6.3.1 函式 202
6.3.2 參數 203
6.3.3 有返回值的函式 205
6.4 語言實現 207
6.4.1 翻譯過程 207
6.4.2 軟體開發包 212
6.5 面向對象程式設計 213
6.5.1 類和對象 213
6.5.2 構造器 216
6.5.3 附加特性 217
*6.6 程式設計並發活動 218
*6.7 說明性程式設計 220
6.7.1 邏輯推演 220
6.7.2 Prolog 222
複習題 224
社會問題 227
課外閱讀 228
第7章 軟體工程 229
7.1 軟體工程學科 229
7.2 軟體生命周期 231
7.2.1 周期是個整體 231
7.2.2 傳統的開發階段 232
7.4 模組化 236
7.4.1 模組式實現 236
7.4.2 耦合 238
7.4.3 內聚 239
7.4.4 信息隱藏 239
7.4.5 構件 240
7.5 行業工具 241
7.5.1 較老的工具 241
7.5.2 統一建模語言 242
7.5.3 設計模式 246
7.6 質量保證 247
7.6.1 質量保證的範圍 247
7.6.2 軟體測試 248
7.7 文檔 249
7.8 人機界面 250
7.9 軟體所有權和責任 252
複習題 254
社會問題 256
課外閱讀 257
第8章 數據抽象 258
8.1 基本數據結構 258
8.1.1 數組和聚合 258
8.1.2 列表、棧和佇列 259
8.1.3 樹 260
8.2 相關概念 261
8.2.1 抽象 261
8.2.2 靜態結構與動態結構 261
8.2.3 指針 262
8.3 數據結構的實現 263
8.3.1 存儲數組 263
8.3.2 存儲聚合 265
8.3.3 存儲列表 266
8.3.4 存儲棧和佇列 268
8.3.5 存儲二叉樹 270
8.3.6 操控數據結構 272
8.4 一個簡短的案例 273
8.5 定製的數據類型 277
8.5.1 用戶定義的數據類型 277
8.5.2 抽象數據類型 278
8.6 類和對象 280
*8.7 機器語言中的指針 282
複習題 284
社會問題 287
課外閱讀 288
第9章 資料庫系統 290
9.1 資料庫基礎 290
9.1.1 資料庫系統的重要性 290
9.1.2 模式的作用 291
9.1.3 資料庫管理系統 292
9.1.4 資料庫模型 293
9.2 關係模型 294
9.2.1 關係設計中的問題 294
9.2.2 關係運算 297
9.2.3 SQL 300
*9.4 維護資料庫的完整性 304
9.4.1 提交/回滾協定 304
9.4.2 鎖定 305
*9.5 傳統的檔案結構 307
9.5.1 順序檔案 307
9.5.2 索引檔案 309
9.5.3 散列檔案 310
9.6 數據挖掘 313
9.7 資料庫技術的社會影響 314
複習題 316
社會問題 319
課外閱讀 320
第 10章 計算機圖形學 321
10.1 計算機圖形學的範圍 321
10.2 3D圖形概述 322
10.3 建模 324
10.3.1 單個物體的建模 324
10.3.2 整個場景的建模 327
10.4 渲染 329
10.4.1 光-表面互動 329
10.4.2 裁剪、掃描轉換和隱藏面的
消除 331
10.4.3 著色 333
10.4.4 渲染-流水線硬體 334
*10.5 處理全局照明 335
10.5.1 光線跟蹤 336
10.5.2 輻射度 337
10.6 動畫 338
10.6.1 動畫基礎 338
10.6.2 動力學和運動學 339
10.6.3 動畫製作過程 340
複習題 341
社會問題 342
課外閱讀 343
第 11章 人工智慧 344
11.1 智慧型與機器 344
11.1.1 智慧型體 344
11.1.2 研究方法 346
11.1.3 圖靈測試 346
11.2 感知 347
11.2.1 理解圖像 347
11.2.2 語言處理 349
11.3 推理 352
11.3.1 產生式系統 352
11.3.2 搜尋樹 354
11.3.3 啟發式法 356
11.4 其他研究領域 360
11.4.1 知識的表達和處理 360
11.4.2 學習 361
11.4.3 遺傳算法 362
11.5 人工神經網路 363
11.5.1 基本特性 363
11.5.2 訓練人工神經網路 365
11.5.3 聯想記憶 367
11.6 機器人學 369
11.7 後果的思考 371
複習題 372
社會問題 376
課外閱讀 377
第 12章 計算理論 378
12.1 函式及其計算 378
12.2 圖靈機 380
12.2.1 圖靈機的原理 380
12.2.2 丘奇-圖靈論題 382
12.3 通用程式設計語言 383
12.3.1 Bare Bones語言 383
12.3.2 用Bare Bones語言編程 385
12.3.3 Bare Bones的通用性 385
12.4 一個不可計算的函式 387
12.4.1 停機問題 387
12.4.2 停機問題的不可解性 388
12.5 問題的複雜性 391
12.5.1 問題複雜性的度量 391
12.5.2 多項式問題與非多項式問題 394
12.5.3 NP問題 395
*12.6 公鑰密碼學 397
12.6.1 模表示法 398
12.6.2 RSA公鑰密碼學 399
複習題 400
社會問題 403
課外閱讀 404
附錄A ASCII碼 405
附錄B 用於處理二進制補碼表示的電路 406
附錄C 一種簡單的機器語言 408
附錄D 程式設計語言 410
附錄E 疊代結構與遞歸結構的等價性 412
索引 414

相關詞條

熱門詞條

聯絡我們