內容簡介
本書由兩位知名的計算機科學教育傢編寫,全麵而細緻地介紹瞭計算機科學的各個方麵。書中從信息層開始,曆經硬件層、程序設計層、操作係統層、應用程序層和通信層,深入剖析瞭計算係統的每個分層,後討論瞭計算的限製。此外,正文中穿插瞭大量的人物傳記、曆史點評、道德問題和新的技術發展信息,有助於你進一步瞭解計算機科學。每章後麵都附帶有大量的練習,可以幫助你即時重溫並掌握這一章所述的內容。
目錄
齣版者的話
譯者序
前言
第一部分 基礎篇
第1章 全景圖 2
1.1 計算係統 2
1.1.1 計算係統的分層 3
1.1.2 抽象 4
1.2 計算的曆史 5
1.2.1 計算硬件簡史 5
1.2.2 計算軟件簡史 12
1.2.3 預言 16
1.3 計算工具與計算學科 16
小結 18
道德問題:the Tenth Strand 18
練習 19
思考題 20
第二部分 信息層
第2章 二進製數值與記數係統 22
2.1 數字與計算 22
2.2 位置記數法 23
2.2.1 二進製、八進製和十六進製 26
2.2.2 其他記數係統中的運算 27
2.2.3 以2的冪為基數的記數係統 27
2.2.4 把十進製數轉換成其他數製的數 29
2.2.5 二進製數值與計算機 29
小結 31
道德問題:the Tenth Strand的知識單元 31
練習 33
思考題 34
第3章 數據錶示法 35
3.1 數據與計算機 35
3.1.1 模擬數據與數字數據 36
3.1.2 二進製錶示法 38
3.2 數字數據錶示法 39
3.2.1 負數錶示法 39
3.2.2 實數錶示法 42
3.3 文本錶示法 44
3.3.1 ASCII字符集 45
3.3.2 Unicode字符集 45
3.3.3 文本壓縮 46
3.4 音頻數據錶示法 49
3.4.1 音頻格式 50
3.4.2 MP3音頻格式 50
3.5 圖像與圖形錶示法 51
3.5.1 顔色錶示法 51
3.5.2 數字化圖像與圖形 52
3.5.3 圖形的矢量錶示法 53
3.6 視頻錶示法 53
小結 55
道德問題:道德準則 55
練習 56
思考題 58
第三部分 硬件層
第4章 門和電路 60
4.1 計算機和電學 60
4.2 門 62
4.2.1 非門 62
4.2.2 與門 63
4.2.3 或門 63
4.2.4 異或門 64
4.2.5 與非門和或非門 64
4.2.6 門處理迴顧 65
4.2.7 具有更多輸入的門 65
4.3 門的構造 66
4.4 電路 67
4.4.1 組閤電路 68
4.4.2 加法器 70
4.4.3 多路復用器 71
4.5 存儲器電路 72
4.6 集成電路 73
4.7 CPU芯片 73
小結 74
道德問題:這些違反道德規範嗎? 74
練習 75
思考題 77
第5章 計算部件 78
5.1 獨立的計算機部件 78
5.2 存儲程序的概念 82
5.2.1 馮·諾伊曼體係結構 82
5.2.2 讀取-執行周期 87
5.2.3 RAM和ROM 88
5.2.4 二級存儲設備 89
5.2.5 觸摸屏 92
5.3 嵌入式係統 93
5.4 並行體係結構 94
5.4.1 並行計算 94
5.4.2 並行硬件分類 95
小結 96
道德問題:數字鴻溝 96
練習 97
思考題 98
第四部分 程序設計層
第6章 低級程序設計語言與僞代碼 102
6.1 計算機操作 102
6.2 機器語言 103
6.3 一個程序實例 108
6.3.1 手工模擬 109
6.3.2 Pep/8模擬程序 109
6.4 匯編語言 111
6.4.1 Pep/8匯編語言 112
6.4.2 匯編器指令 112
6.4.3 Hello程序的匯編語言版本 113
6.4.4 一個新程序 113
6.4.5 具有分支的程序 115
6.4.6 具有循環的程序 116
6.5 錶達算法 118
6.5.1 僞代碼的功能 118
6.5.2 執行僞代碼算法 121
6.5.3 寫僞代碼算法 123
6.5.4 翻譯僞代碼算法 124
6.6 測試 125
小結 126
道德問題:版權與軟件盜版 127
練習 127
思考題 129
第7章 問題求解與算法設計 130
7.1 如何解決問題 130
7.1.1 提齣問題 130
7.1.2 尋找熟悉的情況 132
7.1.3 分治法 132
7.1.4 算法 133
7.1.5 計算機問題求解過程 133
7.1.6 方法總結 134
7.1.7 測試算法 135
7.2 有簡單參數的算法 135
7.2.1 帶有選擇的算法 135
7.2.2 帶有循環的算法 136
7.3 復雜變量 139
7.3.1 數組 139
7.3.2 記錄 140
7.4 搜索算法 141
7.4.1 順序搜索 141
7.4.2 有序數組中的順序搜索 141
7.4.3 二分檢索 142
7.5 排序 144
7.5.1 選擇排序 144
7.5.2 冒泡排序 145
7.5.3 插入排序 147
7.6 遞歸算法 147
7.6.1 子程序語句 148
7.6.2 遞歸階乘 149
7.6.3 遞歸二分檢索 149
7.6.4 快速排序 150
7.7 幾個重要思想 153
7.7.1 信息隱蔽 153
7.7.2 抽象 154
7.7.3 事物命名 155
7.7.4 測試 155
小結 155
道德問題:開源軟件 156
練習 157
思考題 159
第8章 抽象數據類型與子程序 160
8.1 抽象數據類型 160
8.2 棧 161
8.3 隊列 161
8.4 列錶 162
8.5 樹 164
8.5.1 二叉樹 164
8.5.2 二叉檢索樹 165
8.5.3 其他操作 169
8.6 圖 169
8.6.1 創建圖 171
8.6.2 圖算法 171
8.7 子程序 176
8.7.1 參數傳遞 177
8.7.2 值參與引用參數 178
小結 180
道德問題:工作場所監視 180
練習 181
思考題 183
第9章 麵嚮對象設計與高級程序設計語言 184
9.1 麵嚮對象方法 184
9.1.1 麵嚮對象 185
9.1.2 設計方法 185
9.1.3 一個計算機示例 187
9.2 翻譯過程 189
9.2.1 編譯器 190
9.2.2 解釋器 190
9.3 程序設計語言的範型 192
9.3.1 命令式範型 192
9.3.2 聲明式範型 193
9.4 高級程序設計語言的功能性 194
9.4.1 布爾錶達式 194
9.4.2 數據歸類 196
9.4.3 輸入/輸齣結構 199
9.4.4 控製結構 200
9.5 麵嚮對象語言的功能性 204
9.5.1 封裝 204
9.5.2 類 205
9.5.3 繼承 206
9.5.4 多態 207
9.6 過程設計與麵嚮對象設計的區彆 207
小結 208
道德問題:惡作劇與詐騙 209
練習 210
思考題 212
第五部分 操作係統層
第10章 操作係統 214
10.1 操作係統的角色 214
10.1.1 內存、進程與CPU管理 216
10.1.2 批處理 216
10.1.3 分時 217
10.1.4 其他OS要素 218
10.2 內存管理 218
10.2.1 單塊內存管理 219
10.2.2 分區內存管理 220
10.2.3 頁式內存管理 221
10.3 進程管理 223
10.3.1 進程狀態 223
10.3.2 進程控製塊 224
10.4 CPU調度 224
10.4.1 先到先服務 225
10.4.2 最短作業優先 226
10.4.3 輪詢法 226
小結 227
道德問題:醫療隱私——健康保險攜帶與責任法案 228
練習 229
思考題 231
第11章 文件係統和目錄 232
11.1 文件係統 232
11.1.1 文本文件和二進製文件 233
11.1.2 文件類型 233
11.1.3 文件操作 234
11.1.4 文件訪問 235
11.1.5 文件保護 236
11.2 目錄 237
11.2.1 目錄樹 237
11.2.2 路徑名 239
11.3 磁盤調度 241
11.3.1 先到先服務磁盤調度法 242
11.3.2 最短尋道時間優先磁盤調度法 242
11.3.3 SCAN磁盤調度法 242
小結 243
道德問題:選擇加入和選擇退齣 243
練習 244
思考題 246
第六部分 應用程序層
第12章 信息係統 248
12.1 信息管理 248
12.2 電子製錶軟件 249
12.2.1 電子數據錶公式 250
12.2.2 循環引用 254
12.2.3 電子數據錶分析 254
12.3 數據庫管理係統 255
12.3.1 關係模型 256
12.3.2 關係 257
12.3.3 結構化查詢語言 258
12.3.4 數據庫設計 260
12.4 電子商務 261
小結 262
道德問題:從競選來看政治與網絡 262
練習 263
思考題 265
第13章 人工智能 266
13.1 思維機 266
13.1.1 圖靈測試 267
13.1.2 AI問題的各個方麵 268
13.2 知識錶示 268
13.2.1 語義網 268
13.2.2 檢索樹 271
13.3 專傢係統 273
13.4 神經網絡 275
13.4.1 生物神經網絡 275
13.4.2 人工神經網絡 276
13.5 自然語言處理 277
13.5.1 語音閤成 277
13.5.2 語音識彆 278
13.5.3 自然語言理解 279
13.6 機器人學 280
13.6.1 感知-規劃-執行範型 280
13.6.2 包孕體係結構 282
13.6.3 物理部件 283
小結 283
道德問題:從民眾來看政治與網絡 284
練習 284
思考題 286
第14章 模擬、圖形學、遊戲和其他應用 287
14.1 什麼是模擬 287
14.1.1 復雜係統 287
14.1.2 模型 288
14.1.3 構造模型 288
14.2 特殊模型 289
14.2.1 排隊係統 289
14.2.2 氣象模型 292
14.2.3 計算生物學 295
14.2.4 其他模型 295
14.2.5 必要的計算能力 296
14.3 計算機圖形學 296
14.3.1 光的工作原理 297
14.3.2 物體形狀 298
14.3.3 光模擬 298
14.3.4 復雜對象的建模 299
14.3.5 讓物體動起來 303
14.4 遊戲 304
14.4.1 遊戲的曆史 304
14.4.2 創建虛擬世界 305
14.4.3 遊戲設計與開發 305
14.4.4 遊戲編程 306
小結 307
道德問題:遊戲成癮 307
練習 308
思考題 309
第七部分 通信層
第15章 網絡 312
15.1 連網 312
15.1.1 網絡的類型 313
15.1.2 Internet連接 315
15.1.3 包交換 317
15.2 開放式係統與協議 318
15.2.1 開放式係統 318
15.2.2 網絡協議 319
15.2.3 TCP/IP 319
15.2.4 高層協議 320
15.2.5 MIME類型 321
15.2.6 防火牆 321
15.3 網絡地址 322
15.4 雲計算 324
小結 325
道德問題:社交網絡的影響 326
練習 327
思考題 328
第16章 萬維網 329
16.1 Web簡介 329
16.1.1 搜索引擎 331
16.1.2 即時消息 331
16.1.3 博客 331
16.1.4 cookie 332
16.2 HTML 333
16.2.1 基本的HTML格式 335
16.2.2 圖像與鏈接 335
16.2.3 HTML5 337
16.3 交互式網頁 337
16.3.1 Java小程序 337
16.3.2 Java服務器頁 338
16.4 XML 339
16.5 社交網絡 341
小結 342
道德問題:賭博與互聯網 344
練習 344
思考題 346
第17章 計算機安全 347
17.1 各級安全 347
17.2 阻止未授權訪問 349
17.2.1 密碼 349
17.2.2 驗證碼 351
17.2.3 指紋分析 352
17.3 惡意代碼 352
17.3.1 殺毒軟件 353
17.3.2 安全攻擊 353
17.4 密碼學 355
17.5 保護你的在綫信息 357
17.5.1 安全與可移動設備 359
17.5.2 維基解密 359
小結 360
道德問題:博客 361
練習 362
思考題 363
第八部分 總結
第18章 計算的限製 366
18.1 硬件 366
18.1.1 算術運算的限製 366
18.1.2 部件的限製 370
18.1.3 通信的限製 371
18.2 軟件 372
18.2.1 軟件的復雜度 372
18.2.2 當前提高軟件質量的方法 373
18.2.3 臭名昭著的軟件錯誤 376
18.3 問題 377
18.3.1 算法比較 377
18.3.2 圖靈機 382
18.3.3 停機問題 384
18.3.4 算法分類 386
小結 387
道德問題:Therac-25災難剖析 387
練習 388
思考題 389
參考文獻 390
索引 396
前言/序言
前 言Computer Science Illuminated, Fifth Edition 論題選擇為瞭製定這本CS0教材的論題大綱,我們利用瞭許多資源,包括課程目錄、教材大綱以及一個電子郵件調查問捲。設計這個調查問捲的目的在於瞭解我們的同事對這門課應該包括哪些內容的想法。我要求大傢(包括自己)列齣下列三種清單: 如果CS0這門課是學生在大學階段學習的唯一一門計算機科學的課程,請列齣四種你認為他們應該掌握的論題。 請列齣四種你想要學生在進入CS1這門課之前掌握的論題。 請補充四種你想要學習CS1的學生熟悉的論題。 這些資源的交集反映齣的大多數人的意見,也就構成瞭本書的大綱。在學習CS1之前掌握瞭本書內容的學生將為繼續學習計算機科學打下堅實的基礎。盡管我們的意圖是編寫一本CS0教材,但是許多評論傢都認為本書的覆蓋麵非常廣泛,可以作為一種程序設計語言的計算機科學導論的參考書。 結構說明在第1章中,我們介紹瞭硬件和軟件的曆史,並且用洋蔥的結構來類比計算機係統的結構。計算機和它的機器語言構成瞭洋蔥的芯,軟件層和更復雜的硬件一層層地裹住瞭這個芯。首先介紹的是機器語言,然後是高級語言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介紹這些語言的同時,還介紹瞭利用它們進行程序設計的過程,包括自頂嚮下的設計和麵嚮對象的設計。我們對抽象數據類型所扮演的角色及其實現的理解已經成熟瞭。操作係統及其資源管理技術(包括更大、更快的二級存儲介質上的文件)包圍著這些程序,並對它們進行管理。 接下來的一層由更復雜的通用或專用軟件係統構成,它們覆蓋瞭操作係統。這些功能強大的程序由計算機科學中的並行理論支持。最後一層由網絡和網絡軟件構成,網絡軟件包括計算機之間通信必需的所有工具。Internet和萬維網給這一層畫上瞭最後一筆。 當這些層隨著時間的推移逐漸齣現時,用戶對計算機係統的硬件接觸得越來越少。每個層都是它下麵的計算機係統的抽象。隨著每個層的發展,新層的用戶和內部層的用戶聯閤起來,在經濟領域的高科技部門創造瞭大量的生産力。本書的目的是提供各個層的概述,介紹基本的硬件和軟件技術,使學生瞭解和欣賞計算係統的方方麵麵。 在介紹這種洋蔥式結構時,我們有兩種選擇,一種是從內嚮外逐層介紹,另一種是從外嚮內進行介紹。從外嚮內的方法看起來非常吸引人。我們可以從最抽象的層開始介紹,一次剝掉一個層,直到具體的機器層為止。但是,研究錶明,比起抽象的例子,學生們更容易理解具體的例子,即使他們本身是抽象思想傢。因此,我們選擇從具體的機器層開始,按照層的創建順序進行分析,當學生完全理解瞭一個層之後,再轉移到下一個層就比較容易。 第5版中的變化在計劃這次改版時,我們谘詢瞭CS教育學院的同事,要求他們給予一些反饋。37人迴復瞭我們,非常感謝這些有思考、有見解的迴應。 第15章中添加瞭“雲計算”一節,並更新瞭域名部分。第16章中加入瞭HTML5。此外,專門用一章(第17章)討論計算機安全。老版的第17章是現在的第18章。目前,大多數的安全問題集中在網絡時代信息的安全使用上,因此把第17章放在通信層的最後一章。 除瞭新的章節,現在每章結尾部分的道德問題有瞭更為一緻的主題,從道德責任的定義和一個專業計算機人士的道德責任開始,展示瞭兩個主
計算機科學概論(原書第5版) 下載 mobi epub pdf txt 電子書 格式