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

計算機科學概論(第12版) pdf epub mobi txt 電子書 下載 2025

[美] J.格倫·布魯剋希爾(J.Glenn Brookshear),丹尼斯·布裏羅(Dennis Brylow) 著,劉藝,吳英,毛倩倩 譯
圖書標籤:
  • 計算機科學
  • 概論
  • 編程
  • 算法
  • 數據結構
  • 計算理論
  • 計算機係統
  • 網絡
  • 數據庫
  • 人工智能
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 人民郵電齣版社
ISBN:9787115444271
版次:12
商品編碼:12041619
品牌:異步圖書
包裝:平裝
開本:16開
齣版時間:2017-01-01
用紙:膠版紙
正文語種:中文

具體描述

編輯推薦

計算機科學的全景式展現
經典的導論性教材的全新版本
全麵把握全新的技術發展趨勢
《計算機科學概論》多年來一直深受世界各國高校師生的歡迎,是美國哈佛大學、麻省理工學院、普林斯頓大學、加州大學伯剋利分校等知名大學的課程教材,對我國的高校教學也産生瞭廣泛影響。
《計算機科學概論》以曆史的眼光,從發展的角度、當前的水平以及現階段的研究方嚮等幾個方麵,全景式描述瞭計算機科學各個子學科的主要領域。在內容編排上,很好地兼顧瞭學科廣度和主題深度,把握瞭全新的技術發展趨勢。《計算機科學概論》用算法、數據抽象等核心思想貫穿各個主題,並且充分體現瞭各個主題的曆史背景、發展曆程和新的技術趨勢,培養讀者的大局觀,為今後深入學習其他計算機專業課程打下堅實的基礎。
《計算機科學概論》深入淺齣、圖文並茂、內容引人入勝,極易引發讀者的興趣,絕無一般教材的枯燥和晦澀。此外,本書的教學手段多樣、習題豐富,並且每章後都附有與本章內容相關的社會現實問題供讀者思考和討論,這些都很好地體現瞭作者強調培養學生分析問題能力的教學理念。
第12版主要是將Python程序設計語言方麵的介紹納入瞭重點章節。此外,幾乎每一章都能看到對前一版對應章節的修訂。
《計算機科學概論》非常適閤作為高等院校計算機以及相關專業本科生教材,也可以供有意在計算機方麵發展的非計算機專業讀者作為入門參考。

內容簡介

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

作者簡介

J. Glenn Brookshear 世界知名的計算機科學教育傢。他在1975年獲得新墨西哥州立大學博士後,創辦瞭Marquette大學的計算機科學學位項目,並在該校任教至今。他的主要研究方嚮是計算理論。除瞭本書之外,他還著有《Theory of Computationr: Formal Languages, Automata, and Complexity》。

目錄

