本書是計算機科學(xué)概論課程的經(jīng)典教材,全書對計算機科學(xué)做了百科全書式的精彩闡述,充分展現(xiàn)了計算機科學(xué)的歷史背景、發(fā)展歷程和新的技術(shù)趨勢。書中首先介紹信息編碼及計算機體系結(jié)構(gòu)的基本原理,進而介紹操作系統(tǒng)和組網(wǎng)以及因特網(wǎng)的相關(guān)內(nèi)容,接著探討算法、程序設(shè)計語言及軟件工程,然后討論數(shù)據(jù)抽象和數(shù)據(jù)庫方面的問題,講述圖形學(xué)的主要應(yīng)用以及人工智能,最后以計算理論的介紹結(jié)束全書。本書在內(nèi)容編排上由具體到抽象逐步推進,便于教學(xué)安排,每一個主題自然而然地引導(dǎo)出下一個主題。此外,書中還包含大量的圖、表和示例,有助于讀者對知識的了解與把握。
第13版新增了Python相關(guān)的內(nèi)容,并且繼續(xù)使用第12版引入的Python代碼示例和類Python偽代碼。此外,幾乎每一章都能看到對前一版對應(yīng)章節(jié)的修訂、更新以及修正。
本書非常適合作為高等院校計算機以及相關(guān)專業(yè)本科生教材,也可以供有意在計算機方面發(fā)展的非計算機專業(yè)讀者作為入門參考。
·計算機科學(xué)的全景式展現(xiàn)
·經(jīng)典的導(dǎo)論性教材的新版本
·全面把握新技術(shù)發(fā)展趨勢
本書多年來一直深受世界各國高校師生的歡迎,是美國哈佛大學(xué)、麻省理工學(xué)院、普林斯頓大學(xué)、加州大學(xué)伯克利分校等著名大學(xué)對應(yīng)課程的首選教材,對我國的高校教學(xué)也產(chǎn)生了廣泛的影響。
本書以歷史的眼光,從發(fā)展的角度、當(dāng)前的水平以及現(xiàn)階段的研究方向等幾個方面,全景式描述了計算機科學(xué)各個子學(xué)科的主要研究領(lǐng)域。在內(nèi)容編排上,很好地兼顧了學(xué)科廣度和主題深度,把握了最新的技術(shù)發(fā)展趨勢。本書用算法、數(shù)據(jù)抽象等核心思想貫穿各個主題,并且充分體現(xiàn)了各個主題的歷史背景、發(fā)展歷程和新的技術(shù)趨勢,培養(yǎng)讀者的大局觀,為今后深入學(xué)習(xí)其他計算機專業(yè)課程打下堅實的基礎(chǔ)。
本書深入淺出、圖文并茂、內(nèi)容由具體到抽象逐步推進,各章節(jié)自然連貫又各自獨立,可根據(jù)教學(xué)需要調(diào)整學(xué)習(xí)順序。此外,本書習(xí)題豐富,并且每章后都附有與本章內(nèi)容相關(guān)的社會現(xiàn)實問題供讀者思考和討論,這些都很好地體現(xiàn)了作者強調(diào)培養(yǎng)學(xué)生分析問題能力的教學(xué)理念。
第13版的主要特點是補充了Python語言的相關(guān)內(nèi)容,并且繼續(xù)使用第12版采用的Python代碼示例和類Python偽代碼,比先前版本更注重編程。此外,幾乎每一章都能看到對前一版對應(yīng)章節(jié)的修訂、更新和修正。
本書非常適合作為高等院校計算機以及相關(guān)專業(yè)本科生教材,也可以供有意在計算機方面發(fā)展的非計算機專業(yè)讀者作為入門參考。
J.Glenn Brookshear:世界知名的計算機科學(xué)教育家。他在1975年獲得墨西哥州立大學(xué)博士學(xué)位后,創(chuàng)立了Marquette大學(xué)的計算機科學(xué)學(xué)位項目,并在該校任教至今。他的主要研究方向是計算理論。著有Theory of Computation:Formal Languanges,Automata,and Complexity。
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 / 學(xué)習(xí)大綱 11
0.4 The Overarching Themes of Computer Science / 計算機科學(xué)的首要主題 13
Chapter 1 Data Storage / 數(shù)據(jù)存儲 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 / 二進制系統(tǒng) 51
*1.6 Storing Integers / 整數(shù)的存儲 56
*1.7 Storing Fractions / 小數(shù)的存儲 63
*1.8 Data and Programming / 數(shù)據(jù)與程序設(shè)計 69
*1.9 Data Compression / 數(shù)據(jù)壓縮 77
*1.10 Communication Errors / 通信差錯 83
Chapter 2 Data Manipulation / 數(shù)據(jù)操控 96
2.1 Computer Architecture / 計算機體系結(jié)構(gòu) 98
2.2 Machine Language / 機器語言 101
2.3 Program Execution / 程序執(zhí)行 108
*2.4 Arithmetic/Logic Instructions / 算術(shù)/邏輯指令 116
*2.5 Communicating with Other Devices / 與其他設(shè)備通信 121
*2.6 Programming Data Manipulation / 數(shù)據(jù)操控編程 126
*2.7 Other Architectures / 其他體系結(jié)構(gòu) 137
Chapter 3 Operating Systems / 操作系統(tǒng) 148
3.1 The History of Operating Systems / 操作系統(tǒng)的歷史 150
3.2 Operating System Architecture / 操作系統(tǒng)的體系結(jié)構(gòu) 155
3.3 Coordinating the Machine’s Activities / 協(xié)調(diào)機器的活動 163
*3.4 Handling Competition Among Processes / 處理進程間的競爭 166
3.5 Security / 安全性 172
Chapter 4 Networking and the Internet / 組網(wǎng)及因特網(wǎng) 182
4.1 Network Fundamentals / 網(wǎng)絡(luò)基礎(chǔ) 184
4.2 The Internet / 因特網(wǎng) 194
4.3 The World Wide Web / 萬維網(wǎng) 206
*4.4 Internet Protocols / 因特網(wǎng)協(xié)議 215
*4.5 Simple Client Server / 簡單的客戶機服務(wù)器 223
4.6 Cybersecurity / 網(wǎng)絡(luò)安全 227
Chapter 5 Algorithms / 算法 244
5.1 The Concept of an Algorithm / 算法的概念 246
5.2 Algorithm Representation / 算法的表示 249
5.3 Algorithm Discovery / 算法的發(fā)現(xiàn) 258
5.4 Iterative Structures / 迭代結(jié)構(gòu) 265
5.5 Recursive Structures / 遞歸結(jié)構(gòu) 276
5.6 Efficiency and Correctness / 效率和正確性 285
Chapter 6 Programming Languages / 程序設(shè)計語言 304
6.1 Historical Perspective / 歷史回顧 306
6.2 Traditional Programming Concepts / 傳統(tǒng)的程序設(shè)計概念 317
6.3 Procedural Units / 過程單元 332
6.4 Language Implementation / 語言實現(xiàn) 340
6.5 Object-Oriented Programming / 面向?qū)ο蟪绦蛟O(shè)計 350
*6.6 Programming Concurrent Activities / 程序設(shè)計并發(fā)活動 357
*6.7 Declarative Programming / 說明性程序設(shè)計 360
Chapter 7 Software Engineering / 軟件工程 374
7.1 The Software Engineering Discipline / 軟件工程學(xué)科 376
7.2 The Software Life Cycle / 軟件生命周期 379
7.3 Software Engineering Methodologies / 軟件工程方法學(xué) 384
7.4 Modularity / 模塊化 387
7.5 Tools of the Trade / 行業(yè)工具 396
7.6 Quality Assurance / 質(zhì)量保證 405
7.7 Documentation / 文檔 408
7.8 The Human-Machine Interface / 人機界面 410
7.9 Software Ownership and Liability / 軟件所有權(quán)和責(zé)任 414
Chapter 8 Data Abstractions / 數(shù)據(jù)抽象 422
8.1 Basic Data Structures / 基本數(shù)據(jù)結(jié)構(gòu) 424
8.2 Related Concepts / 相關(guān)概念 429
8.3 Implementing Data Structures / 數(shù)據(jù)結(jié)構(gòu)的實現(xiàn) 432
8.4 A Short Case Study / 一個簡短的案例 447
8.5 Customized Data Types / 定制的數(shù)據(jù)類型 452
8.6 Classes and Objects / 類和對象 456
*8.7 Pointers in Machine Language / 機器語言中的指針 458
Chapter 9 Database Systems / 數(shù)據(jù)庫系統(tǒng) 470
9.1 Database Fundamentals / 數(shù)據(jù)庫基礎(chǔ) 472
9.2 The Relational Model / 關(guān)系模型 478
*9.3 Object-Oriented Databases / 面向?qū)ο髷?shù)據(jù)庫 489
*9.4 Maintaining Database Integrity / 維護數(shù)據(jù)庫的完整性 492
*9.5 Traditional File Structures / 傳統(tǒng)的文件結(jié)構(gòu) 496
9.6 Data Mining / 數(shù)據(jù)挖掘 505
9.7 Social Impact of Database Technology / 數(shù)據(jù)庫技術(shù)的社會影響 508
Chapter 10 Computer Graphics / 計算機圖形學(xué) 518
10.1 The Scope of Computer Graphics / 計算機圖形學(xué)的范圍 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 / 其他研究領(lǐng)域 586
11.5 Artificial Neural Networks / 人工神經(jīng)網(wǎng)絡(luò) 593
11.6 Robotics / 機器人學(xué) 598
11.7 Considering the Consequences / 后果的思考 601
Chapter 12 Theory of Computation / 計算理論 614
12.1 Functions and Their Computation / 函數(shù)及其計算 616
12.2 Turing Machines / 圖靈機 619
12.3 Universal Programming Languages / 通用程序設(shè)計語言 623
12.4 A Noncomputable Function / 一個不可計算的函數(shù) 629
12.5 Complexity of Problems / 問題的復(fù)雜性 634
*12.6 Public-Key Cryptography / 公鑰密碼學(xué) 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 / 高級程序設(shè)計語言 663
E The Equivalence of Iterative and Recursive Structures / 迭代結(jié)構(gòu)與遞歸結(jié)構(gòu)的等價性 665
F Answers to Questions & Exercises / 問題與練習(xí)答案 667