本書共12章,從直觀的圖靈機模型出發,分析了現代計算機設計的基本思想,并以通俗易懂的語言從計算機系統結構、計算機軟件、計算機應用和計算機安全等方面論述計算機專業知識;特別引入了物聯網、大數據、云計算、移動互聯網等領域知識。為了提高學習效果,除緒論外,每章都提供了關鍵術語、思考與練習。
本書可作為大學計算機專業、信息技術專業和其他相關專業計算機引論或計算機科學導論課程的教材或教學參考書。對計算機學科感興趣的非計算機專業人員來說,本書也是一本比較好的入門指導書。
緒論 1
0.1 計算機的產生 1
0.1.1 算法 1
0.1.2 計算機的產生 2
0.2 計算機的發展 6
0.3 計算機學科的構成 10
0.3.1 應用層 10
0.3.2 專業基礎層 10
0.3.3 專業基礎的理論基礎層 11
第1章 圖靈機模型 12
1.1 圖靈機概述 12
1.1.1 圖靈機的直觀描述 13
1.1.2 圖靈機的形式化描述 13
1.2 計算“x+1”的圖靈機 13
1.3 通用圖靈機 15 緒論 1
0.1 計算機的產生 1
0.1.1 算法 1
0.1.2 計算機的產生 2
0.2 計算機的發展 6
0.3 計算機學科的構成 10
0.3.1 應用層 10
0.3.2 專業基礎層 10
0.3.3 專業基礎的理論基礎層 11
第1章 圖靈機模型 12
1.1 圖靈機概述 12
1.1.1 圖靈機的直觀描述 13
1.1.2 圖靈機的形式化描述 13
1.2 計算“x+1”的圖靈機 13
1.3 通用圖靈機 15
1.4 圖靈機模型的啟示 17
關鍵術語 19
思考與練習 19
第2章 數據編碼與存儲 20
2.1 二進制 20
2.1.1 數制 20
2.1.2 八進制和十六進制 21
2.1.3 二進制與其他數制的轉換 21
2.2 二進制位的存儲 23
2.2.1 邏輯運算和門 23
2.2.2 觸發器 24
2.2.3 其他存儲技術 25
2.3 存儲器 26
2.3.1 主存儲器 26
2.3.2 輔助存儲器 26
2.4 數值數據編碼 27
2.4.1 機器數 27
2.4.2 整數和實數 27
2.4.3 帶符號數的表示 29
2.5 字符數據編碼 30
2.5.1 西文字符 30
2.5.2 漢字編碼 31
2.6 圖形和圖像數據編碼 33
2.6.1 基本概念 33
2.6.2 圖形與圖像的數字化 34
2.7 音頻數據的表示 34
2.8 數據壓縮 36
2.8.1 無損壓縮 36
2.8.2 有損壓縮 39
2.9 誤碼及對策 40
2.9.1 奇偶校驗 40
2.9.2 糾錯碼 40
關鍵術語 42
思考與練習 43
第3章 計算機結構 44
3.1 系統結構 45
3.1.1 運算器 46
3.1.2 控制器 47
3.1.3 多核處理器 47
3.1.4 計算機的引導過程 47
3.2 指令系統 48
3.2.1 指令系統的概念 48
3.2.2 RISC和CISC 48
3.2.3 指令系統的設計要求 49
3.2.4 指令格式 49
3.3 尋址方式 51
3.3.1 指令的尋址方式 51
3.3.2 操作數尋址方式 52
3.4 指令執行 52
3.5 流水線技術 54
3.5.1 什么是流水線 54
3.5.2 理想流水線性能分析 55
3.5.3 流水操作中的主要障礙 55
3.6 存儲系統 56
3.6.1 存儲器的層次結構 56
3.6.2 存儲體系涉及的問題 57
3.6.3 高速緩沖存儲器 58
3.6.4 內存 58
3.6.5 Flash存儲器 59
3.6.6 虛擬存儲器 60
3.6.7 外部存儲設備 62
3.7 外圍設備 65
3.8 輸入輸出方式 65
3.8.1 程序查詢方式 66
3.8.2 中斷方式 66
3.8.3 直接內存訪問方式 67
關鍵術語 68
思考與練習 68
第4章 操作系統 69
4.1 操作系統的發展 69
4.1.1 串行處理 69
4.1.2 簡單批處理 70
4.1.3 多道批處理 71
4.1.4 分時系統 73
4.1.5 實時系統 73
4.1.6 嵌入式操作系統 74
4.1.7 網絡操作系統 74
4.1.8 分布式操作系統 75
4.2 操作系統的結構 75
4.2.1 操作系統的功能 75
4.2.2 操作系統的組成 76
4.2.3 系統的引導 78
4.3 現代操作系統處理的難題 79
4.3.1 進程 79
4.3.2 并發控制的難題 81
4.3.3 有效地分配處理器 82
4.3.4 提供充足和高效的存儲器 84
4.4 常見的操作系統 88
4.4.1 DOS操作系統 88
4.4.2 Windows操作系統 88
4.4.3 UNIX操作系統 90
4.4.4 Linux操作系統 90
4.4.5 蘋果iOS移動操作系統 91
4.4.6 谷歌(Google)的Android移動操作系統 92
關鍵術語 92
思考與練習 93
第5章 程序設計基礎 94
5.1 計算機程序設計語言 94
5.1.1 通用程序設計語言 95
5.1.2 專用程序設計語言 98
5.2 編譯系統 102
5.3 結構化程序設計 104
5.3.1 結構化程序設計的概念 104
5.3.2 過程和函數 105
5.3.3 順序結構 106
5.3.4 分支結構 106
5.3.5 循環結構 107
5.4 面向對象程序設計 109
5.4.1 面向對象概述 109
5.4.2 面向對象與面向過程的區別 109
5.4.3 對象和類 110
5.4.4 面向對象技術的基本特征 111
5.4.5 面向對象程序設計語言 113
關鍵術語 116
思考與練習 116
第6章 算法與數據結構 117
6.1 算法概述 117
6.2 算法的時空效率 119
6.3 經典排序算法 121
6.3.1 冒泡排序 121
6.3.2 插入排序 123
6.3.3 快速排序 124
6.4 算法策略 125
6.4.1 遞歸和分治 125
6.4.2 枚舉和動態規劃 126
6.4.3 貪心算法 128
6.4.4 回溯法 129
6.5 數據結構概述 129
6.6 線性表 133
6.6.1 數組 134
6.6.2 棧 135
6.6.3 隊列 135
6.7 樹和圖 136
6.7.1 樹 136
6.7.2 圖 137
關鍵術語 138
思考與練習 138
第7章 軟件工程 140
7.1 軟件危機 141
7.2 軟件工程 142
7.2.1 軟件工程框架模型 143
7.2.2 軟件工程本質特征 145
7.2.3 軟件工程基本原理 145
7.2.4 軟件過程 145
7.2.5 軟件過程模型 146
7.3 軟件工程方法學 147
7.3.1 結構化方法學 147
7.3.2 面向對象方法學 150
7.4 標準建模語言 153
7.4.1 標準建模語言UML的出現 153
7.4.2 UML的內容 154
7.4.3 UML的主要特點 157
7.4.4 UML的應用領域 158
7.5 統一開發過程 158
7.6 能力成熟度模型 161
7.7 軟件項目管理 163
7.7.1 計劃 163
7.7.2 組織 164
7.7.3 控制 164
7.7.4 國際標準 165
關鍵術語 166
思考與練習 166
第8章 信息系統 167
8.1 信息與信息系統 167
8.1.1 信息與數據 167
8.1.2 信息系統及其需求 168
8.2 信息管理技術的發展 169
8.2.1 人工管理階段:20世紀50年代以前 170
8.2.2 文件系統階段:20世紀50年代后期~60年代中期 170
8.2.3 數據庫系統階段 172
8.2.4 大數據階段 173
8.3 數據庫與數據庫系統 174
8.3.1 數據模型與數據庫 175
8.3.2 關系數據庫語言 179
8.3.3 數據庫系統的構成 180
8.4 基于數據庫的應用系統 182
8.4.1 數據庫應用系統分類 182
8.4.2 數據庫應用系統結構 183
8.4.3 數據庫應用系統設計 185
8.5 數據倉庫與數據挖掘技術 187
8.5.1 數據倉庫 187
8.5.2 數據挖掘技術 189
8.6 信息系統的展望 193
關鍵術語 194
思考與練習 195
第9章 人工智能 196
9.1 人工智能概述 196
9.1.1 人工智能定義 197
9.1.2 人工智能的研究方法 198
9.1.3 人工智能的研究目標 199
9.1.4 人工智能發展簡史 200
9.2 基于符號推理的傳統人工智能 206
9.2.1 知識表示 206
9.2.2 推理方法 208
9.2.3 匹配方法 210
9.2.4 沖突消解策略 210
9.2.5 搜索策略 211
9.3 基于連接機制的計算智能 212
9.3.1 計算智能基本概念 212
9.3.2 模糊計算 212
9.3.3 神經計算 214
9.3.4 進化計算 215
9.4 人工智能主要應用與研究領域 216
9.4.1 專家系統 216
9.4.2 機器學習 217
9.4.3 機器人 218
9.4.4 模式識別 219
9.4.5 計算機視覺 220
9.4.6 自然語言理解 221
9.4.7 自動定理證明 222
9.4.8 自動程序設計 223
9.4.9 博弈 223
9.4.10 智能決策支持系統 224
9.4.11 智能搜索 224
9.4.12 數據挖掘與知識發現 225
關鍵術語 225
思考與練習 226
第10章 圖形圖像和多媒體 227
10.1 計算機圖形學 227
10.1.1 計算機圖形學的發展 227
10.1.2 計算機圖形系統的組成和功能 229
10.1.3 圖形顯示系統 230
10.1.4 常用的圖形輸入/輸出設備 232
10.1.5 計算機圖形學研究的內容 234
10.1.6 計算機圖形學的應用 236
10.1.7 計算機圖形學的進展與展望 239
10.2 計算機圖像處理 241
10.2.1 圖像處理概述 241
10.2.2 數字圖像 243
10.2.3 圖像處理系統的硬件設備 246
10.2.4 數字圖像識別技術 248
10.2.5 數字水印技術 250
10.3 多媒體技術及其應用 252
10.3.1 多媒體技術的定義 252
10.3.2 多媒體的關鍵技術 253
10.3.3 多媒體系統 255
10.3.4 音頻處理技術 256
10.3.5 多媒體技術的應用 257
10.3.6 多媒體技術的發展方向 258
關鍵術語 259
思考與練習 259
第11章 計算機網絡 260
11.1 計算機網絡概述 260
11.2 計算機網絡的體系結構 262
11.3 計算機網絡硬件 264
11.4 集群、網格與云 266
11.4.1 集群 266
11.4.2 網格 266
11.4.3 云 267
11.5 網絡操作系統 267
11.5.1 網絡操作系統的分類 268
11.5.2 網絡操作系統的功能 268
11.5.3 Windows 269
11.5.4 UNIX 270
11.5.5 Linux 270
11.6 計算機網絡應用 271
11.6.1 萬維網 271
11.6.2 電子郵件 271
11.6.3 FTP 272
11.6.4 即時通信 272
11.6.5 博客 272
11.6.6 微博 273
11.6.7 微信 273
關鍵術語 273
思考與練習 274
第12章 計算機安全 275
12.1 計算機安全概述 275
12.1.1 研究內容 275
12.1.2 發展歷程 276
12.2 計算機密碼學 277
12.2.1 基本概念 278
12.2.2 密碼編碼學 279
12.2.3 密碼分析學 285
12.3 計算機病毒 286
12.3.1 計算機病毒概述 286
12.3.2 病毒分類 287
12.3.3 最新常見病毒介紹 289
12.3.4 病毒的檢測 290
12.3.5 病毒的防護 292
12.4 計算機網絡安全 292
12.4.1 網絡的特點及安全問題 293
12.4.2 網絡的數據加密 295
12.4.3 防火墻技術 297
12.4.4 虛擬專網技術 298
12.4.5 入侵檢測 300
12.4.6 了解黑客 303
關鍵術語 304
思考與練習 305
附錄 計算機發展大事記 307
主要參考文獻 318