本書是計(jì)算機(jī)科學(xué)概論課程的經(jīng)典教材,全書對計(jì)算機(jī)科學(xué)做了百科全書式的精彩闡述,充分展現(xiàn)了計(jì)算機(jī)科學(xué)的歷史背景、發(fā)展歷程和新的技術(shù)趨勢。書中首先介紹的是信息編碼及計(jì)算機(jī)體系結(jié)構(gòu)的基本原理,進(jìn)而介紹操作系統(tǒng)和組網(wǎng)以及因特網(wǎng)的相關(guān)內(nèi)容,接著探討算法、程序設(shè)計(jì)語言及軟件工程,然后討論數(shù)據(jù)抽象和數(shù)據(jù)庫方面的問題,講述圖形學(xué)的主要應(yīng)用以及人工智能,最后以計(jì)算理論的介紹結(jié)束全書。本書在內(nèi)容編排上由具體到抽象逐步推進(jìn),很適合教學(xué)安排,每一個(gè)主題自然而然地引導(dǎo)出下一個(gè)主題。此外,書中還包含大量的圖、表和示例,有助于讀者對知識的了解與把握。
第12版的變化主要是將Python程序設(shè)計(jì)語言方面的介紹納入了重點(diǎn)章節(jié),除了增加與Python相關(guān)的內(nèi)容,幾乎每一章都能看到對前一版對應(yīng)章節(jié)的修訂、更新以及修正。
本書非常適合作為高等院校計(jì)算機(jī)以及相關(guān)專業(yè)本科生教材,也可以供有意在計(jì)算機(jī)方面發(fā)展的非計(jì)算機(jī)專業(yè)讀者作為入門參考。
J. Glenn Brookshear 世界知名的計(jì)算機(jī)科學(xué)教育家。他在1975年獲得新墨西哥州立大學(xué)博士后,創(chuàng)辦了Marquette大學(xué)的計(jì)算機(jī)科學(xué)學(xué)位項(xiàng)目,并在該校任教至今。他的主要研究方向是計(jì)算理論。除了本書之外,他還著有《Theory of Computationr: Formal Languages, Automata, and Complexity》。
目 錄
Chapter 0 Introduction / 緒論 1
0.1 The Role of Algorithms / 算法的作用 2
0.2 The History of Computing / 計(jì)算機(jī)器的由來 4
0.3 An Outline of Our Study / 學(xué)習(xí)大綱 9
0.4 The Overarching Themes of Computer Science / 計(jì)算機(jī)科學(xué)的首要主題 11
Chapter 1 Data Storage / 數(shù)據(jù)存儲 19
1.1 Bits and Their Storage / 位和位存儲 20
1.2 Main Memory / 主存儲器 26
1.3 Mass Storage / 海量存儲器 29
1.4 Representing Information as Bit Patterns / 用位模式表示信息 34
*1.5 The Binary System / 二進(jìn)制系統(tǒng) 40
*1.6 Storing Integers / 整數(shù)的存儲 46
*1.7 Storing Fractions / 小數(shù)的存儲 52
*1.8 Data and Programming / 數(shù)據(jù)與程序設(shè)計(jì) 57
*1.9 Data Compression / 數(shù)據(jù)壓縮 63
*1.10 Communication Errors / 通信差錯(cuò) 69
Chapter 2 Data Manipulation / 數(shù)據(jù)操控 81
2.1 Computer Architecture / 計(jì)算機(jī)體系結(jié)構(gòu) 82
2.2 Machine Language / 機(jī)器語言 85
2.3 Program Execution / 程序執(zhí)行 91
*2.4 Arithmetic/Logic Instructions / 算術(shù)/邏輯指令 98
*2.5 Communicating with Other Devices / 與其他設(shè)備通信 103
*2.6 Programming Data Manipulation / 數(shù)據(jù)操控編程 108
*2.7 Other Architectures / 其他體系結(jié)構(gòu) 117
Chapter 3 Operating Systems / 操作系統(tǒng) 127
3.1 The History of Operating Systems / 操作系統(tǒng)的歷史 128
3.2 Operating System Architecture / 操作系統(tǒng)的體系結(jié)構(gòu) 132
3.3 Coordinating the Machine’s Activities / 協(xié)調(diào)機(jī)器的活動(dòng) 140
*3.4 Handling Competition Among Processes / 處理進(jìn)程間的競爭 143
3.5 Security / 安全性 148
Chapter 4 Networking and the Internet / 組網(wǎng)及因特網(wǎng) 157
4.1 Network Fundamentals / 網(wǎng)絡(luò)基礎(chǔ) 158
4.2 The Internet / 因特網(wǎng) 167
4.3 The World Wide Web / 萬維網(wǎng) 176
*4.4 Internet Protocols / 因特網(wǎng)協(xié)議 185
4.5 Security / 安全性 191
Chapter 5 Algorithms / 算法 205
5.1 The Concept of an Algorithm / 算法的概念 206
5.2 Algorithm Representation / 算法的表示 209
5.3 Algorithm Discovery / 算法的發(fā)現(xiàn) 216
5.4 Iterative Structures / 迭代結(jié)構(gòu) 222
5.5 Recursive Structures / 遞歸結(jié)構(gòu) 233
5.6 Efficiency and Correctness / 效率和正確性 241
Chapter 6 Programming Languages / 程序設(shè)計(jì)語言 259
6.1 Historical Perspective / 歷史回顧 260
6.2 Traditional Programming Concepts / 傳統(tǒng)的程序設(shè)計(jì)概念 268
6.3 Procedural Units / 過程單元 280
6.4 Language Implementation / 語言實(shí)現(xiàn) 288
6.5 Object-Oriented Programming / 面向?qū)ο蟪绦蛟O(shè)計(jì) 296
*6.6 Programming Concurrent Activities / 程序設(shè)計(jì)并發(fā)活動(dòng) 303
*6.7 Declarative Programming / 說明性程序設(shè)計(jì) 306
Chapter 7 Software Engineering / 軟件工程 319
7.1 The Software Engineering Discipline / 軟件工程學(xué)科 320
7.2 The Software Life Cycle / 軟件生命周期 322
7.3 Software Engineering Methodologies / 軟件工程方法學(xué) 326
7.4 Modularity / 模塊化 329
7.5 Tools of the Trade / 行業(yè)工具 336
7.6 Quality Assurance / 質(zhì)量保證 344
7.7 Documentation / 文檔 348
7.8 The Human-Machine Interface / 人機(jī)界面 349
7.9 Software Ownership and Liability / 軟件所有權(quán)和責(zé)任 352
Chapter 8 Data Abstractions / 數(shù)據(jù)抽象 361
8.1 Basic Data Structures / 基本數(shù)據(jù)結(jié)構(gòu) 362
8.2 Related Concepts / 相關(guān)概念 365
8.3 Implementing Data Structures / 數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn) 368
8.4 A Short Case Study / 一個(gè)簡短的案例 382
8.5 Customized Data Types / 定制的數(shù)據(jù)類型 387
8.6 Classes and Objects / 類和對象 391
*8.7 Pointers in Machine Language / 機(jī)器語言中的指針 393
Chapter 9 Database Systems / 數(shù)據(jù)庫系統(tǒng) 403
9.1 Database Fundamentals / 數(shù)據(jù)庫基礎(chǔ) 404
9.2 The Relational Model / 關(guān)系模型 409
*9.3 Object-Oriented Databases / 面向?qū)ο髷?shù)據(jù)庫 420
*9.4 Maintaining Database Integrity / 維護(hù)數(shù)據(jù)庫的完整性 422
*9.5 Traditional File Structures / 傳統(tǒng)的文件結(jié)構(gòu) 426
9.6 Data Mining / 數(shù)據(jù)挖掘 434
9.7 Social Impact of Database Technology / 數(shù)據(jù)庫技術(shù)的社會影響 436
Chapter 10 Computer Graphics / 計(jì)算機(jī)圖形學(xué) 445
10.1 The Scope of Computer Graphics / 計(jì)算機(jī)圖形學(xué)的范圍 446
10.2 Overview of 3D Graphics / 3D圖形概述 448
10.3 Modeling / 建!449
10.4 Rendering / 渲染 457
*10.5 Dealing with Global Lighting / 處理全局照明 468
10.6 Animation / 動(dòng)畫 471
Chapter 11 Artificial Intelligence / 人工智能 479
11.1 Intelligence and Machines / 智能與機(jī)器 480
11.2 Perception / 感知 485
11.3 Reasoning / 推理 491
11.4 Additional Areas of Research / 其他研究領(lǐng)域 502
11.5 Artificial Neural Networks / 人工神經(jīng)網(wǎng)絡(luò) 507
11.6 Robotics / 機(jī)器人學(xué) 514
11.7 Considering the Consequences / 后果的思考 517
Chapter 12 Theory of Computation / 計(jì)算理論 527
12.1 Functions and Their Computation / 函數(shù)及其計(jì)算 528
12.2 Turing Machines / 圖靈機(jī) 530
12.3 Universal Programming Languages / 通用程序設(shè)計(jì)語言 534
12.4 A Noncomputable Function / 一個(gè)不可計(jì)算的函數(shù) 540
12.5 Complexity of Problems / 問題的復(fù)雜性 544
*12.6 Public-Key Cryptography / 公鑰密碼學(xué) 553
Appendixes 563
A ASCII / ASCII碼 565
B Circuits to Manipulate Two’s Complement Representations / 用于處理二進(jìn)制補(bǔ)碼表示的電路 566
C A Simple Machine Language / 一種簡單的機(jī)器語言 569
D High-Level Programming Languages / 高級程序設(shè)計(jì)語言 571
E The Equivalence of Iterative and Recursive Structures /迭代結(jié)構(gòu)與遞歸結(jié)構(gòu)的等價(jià)性 573
F Answers to Questions & Exercises / 問題與練習(xí)答案 575