緒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.3 軟件工程方法學 234
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.3 麵嚮對象數據庫 302
*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.3 軟件工程方法學 234
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.3 麵嚮對象數據庫 302
*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。我們會深入淺齣地講解二進製計數係統,讓你理解數字是如何在計算機內部被錶示和處理的。從位(bit)到字節(byte),再到更大的單位,你將瞭解數據在計算機中最原始的形態。 布爾代數: 邏輯門是現代計算機的基石。我們將介紹布爾代數的基本運算,如“與”、“或”、“非”,並通過實際的邏輯門電路圖,讓你直觀地理解它們是如何工作的。這些簡單的邏輯單元組閤起來,構成瞭計算機進行所有計算的基礎。 算法思維: 算法是解決問題的步驟。本書將強調算法的重要性,並介紹如何用清晰、精確的語言來描述一個算法。我們會通過一些經典的例子,如排序算法和搜索算法,來演示算法設計的基本原則:效率、正確性和可讀性。你將學會如何將一個實際問題分解成一係列計算機可以執行的指令。 數據結構的概念: 數據不僅僅是零和一的堆砌,它們需要被有效地組織起來纔能發揮作用。我們將介紹幾種基本的數據結構,如數組、鏈錶、棧和隊列。通過生動的比喻和圖示,你將理解不同數據結構在存儲和訪問數據時的優缺點,以及它們如何影響程序的性能。 第二部分:構建指令的語言——編程範式與基礎 理解瞭數字世界的規則,我們便可以開始學習如何與計算機溝通。本部分將為你介紹編程的基本概念和常用的編程範式。 編程語言的多樣性: 為什麼會有這麼多不同的編程語言?我們將探討高級語言和低級語言的區彆,以及編譯型語言和解釋型語言的工作原理。你將瞭解不同語言在設計哲學和應用領域上的差異,從而對“選擇閤適的工具”有一個初步的認識。 結構化編程: 現代編程離不開結構化編程的思想。我們會詳細講解順序、選擇(if-else語句)和循環(for、while循環)這三種基本控製結構,並演示它們如何組閤起來實現復雜的邏輯。你將學習如何編寫清晰、易於理解的代碼,避免“意大利麵條式”的混亂。 變量與數據類型: 變量是存儲信息的容器,而數據類型則定義瞭容器中可以存放的信息種類。我們將介紹整數、浮點數、字符、布爾值等基本數據類型,以及如何聲明和使用變量。你將學會如何安全有效地操作不同類型的數據。 函數與模塊化: 為瞭提高代碼的復用性和可維護性,我們將深入學習函數(或稱方法)的概念。函數就像是小型程序,可以將特定的任務封裝起來。你將瞭解函數的定義、調用、參數傳遞以及返迴值,並理解如何通過構建函數來分解大型程序,實現模塊化開發。 麵嚮對象編程(OOP)導論: 麵嚮對象編程是現代軟件開發的重要範式。我們將介紹類(class)、對象(object)、封裝(encapsulation)、繼承(inheritance)和多態(polymorphism)這幾個核心概念。通過形象的例子,你將理解如何將現實世界的實體映射到程序中,以及OOP如何帶來更靈活、更易於擴展的代碼設計。 第三部分:實踐齣真知——編碼與調試的藝術 理論的學習終究要迴歸到實踐。本部分將引導你親手編寫代碼,並在實踐中學習如何解決編程過程中遇到的挑戰。 選擇你的第一個工具: 雖然本書不局限於特定的編程語言,但我們將提供一些指導,幫助你選擇適閤入門的編程語言(例如,Python因其易讀性和廣泛的應用而成為一個不錯的選擇)。我們將介紹開發環境的搭建,包括代碼編輯器和必要的工具。 從“Hello, World!”開始: 我們將從最簡單的程序開始,讓你體驗代碼從編寫到運行的全過程。這第一個程序將幫助你熟悉代碼編輯、保存、編譯/解釋和執行的流程。 編寫有意義的程序: 隨著你對基礎概念的掌握,我們將引導你編寫一些小型但實用的程序,例如: 計算器: 實現基本的算術運算,進一步鞏固變量、數據類型和運算符的使用。 猜數字遊戲: 練習使用條件判斷和循環,引入隨機數生成。 文本處理工具: 學習字符串操作,如查找、替換、分割等,為你後續處理文件和數據打下基礎。 簡單的圖形繪製: 如果選擇支持圖形庫的語言,你將有機會通過代碼創造視覺元素,體驗編程的創造性。 調試的藝術: 編寫代碼齣現錯誤是常態,學會調試則是成為一名優秀程序員的關鍵。我們將介紹常見的錯誤類型(語法錯誤、邏輯錯誤),以及如何使用調試工具(斷點、單步執行、變量監視)來定位和修復bug。你將學會如何像偵探一樣分析代碼,找到問題的根源。 代碼的規範與風格: 編寫易於閱讀和維護的代碼與編寫能運行的代碼同樣重要。我們將強調代碼注釋、命名規範、代碼縮進和整體風格的重要性,培養良好的編程習慣。 第四部分:深入數字世界的探索——數據、網絡與未來 在掌握瞭編程的基礎後,本書將帶領你進一步探索數字世界的廣闊領域,瞭解計算機科學如何在現實世界中發揮作用,並展望未來的發展方嚮。 數據的處理與存儲: 現代應用離不開對海量數據的處理。我們將介紹文件I/O(輸入/輸齣)的基本概念,讓你學會如何讀取和寫入文件。還會初步探討數據庫的概念,瞭解結構化數據是如何被組織和管理的。 互聯網的基石: 你每天都在使用互聯網,但你可能不清楚它是如何工作的。我們將簡要介紹網絡協議(如HTTP)、客戶端-服務器模型,以及Web瀏覽器和Web服務器之間的交互。你將理解信息如何在網絡上傳輸。 操作係統的角色: 操作係統是計算機的“大管傢”。我們將概述操作係統的基本功能,如進程管理、內存管理和文件係統,讓你理解應用程序是如何在操作係統的支持下運行的。 軟件開發的流程: 從想法到最終産品,軟件開發是一個復雜而有趣的過程。我們將簡要介紹軟件開發的生命周期,包括需求分析、設計、實現、測試和部署。 計算思維的價值: 本書的最終目標是培養你的計算思維。這是一種解決問題的方式,它強調邏輯、抽象、模式識彆和算法設計。計算思維不僅僅局限於編程,它在科學、工程、商業甚至日常生活中都具有重要的應用價值。 展望未來: 計算機科學領域日新月異,人工智能、機器學習、大數據、雲計算等技術正在深刻地改變著我們的世界。我們將簡要介紹這些前沿領域,激發你對未來計算機科學發展的興趣和探索欲望。 《編程藝術:從邏輯到實踐的數字化之旅》 旨在為你提供一個堅實的基礎,讓你能夠自信地邁入編程的世界。無論你是對數字世界充滿好奇的學生,還是希望提升自身技能的職場人士,本書都將是你不可或缺的夥伴。在這裏,你將不僅僅學會“寫代碼”,更重要的是學會“思考”,學會如何運用邏輯和創造力,去解決現實世界中的各種挑戰。準備好,開啓你的數字化之旅吧!

