內容簡介
本書是計算機科學概論課程的經典教材,全書對計算機科學做了百科全書式的精彩闡述,充分展現了計算機科學的歷史背景、發展歷程和新的技術趨勢。書中首先介紹信息編碼及計算機體系結構的基本原理,進而介紹作業系統和組網以及網際網路的相關內容,接著探討算法、程式設計語言及軟體工程,然後討論數據抽象和資料庫方面的問題,講述圖形學的主要套用以及人工智慧,最後以計算理論的介紹結束全書。本書在內容編排上由具體到抽象逐步推進,便於教學安排,每一個主題自然而然地引導出下一個主題。此外,書中還包含大量的圖、表和示例,有助於讀者對知識的了解與把握。
第13版新增了Python相關的內容,並且繼續使用第12版引入的Python代碼示例和類Python偽代碼。此外,幾乎每一章都能看到對前一版對應章節的修訂、更新以及修正。
本書非常適合作為高等院校計算機以及相關專業本科生教材,也可以供有意在計算機方面發展的非計算機專業讀者作為入門參考。
圖書目錄
Chapter 0 Introduction / 緒論 2
0.1 The Role of Algorithms / 算法的作用 4
0.2 The History of Computing / 計算機器的由來 6
0.3 An Outline of Our Study / 學習大綱 11
0.4 The Overarching Themes of Computer Science / 計算機科學的首要主題 13
Chapter 1 Data Storage / 數據存儲 24
1.1 Bits and Their Storage / 位和位存儲 26
1.2 Main Memory / 主存儲器 34
1.3 Mass Storage /
海量存儲器 37
1.4 Representing Information as Bit Patterns / 用位模式表示信息 43
*1.5 The Binary System / 二進制系統 51
*1.6 Storing Integers / 整數的存儲 56
*1.7 Storing Fractions / 小數的存儲 63
*1.8 Data and Programming / 數據與程式設計 69
*1.9 Data Compression / 數據壓縮 77
*1.10 Communication Errors / 通信差錯 83
Chapter 2 Data Manipulation / 數據操控 96
2.1 Computer Architecture / 計算機體系結構 98
2.2 Machine Language / 機器語言 101
2.3 Program Execution / 程式執行 108
*2.4 Arithmetic/Logic Instructions / 算術/邏輯指令 116
*2.5 Communicating with Other Devices / 與其他設備通信 121
*2.6 Programming Data Manipulation / 數據操控編程 126
*2.7 Other Architectures / 其他體系結構 137
Chapter 3 Operating Systems / 作業系統 148
3.1 The History of Operating Systems / 作業系統的歷史 150
3.2 Operating System Architecture / 作業系統的體系結構 155
3.3 Coordinating the Machine’s Activities / 協調機器的活動 163
*3.4 Handling Competition Among Processes / 處理進程間的競爭 166
3.5 Security / 安全性 172
Chapter 4 Networking and the Internet / 組網及網際網路 182
4.1 Network Fundamentals / 網路基礎 184
4.2 The Internet / 網際網路 194
4.3 The World Wide Web / 全球資訊網 206
*4.4 Internet Protocols /
網際網路協定 215
*4.5 Simple Client Server / 簡單的客戶機伺服器 223
4.6 Cybersecurity / 網路安全 227
Chapter 5 Algorithms / 算法 244
5.1 The Concept of an Algorithm / 算法的概念 246
5.2 Algorithm Representation / 算法的表示 249
5.3 Algorithm Discovery / 算法的發現 258
5.4 Iterative Structures / 疊代結構 265
5.5 Recursive Structures / 遞歸結構 276
5.6 Efficiency and Correctness / 效率和正確性 285
Chapter 6 Programming Languages / 程式設計語言 304
6.1 Historical Perspective / 歷史回顧 306
6.2 Traditional Programming Concepts / 傳統的程式設計概念 317
6.3 Procedural Units / 過程單元 332
6.4 Language Implementation / 語言實現 340
6.5 Object-Oriented Programming / 面向對象程式設計 350
*6.6 Programming Concurrent Activities / 程式設計並發活動 357
*6.7 Declarative Programming / 說明性程式設計 360
Chapter 7 Software Engineering / 軟體工程 374
7.1 The Software Engineering Discipline / 軟體工程學科 376
7.2 The Software Life Cycle /
軟體生命周期 379
7.3 Software Engineering Methodologies /
軟體工程方法學 384
7.4 Modularity / 模組化 387
7.5 Tools of the Trade / 行業工具 396
7.6 Quality Assurance / 質量保證 405
7.7 Documentation / 文檔 408
7.8 The Human-Machine Interface / 人機界面 410
7.9 Software Ownership and Liability / 軟體所有權和責任 414
Chapter 8 Data Abstractions / 數據抽象 422
8.1 Basic Data Structures / 基本數據結構 424
8.2 Related Concepts / 相關概念 429
8.3 Implementing Data Structures / 數據結構的實現 432
8.4 A Short Case Study / 一個簡短的案例 447
8.5 Customized Data Types / 定製的數據類型 452
8.6 Classes and Objects / 類和對象 456
*8.7 Pointers in Machine Language / 機器語言中的指針 458
Chapter 9 Database Systems / 資料庫系統 470
9.1 Database Fundamentals / 資料庫基礎 472
9.2 The Relational Model / 關係模型 478
*9.3 Object-Oriented Databases /
面向對象資料庫 489
*9.4 Maintaining Database Integrity / 維護資料庫的完整性 492
*9.5 Traditional File Structures / 傳統的檔案結構 496
9.6 Data Mining / 數據挖掘 505
9.7 Social Impact of Database Technology / 資料庫技術的社會影響 508
Chapter 10 Computer Graphics / 計算機圖形學 518
10.1 The Scope of Computer Graphics / 計算機圖形學的範圍 520
10.2 Overview of 3D Graphics / 3D圖形概述 523
10.3 Modeling / 建模 525
10.4 Rendering / 渲染 535
*10.5 Dealing with Global Lighting / 處理全局照明 547
10.6 Animation / 動畫 550
Chapter 11 Artificial Intelligence / 人工智慧 560
11.1 Intelligence and Machines / 智慧型與機器 562
11.2 Perception / 感知 567
11.3 Reasoning / 推理 574
11.4 Additional Areas of Research / 其他研究領域 586
11.5 Artificial Neural Networks /
人工神經網路 593
11.7 Considering the Consequences / 後果的思考 601
Chapter 12 Theory of Computation / 計算理論 614
12.1 Functions and Their Computation / 函式及其計算 616
12.2 Turing Machines / 圖靈機 619
12.3 Universal Programming Languages / 通用程式設計語言 623
12.4 A Noncomputable Function / 一個不可計算的函式 629
12.5 Complexity of Problems / 問題的複雜性 634
*12.6 Public-Key Cryptography / 公鑰密碼學 646
Appendixes 656
A ASCII / ASCII碼 656
B Circuits to Manipulate Two’s Complement Representations / 用於處理
二進制補碼表示的電路 657
C Vole: A Simple Machine Language / 一種簡單的機器語言 660
D High-Level Programming Languages / 高級程式設計語言 663
E The Equivalence of Iterative and Recursive Structures / 疊代結構與遞歸結構的等價性 665
F Answers to Questions & Exercises / 問題與練習答案 667