本書首先從整體上介紹計算機科學的概念和內(nèi)涵,隨后就數(shù)據(jù)的表示與編碼、計算機體系結構、計算機硬件組成、數(shù)據(jù)結構與算法、程序設計語言、操作系統(tǒng)、數(shù)據(jù)庫與數(shù)據(jù)科學、軟件工程、計算機網(wǎng)絡、信息系統(tǒng)安全等內(nèi)容依次展開介紹,最后介紹計算機科學近年來的新發(fā)展。
全書邏輯清晰,從歷史和發(fā)展的角度來說,介紹了計算機科學發(fā)展過程中各階段的主要成果;從技術的角度來說,層層推進,將計算機整體結構由底層的數(shù)據(jù)表示和編碼逐步推進到上層的計算機操作系統(tǒng)、軟件和網(wǎng)絡。本書特別適合作為高等院校計算機相關專業(yè)的基礎課程教材和非計算機專業(yè)的公共基礎課程教材。
前 言
首先,感謝廣大讀者和采用《新編計算機科學概論》作為教材的教師!在你們的支持下,《新編計算機科學概論》第1版發(fā)行后不斷重印,發(fā)行數(shù)量已經(jīng)過萬。現(xiàn)在,在這幾年使用的基礎上,我們緊跟計算機科學的發(fā)展步伐,匯集教學實踐的寶貴經(jīng)驗,對《新編計算機科學概論》進行修訂,為讀者提供新的計算機科學領域知識。
在計算機科學發(fā)展突飛猛進,不斷改變?nèi)祟惿鐣慕裉,學習“計算機科學概論”課程將是一次美妙和激動人心的探索,可能為你今后從事任何充滿挑戰(zhàn)和令人興奮的IT職業(yè)奠定扎實的基礎。
計算機科學學科的發(fā)展充滿了挑戰(zhàn)和機遇,“計算機科學概論”課程是該學科的重要基礎。隨著計算機在各個領域的廣泛、深入應用,很多非計算機專業(yè)(包括非理工科專業(yè))都把“計算機科學概論”課程列為公共基礎課程之一。
作為基礎課程的教材,本書所設定的讀者可以既沒有計算機的應用經(jīng)驗,也不具備相關的計算機知識。即使是對計算機一無所知的人,也能夠通過學習本書獲取大量計算機科學的基本知識;已經(jīng)具備一定的計算機應用經(jīng)驗和相關知識的讀者,將在本書中發(fā)現(xiàn)很多有用的、更加深入的理論知識,以豐富計算機領域知識,提升自己的專業(yè)水平。
作為面向IT專業(yè)同時兼顧非IT專業(yè)的基礎課程教材,本書力求做到:知識體系完整,覆蓋面廣,內(nèi)容翔實,文風嚴謹,深入淺出,并且符合國內(nèi)高校的教學實踐需要。同時,本書緊跟時代潮流,在注重基礎知識的同時,介紹計算機科學在大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)、人工智能、元宇宙等領域的新發(fā)展和新應用。
最重要的一點是,本書在吸取國內(nèi)同類課程教學改革經(jīng)驗的基礎上,遵循高等學校大學計算機課程教學指導委員會發(fā)布的《大學計算機基礎課程教學基本要求》,同時大膽參考了國際計算機協(xié)會(ACM)推薦的CC和CS系列課程體系,與國際IT教材接軌,廣泛覆蓋了計算機科學的主要領域。
本書結構
本書是為“計算機科學概論/計算機科學導論”課程編寫的。這些課程將為計算機及相關專業(yè)的本科生勾畫出計算機科學的體系框架,為有志于從事IT行業(yè)的學生奠定計算機科學知識基礎,架設進一步深入學習專業(yè)理論的橋梁。本書強調對核心概念的認知而不是數(shù)學模型或技術細節(jié),通過大量的圖表、示例增強讀者對知識的理解和掌握,通過范例闡釋概念和相關模型,通過小結和習題幫助讀者掌握自己的學習情況。本書中提供的示例代碼可以不加修改,直接在Python環(huán)境中運行。
本書包括12章,各章的主要內(nèi)容如下:
第0章,緒論。本章從整體上介紹計算機科學的概念和內(nèi)涵,概要介紹計算機發(fā)展歷史,并分析計算機對現(xiàn)代社會的影響。
第1章,數(shù)據(jù)的表示與編碼。數(shù)據(jù)是計算機處理的基本元素,本章討論數(shù)據(jù)的內(nèi)涵、表示和運算,以及不同的數(shù)據(jù)編碼方式。
第2章,計算機體系結構。本章重點討論計算機的體系結構,從系統(tǒng)的角度介紹計算機系統(tǒng)的層次結構,進而從體系結構的角度分別分析計算機硬件系統(tǒng)和軟件系統(tǒng)的結構,并比較深入地討論了處理器結構。
第3章,計算機硬件組成。本章專門討論計算機硬件系統(tǒng)的組成,講述計算機主要硬件部分的原理、結構、實現(xiàn)和發(fā)展趨勢,討論主流計算機的常用硬件。
第4章,數(shù)據(jù)結構與算法。本章講解數(shù)據(jù)結構和算法的概念,包括算法的描述方法和基本結構,并討論了計算機中最常用的數(shù)據(jù)結構和算法。
第5章,程序設計語言。本章講述計算機程序設計語言的發(fā)展和分類,介紹程序設計語言的類型等基本知識,討論程序編譯的基本原理和過程。通過學習本章與第4章,讀者可以對計算機軟件設計有一定的認知。
第6章,操作系統(tǒng)。本章討論計算機的操作系統(tǒng),闡述操作系統(tǒng)的內(nèi)涵、功能、基本構成和運行原理。
第7章,從數(shù)據(jù)庫到數(shù)據(jù)科學。本章深入討論數(shù)據(jù)的豐富內(nèi)涵,闡述管理大量數(shù)據(jù)的數(shù)據(jù)庫方法的基本概念、原理,結合關系數(shù)據(jù)庫討論SQL的基本情況,介紹數(shù)據(jù)挖掘技術和數(shù)據(jù)倉庫的基本原理。本章還探討了大數(shù)據(jù)的內(nèi)涵和相關的存儲管理技術、可視化等技術,最后介紹數(shù)據(jù)科學。
第8章,軟件工程。本章討論規(guī);能浖_發(fā)方法,包括軟件過程、需求分析、軟件工程方法、軟件質量管理、軟件項目管理等內(nèi)容。
第9章,計算機網(wǎng)絡。本章從計算機網(wǎng)絡的形成與發(fā)展開始,講述計算機網(wǎng)絡體系結構、組建網(wǎng)絡和互聯(lián)網(wǎng)的基本技術及網(wǎng)絡應用,特別是近年快速發(fā)展的移動互聯(lián)網(wǎng)。
第10章,信息系統(tǒng)安全。本章從信息系統(tǒng)的安全威脅入手,講述信息安全威脅和常用的信息安全技術以及我國在信息安全方面的法制建設情況。
第11章,計算機科學新發(fā)展。本章介紹云計算、物聯(lián)網(wǎng)、區(qū)塊鏈、人工智能、虛擬現(xiàn)實等近年來發(fā)展迅速的計算機科學領域的熱點分支方向。
盡管本書包含的內(nèi)容較多,但實際的教學進度和授課內(nèi)容可以靈活確定,因為這取決于課堂教學的安排、讀者的實際技能及讀者對所討論主題的熟悉程度。教學課時數(shù)建議安排在40~60課時。
本書特色
本書特別有助于入門者學習。本書在講述理論知識的同時,注重理論發(fā)展的歷史背景、思考方法;在注重知識的系統(tǒng)性、完整性的同
目 錄
前言
第0章 緒論 1
0.1 計算機科學與計算思維 1
0.1.1 計算 1
0.1.2 計算思維 2
0.1.3 計算機科學 3
0.1.4 計算機與計算機模型 6
0.1.5 計算機科學中的經(jīng)典問題 7
0.2 計算機的歷史 10
0.2.1 計算機前傳 10
0.2.2 現(xiàn)代計算機 11
0.2.3 計算機的未來 16
0.3 計算機的分類 17
0.3.1 巨型機 17
0.3.2 大型機、中型機、小型機 18
0.3.3 微型機與工作站 18
0.4 計算機與社會 18
0.4.1 計算機與生活 19
0.4.2 有關計算機的倫理 20
0.4.3 與計算機有關的犯罪 21
0.5 計算機科學的發(fā)展 22
本章小結 23
附?:Python環(huán)境安裝指南 23
本章習題 28
第1章 數(shù)據(jù)的表示與編碼 31
1.1 數(shù)和數(shù)制 31
1.1.1 數(shù)字系統(tǒng) 31
1.1.2 計數(shù)與進制 32
1.1.3 二進制和位 34
1.1.4 八進制和十六進制 35
1.1.5 不同進制間的相互轉換 35
1.2 數(shù)值的表示與運算 39
1.2.1 整數(shù)的表示 39
1.2.2 實數(shù)的表示 42
1.2.3 位的算術運算 44
1.3 非數(shù)值信息的編碼 45
1.3.1 字符的編碼 46
1.3.2 靜態(tài)圖像的編碼 49
1.3.3 動態(tài)數(shù)據(jù)的編碼 51
本章小結 52
本章習題 53
第2章 計算機體系結構 56
2.1 計算機系統(tǒng)的多級層次結構 56
2.2 體系結構的基本概念 59
2.2.1 計算機體系結構 59
2.2.2 計算機組成 60
2.2.3 計算機實現(xiàn) 61
2.3 馮·諾依曼結構和哈佛結構 63
2.3.1 馮·諾依曼理論 63
2.3.2 馮·諾依曼體系結構 64
2.3.3 馮·諾依曼結構的演變 66
2.3.4 哈佛結構 67
2.3.5 改進型哈佛結構 67
2.4 處理器體系結構 67
2.4.1 指令系統(tǒng) 68
2.4.2 CISC結構 69
2.4.3 RISC結構 71
2.4.4 并行處理與流水線技術 73
2.5 計算機軟件系統(tǒng) 76
2.5.1 軟件的含義 76
2.5.2 軟件系統(tǒng)的組織 77
2.5.3 軟件的社會形態(tài) 79
本章小結 83
本章習題 84
第3章 計算機硬件組成 86
3.1 計算機硬件系統(tǒng)組成 86
3.2 處理器 86
3.2.1 運算器 87
3.2.2 控制器 89
3.2.3 摩爾定律與處理器的發(fā)展 90
3.3 存儲器 91
3.3.1 計算機的多級存儲系統(tǒng) 91
3.3.2 主存儲器和高速緩存 93
3.3.3 輔助存儲器 95
3.4 I/O設備 98
3.4.1 I/O設備的分類 99
3.4.2 常見輸入設備 99
3.4.3 常見輸出設備 100
3.5 總線與接口 102
3.5.1 總線 102
3.5.2 接口 104
本章小結 108
本章習題 109
第4章 數(shù)據(jù)結構與算法 111
4.1 概述 111
4.1.1 數(shù)據(jù)結構 111
4.1.2 算法 113
4.2 線性結構 117
4.2.1 線性表和串 117
4.2.2 棧和隊列 119
4.2.3 數(shù)組 120
4.3 非線性結構 120
4.3.1 樹 120
4.3.2 圖 123
4.4 抽象類型 124
4.4.1 指針 124
4.4.2 類與對象 125
4.5 基本算法 126
4.5.1 排序 126
4.5.2 查找 129
4.6 遞歸 130
本章小結 131
本章習題 132
第5章 程序設計語言 135
5.1 計算機語言的發(fā)展 135
5.1.1 自然語言與形式語言 136
5.1.2 機器語言與匯編語言 137
5.1.3 高級語言 138
5.1.4 腳本語言 139
5.2 程序設計語言的幾種范型 140
5.3 程序設計語言的語法元素和功能
??劃分 141
5.4 程序的生成和運行 146
5.4.1 編譯和解釋 146
5.4.2 程序設計環(huán)境 150
本章小結 151
本章習題 152
第6章 操作系統(tǒng) 155
6.1 操作系統(tǒng)概述 155
6.1.1 操作系統(tǒng)的內(nèi)涵 155
6.1.2 操作系統(tǒng)的功能 156
6.1.3 操作系統(tǒng)的分類 157
6.2 操作系統(tǒng)的運行 160
6.2.1 處理器管理與進程調度 160
6.2.2 存儲管理 166
6.3 文件系統(tǒng) 167
6.3.1 文件的基本概念 168
6.3.2 文件的結構與存取 168
6.3.3 文件的基本類型 171
6.3.4 文件的編碼與操作 173
6.4 設備管理與驅動 175
6.4.1 設備管理 175
6.4.2 驅動 176
6.5 典型操作系統(tǒng) 177
6.5.1 Windows系列 177
6.5.2 Mac OS系列 178
6.5.3 UNIX 178
6.5.4 從Linux到鴻蒙 179
6.5.5 智能手表操作系統(tǒng) 183
本章小結 183
本章習題 184
第7章 從數(shù)據(jù)庫到數(shù)據(jù)科學 187
7.1 數(shù)據(jù) 187
7.1.1 數(shù)據(jù)的內(nèi)涵 187
7.1.2 數(shù)據(jù)模型與維度 188
7.1.3 數(shù)據(jù)與信息 190
7.1.4 數(shù)據(jù)簡史 191
7.2 數(shù)據(jù)庫的基本概念 192
7.2.1 什么是數(shù)據(jù)庫 192
7.2.2 數(shù)據(jù)模型 196
7.2.3 數(shù)據(jù)字典 198
7.2.4 數(shù)據(jù)庫系統(tǒng) 198
7.3 關系數(shù)據(jù)庫及其運算 200
7.3.1 關系模型 200
7.3.2 結構化查詢語言 204
7.4 數(shù)據(jù)倉庫與數(shù)據(jù)挖掘 206
7.4.1 數(shù)據(jù)倉庫 206
7.4.2 數(shù)據(jù)挖掘 207
7.5 數(shù)據(jù)科學 212
7.5.1 大數(shù)據(jù) 212
7.5.2 大數(shù)據(jù)存儲與管理 216
7.5.3 大數(shù)據(jù)挖掘與可視化 218
7.5.4 認識數(shù)據(jù)科學 226
本章小結 228
本章習題 228
第8章 軟件工程 232
8.1 從軟件到軟件工程 232
8.1.1 再認識軟件 232
8.1.2 軟件工程的內(nèi)涵 233
8.2 軟件開發(fā)過程 235
8.2.1 軟件生命周期 235
8.2.2 軟件過程模型 236
8.3 軟件工程的方法與工具 238
8.3.1 結構化方法 238
8.3.2 面向對象的方法 242
8.3.3 計算機輔助軟件工程 245
8.4 軟件需求管理 247
8.4.1 軟件需求 247
8.4.2 需求分析 247
8.4.3 需求管理 249
8.5 軟件質量管理 250
8.5.1 軟件質量與評價 250
8.5.2 軟件評審與測試 252
8.6 軟件項目管理 254
8.6.1 項目管理內(nèi)容 254
8.6.2 項目管理過程 255
8.6.3 團隊 256
8.6.4 管理者 257
8.6.5 敏捷開發(fā) 258
本章小結 263
本章習題 264
第9章 計算機網(wǎng)絡 267
9.1 什么是計算機網(wǎng)絡 267
9.1.1 計算機網(wǎng)絡的歷史 267
9.1.2 計算機網(wǎng)絡的含義 268
9.1.3 計算機網(wǎng)絡的分類 269
9.2 計算機網(wǎng)絡體系結構 272
9.2.1 概述 272
9.2.2 OSI參考模型 273
9.2.3 TCP/IP模型 274
9.3 組建網(wǎng)絡 277
9.3.1 計算機網(wǎng)絡拓撲 277
9.3.2 網(wǎng)絡的物理組成 278
9.3.3 連接網(wǎng)絡 279
9.4 Internet及應用 280
9.4.1 Internet簡介 280
9.4.2 傳輸協(xié)議與地址 281
9.4.3 Internet應用 285
9.4.4 Internet發(fā)展新趨勢 288
9.5 移動互聯(lián)網(wǎng)技術及發(fā)展 289
9.5.1 蜂窩移動通信網(wǎng) 290
9.5.2 蜂窩移動通信網(wǎng)發(fā)展的基本
過程 293
本章小結 294
本章習題 295
第10章 信息系統(tǒng)安全 298
10.1 信息安全概述 298
10.1.1 安全威脅 298
10.1.2 對信息系統(tǒng)安全的理解 300
10.1.3 如何才能安全 301
10.2 數(shù)據(jù)加密 304
10.2.1 密碼學基礎 304
10.2.2 加密技術 305
10.3 計算機病毒 307
10.3.1 計算機病毒概論 308
10.3.2 計算機病毒的作用機理 309
10.3.3 計算機病毒的防治 311
10.4 防火墻與入侵檢測 313
10.4.1 防火墻 313
10.4.2 入侵檢測技術 315
本章小結 319
本章習題 320
第11章 計算機科學新發(fā)展 323
11.1 云計算 323
11.1.1 資源虛擬化 323
11.1.2 云計算的相關概念 325
11.1.3 云計算的技術特點 330
11.2 物聯(lián)網(wǎng) 331
11.2.1 物聯(lián)網(wǎng)的內(nèi)涵 331
11.2.2 物聯(lián)網(wǎng)系統(tǒng)的技術架構 333
11.2.3 物聯(lián)網(wǎng)的主要特點 335
11.3 區(qū)塊鏈 335
11.3.1 區(qū)塊鏈簡史 335
11.3.2 區(qū)塊鏈的基本概念 336
11.3.3 區(qū)塊鏈的特征 337
11.3.4 區(qū)塊鏈的關鍵技術 338
11.3.5 區(qū)域鏈的主要技術類型 340
11.4 人工智能 341
11.4.1 人工智能的概念 341
11.4.2 人工智能的基本發(fā)展過程 341
11.4.3 人工智能的研究內(nèi)容與層次 342
11.4.4 人工智能的主要學派和學科
??體系 343
11.4.5 人工智能的典型應用領域 345
11.5 從虛擬現(xiàn)實到元宇宙 347
11.5.1 虛擬現(xiàn)實及相關概念 347
11.5.2 虛擬現(xiàn)實的基本特征 351
11.5.3 虛擬現(xiàn)實的關鍵技術 352
11.5.4 虛擬現(xiàn)實技術的典型應用 354
11.5.5 元宇宙 355
本章小結 357
本章習題 357
參考文獻 360