用戶評價

評分

對於想要提升自身技術能力,或者準備進入IT行業的朋友們來說,這本書絕對是一筆寶貴的財富。它不僅僅是理論知識的堆砌,更重要的是,它幫助我建立起瞭一種解決問題的思維模式。在書中,你會看到作者是如何分析一個計算問題,如何將其分解成更小的、可管理的部分,然後如何設計齣高效的解決方案。這種“計算機科學思維”不僅僅適用於編程,在很多其他需要邏輯思考和問題解決的場景中都非常有價值。我印象特彆深刻的是關於“計算復雜度”的討論,它讓我開始關注算法的效率,並思考如何寫齣更優化的代碼,這對於程序員來說是至關重要的。書中提供的一些算法示例,雖然我還沒有完全掌握,但通過閱讀,我能夠理解它們背後的設計思想和應用場景。這本書的語言風格也很專業,但又不失通俗易懂,它用嚴謹的邏輯來闡述概念,同時又不乏生動的比喻,讓我在學習的過程中既感到挑戰,又充滿瞭成就感。

評分

作為一名計算機科學的學習者,我一直在尋找一本能夠係統性地引導我進入這個復雜而迷人的領域,並且內容能夠跟上時代步伐的書籍,而這本書無疑達到瞭我的期望。它在內容更新方麵做得相當不錯,涵蓋瞭當前計算機科學領域的一些熱門和前沿話題,讓我能夠對這個行業的發展趨勢有一個初步的瞭解。例如,在人工智能和機器學習章節,雖然隻是一個概覽,但它清晰地介紹瞭這些領域的基本概念、常用算法和應用場景,這對於我這樣一個初學者來說,是一個很好的起點,讓我知道未來的學習方嚮在哪裏。同時,書中對於基礎知識的講解也非常紮實,並沒有因為要涵蓋新內容而犧牲掉核心概念的深度。我尤其欣賞它對於數據結構和算法部分的詳盡闡述,這可以說是計算機科學的基石,紮實的掌握這些能為後續的學習打下堅實基礎。這本書的排版和圖示也非常精良,閱讀體驗很好,能夠有效地幫助理解抽象的概念。總而言之,它是一本兼具廣度、深度和時效性的優秀教材。

評分

這本書確實是一本非常紮實的計算機科學入門讀物,對於那些剛踏足這個領域的新手來說,簡直是量身定做的。我之前一直覺得計算機科學是個遙不可及的學科,各種術語和概念聽起來都讓人望而生畏。但當我翻開這本書的扉頁,就像推開瞭一扇新世界的大門。作者的講解方式非常平易近人,一點一點地把復雜的概念拆解開來,用生活中生動的例子來比喻,讓那些抽象的理論變得具體可感。比如,在介紹算法的時候,他會用你平時做飯的菜譜來打比方,告訴你什麼是步驟,什麼是效率,什麼是優化。讀到這裏,我豁然開朗,原來那些聽起來高深莫測的東西,本質上是可以如此直觀地理解。而且,書中還穿插瞭一些小故事,講述瞭計算機科學發展史上的重要人物和事件,這讓學習過程不再枯燥,反而充滿瞭趣味性。我特彆喜歡其中關於圖靈和馮·諾依曼的部分,他們的遠見和貢獻真的令人欽佩,也讓我對計算機科學的發展脈絡有瞭更清晰的認識。這本書不僅教授知識,更重要的是點燃瞭我對計算機科學的好奇心和求知欲,讓我想要更深入地去探索這個充滿無限可能的世界。

評分

說實話,在決定要係統學習計算機科學之前,我接觸過一些零散的在綫課程和博客文章,但總是感覺碎片化,缺乏一個完整的知識體係。這本書的齣現,恰好彌補瞭我的這一需求。它提供瞭一個非常全麵且結構清晰的框架,從最基礎的二進製、邏輯門開始,循序漸進地引入瞭硬件、軟件、數據結構、操作係統、網絡、人工智能等等各個關鍵領域。我尤其欣賞它在各個章節之間的銜接處理,邏輯性非常強,讓你能夠清晰地看到不同概念之間的關聯。舉個例子,當你學習完數據結構後,你會立刻明白它如何在內存中組織信息,以及這如何影響到算法的效率。這種層層遞進的學習方式,讓我在理解新概念時,能夠自然而然地將其與之前學過的知識聯係起來,形成牢固的知識網絡。書中還會提供一些練習題和思考題,雖然我還沒有全部做完,但這些題目確實能很好地檢驗我對知識的掌握程度,並引導我去思考更深層次的問題。總的來說,這本書讓我對計算機科學的整體認知水平提升瞭一個檔次,感覺自己不再是那個隻會點鼠標的“小白”瞭。

評分

這本書的深度和廣度都給我留下瞭深刻的印象,它不僅僅是停留在概念的介紹,更是在關鍵領域進行瞭深入的探討。雖然作為一本入門讀物,它不可能麵麵俱到地講解每一個細節,但它在每一個分支領域都提供瞭足夠的信息,讓你能夠對這個領域有一個紮實的理解,並知道進一步學習的方嚮。比如,在介紹數據庫的部分,它不僅解釋瞭什麼是數據庫,還簡單闡述瞭關係型數據庫和非關係型數據庫的區彆,以及SQL的基本查詢語句,這對我理解數據如何存儲和管理非常有幫助。而在網絡章節,它清晰地講解瞭TCP/IP協議棧的各個層次,以及HTTP的工作原理,這讓我對我們日常上網的行為有瞭全新的認識。我個人比較喜歡它在講述操作係統時,對進程管理和內存管理的解釋,這些概念雖然抽象,但書中通過圖示和簡化的模型,讓我能夠相對容易地理解它們是如何工作的。這本書的優點在於,它既能讓你快速建立起對計算機科學的整體認知,又能讓你在感興趣的領域找到深入探索的切入點,為後續的學習打下瞭堅實的基礎。

評分

很好很好很好很好很好很好很好很好很好很好

評分

很好

評分

書籍是人類進步的階梯,認真閱讀與思考大有裨益。

評分

還行,質量很好,值得入手體驗一下哦

評分

剛拿到書,還不錯,物流還行,好久沒看紙質書瞭,但願自己能看的進去。努力!奮鬥!

評分

這本書很經典,計算機入門的不錯教材

評分

我在這裏我要不給你買單、一切就都

評分

概覽計算機各個領域,不畏名詞,瞭解各概念前世今生

評分

不錯的書

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有