《計算機科學導論(原書第3版)》是大學計算機相關專業的基礎課教材,涉及計算機科學的各個方面。本書著重講解基本概念而不是數學模型和技術細節,通過大量的圖表和演示范例講解計算機科學的基礎知識;每章后面的關鍵術語、小結和練習有助于讀者掌握和復習知識要點。本書內容豐富,通熟易懂,既適合當作大專院校的計算機基礎課教材,也可作為一般的計算機基礎入門讀物。
計算機在我們的日常生活中扮演了一個重要的角色,而且在未來也將一樣。計算機科學是一個充滿了挑戰和發展機遇的年輕學科。計算機網絡將處在地球上每一個角落的我們連接在一起。虛擬現實創造了炫目的三維圖像。宇宙空間探險的成功也部分歸功于計算機的發展。計算機創建的特技效果改變了電影行業。計算機在遺傳學研究中也扮演了一個重要的角色。
本書讀者對象這本書同時面向學術的和專業的讀者。本書可以作為感興趣的專業人士的自學指南。作為教材,本書包含一學期(semester)或一學季(quarter)的教學內容,是計算機科學的入門教程。
本書是基于美國計算機學會( ACM)推薦的CSO課程設計的。它從廣度上覆蓋了計算機科學所有的領域。其他領域的學生需要對計算機科學有大致的了解時,無論是從本書中選讀部分內容還是通讀全書,都有幫助。
第3版中的改動在本版中我進行了以下幾類修改。
1.修訂的章節和附錄針對教學目的,對本書中的兩章和附錄進行了全面的修訂。
(1)第6章為了更便于初次接觸計算機網絡的學生進行理解,第6章的內容采用自頂向下的教學方法進行修訂。
(2)第16章1.章節章節的作用是提供基本的學習材料,但并不是書中的每一個章節都對學生有利用價值。教這門課的老師可以自主選擇教學用的章節。我們會在后面提供一份教學指南。
出版者的話
譯者序
前言
第1章緒論
1.1圖靈模型
1.1.1數據處理器
1.1.2可編程數據處理器
1.1.3通用圖靈機
1.2馮·諾依曼模型
1.2.1 4個子系統
1.2.2存儲程序概念
1.2.3 指令的順序執行
1.3計算機組成部分
1.3.1計算機硬件
1.3.2數據
1.3.3計算機軟件
1.4歷史
1.4.1機械計算機器(1930年以前)
1.4.2 電子計算機的誕生(1930~
1950年)
1.4.3計算機的誕生(1950年至今)
1.5社會問題和道德問題
1.5.1社會問題
1.5.2道德問題
1.6計算機科學作為一門學科
1.7課程綱要
1.7.1 第一部分:數據的表示與運算
1.7.2第二部分:計算機硬件
1.7.3第三部分:計算機軟件
1.7.4第四部分:數據組織與抽象
1.7.5第五部分:高級話題
1.8章末材料
1.9練習
第2章數字系統
2.1引言
2.2位置化數字系統
2.2.1 十進制系統(以10為底)
2.2.2二進制系統(以2為底)
2.2.3 十六進制系統(以16為底)
2.2.4八進制系統(以8為底)
2.2.5 4種位置化數字系統的小結
2.2.6轉換
2.3非位置化數字系統
2.4章末材料
2.5練習
第3章數據存儲
3.1數據類型
3.2存儲數字
3.2.1存儲整數
3.2.2 3種系統的比較
3.2.3 實數
3.3存儲文本
3.4存儲音頻
3.4.1.采樣
3.4.2量化
3.4.3編碼
3.4.4聲音編碼標準
3.5存儲圖像
3.5.1光柵圖
3.5.2矢量圖
3.6存儲視頻
3.7章末材料
3.8練習
第4章數據運算
4.1邏輯運算
4.1.1位層次上的邏輯運算
6.7.1導向介質
6.7.2非導向介質
6.8章末材料
6.9練習
第7章操作系統
7.1引言
7.1.1操作系統
7.1.2自舉過程
7.2演化
7.2.1批處理系統
7.2.2分時系統
7.2.3個人系統
7.2.4并行系統
7.2.5分布式系統
7.2.6實時系統
7.3組成部分
7.3.1 用戶界面
7.3.2 內存管理器
7.3.3進程管理器
7.3.4 文件管理器
7.4主流操作系統
7.4.1 UNIX
7.4.2 Linux
7.4-3 WindOWS
7.5章末材料
7.6練習
第8章算法
8.1概念
8.1.1 非正式定義
8.1.2定義動作
8.1.3細化
8 .1.4泛化
8.2三種結構
8.2.1順序
8.2.2一判斷
8.2.3循環
8.3算法的表示
8.3.1 UML
8.3.2偽代碼
8.4更正式的定義
8.4.1定義良好
8.4.2明確步驟
8.4.3產生結果
8.4.4在有限的時間內終止
8.5基本算法
8.5.1求和
8.5.2乘積
8.5.3 最大和最小
8.5.4排序
8.5.5查找
8.6子算法
8.7遞歸
8.7.1迭代的定義
8.7.2遞歸的定義
8.8章末材料
8.9練習
第9章程序設計語言
9.1演化
9.1.1機器語言
9.1.2匯編語言
9.1.3 高級語言
9.2翻譯
9.2.1編譯
9.2.2解釋
9.2.3 翻譯過程
9.3編程模式
9.3.1過程式模式
9.3.2面向對象模式
9.3.3 函數式模式
9.3.4說明式模式
9.4共同概念
9.4.1標識符
9.4.2數據類型
9.4.3語句
9.5章末材料
9.6練習
第10章軟件工程
10.1軟件生命周期
10.2分析階段
10.2.1 面向過程分析
10.2.2 面向對象分析
10.3設計階段
10.3.1 面向過程設計
10.3.2 面向對象設計
10.4實現階段
10.4.1語言的選擇
10.4.2軟件質量
10.5測試階段
10.5.1 白盒測試
10.5.2黑盒測試
10.6文檔
10.6.1用戶文檔
10.6.2 系統文檔
10.6.3技術文檔
10.7章末材料
10.8練習 一
第11章數據結構
11.1數組
11.1.1數組名與元素名
11.1.2多維數組
11.1.3存儲配置
11.1.4數組操作
11.1.5數組的應用
11.2記錄
11.2.1 記錄名與域名
11.2.2記錄與數組的比較
11.2.3記錄數組
11.2.4數組與記錄數組
11.3鏈表
11.3.1數組與鏈表
11.3.2鏈表名與節點名
11.3.3鏈表操作
11.3.4鏈表的應用
11.4章末材料
11.5練習
第1 2章抽象數據類型
12.1背景
12.1.1 簡單抽象數據類型
12.1.2復雜抽象數據類型
12.1.3定義
12.1.4抽象數據類型的模型
12.1.5實現
12.2棧
12.2.1棧的操作
12.2.2棧的抽象數據類型
12.2.3棧的應用
12.2.4棧的實現
12.3隊列
12.3.1 隊列的操作
12.3.2隊列抽象數據類型
12.3.3 隊列的應用
12.3.4 隊列的實現
12.4廣義線性表
12.4.1 廣義線性表的操作
12.4.2廣義線性表的抽象數據類型
12.4.3 廣義線性表的應用
12.4.4廣義線性表的實現
12.5樹
12.5.1二叉樹
12.5.2二叉樹的操作
12.5.3二叉樹的應用
12.5.4二叉樹的實現
12.5.5二叉搜索樹
12.5.6二叉搜索樹的抽象數據
類型
12.5.7二叉搜索樹的實現
12.6 圖
12.7章末材料
12.8練習
第1 3章文件結構
13.1引言
13.¨順序存取
13.1.2隨機存取
13.2順序文件
13.3索引文件
13.4散列文件
13.4.1散列方法
13.4.2沖突
13.5目錄
13.6文本文件與二進制文件
13.6.1文本文件
13.6.2二進制文件
13.7章末材料
13.8練習
第14章數據庫
14.1引言
14.1.1定義
14.1.2數據庫的優點
14.1.3數據庫管理系統
14.2數據庫體系結構
14.2.1 內層
14.2.2概念層
14.2.3外層 一
14.3數據庫模型
14.3.1層次模型
14.3.2 網狀模型
14.3.3 關系模型
14.4關系數據庫模型
14.5關系的操作
14.5.1 結構化查詢語言
14.5.2插入
14.5.3刪除
14.5.4更新
14.5.5選擇
14.5.6投影
14.5.7連接
14.5.8并
14.5.9交
14.5.10差
14.6數據庫設計
14.6.1 實體關系模型
14.6.2從E-R圖至0關系
14.6.3規范化
14.7其他數據庫模型
14.8章末材料
14.9練習
第1 5章數據壓縮
15.1引言
15.2無損壓縮
15.2.1 游程長度編碼
15.2.2赫夫曼編碼
15.2.3 LempelZiv編碼
15.3有損壓縮方法
15.3.1 圖像壓縮:JPEG-
15.3.2視頻壓縮:MPEG
15.3.3 音頻壓縮
15.4章末材料
15.5練習
第16章安全
16.1引言
16.1.1安全目標
16.1.2攻擊
16.1.3服務和技術
16.2機密性
16.2.1 對稱密鑰密碼術
16.2.2非對稱密鑰密碼術
16.3其他安全服務
16.3.1 消息完整性
16.3.2消息驗證
16.3.3數字簽名
16.3.4實體驗證
16.3.5 密鑰管理
16.4防火墻
16.4.1 包過濾防火墻
16.4.2代理防火墻
16.5章末材料
16.6練習
第1 7章計算理論
17.1引言
?17.2簡單語言
17.2.1遞增語句
17.2.2遞減語句
17.2.3循環語句
17.2.4 簡單語言的威力
17.3圖靈機
17.3.1 圖靈機組成部件
17.3.2對簡單語言的模擬
17.3.3邱奇一圖靈論題
17.4歌德爾數
17.4.1表示一個程序
17.4.2翻譯一個數字
17.5停機問題
17.6問題的復雜度
17.6.1 不可解問題
17.6.2可解問題
17.7章末材料
17.8練習
第1 8章人工智能
18.1引言
18.1.1什么是人工智能
18.1.2人工智能簡史
18.1.3 圖靈測試
18.1.4智能體
18.1.5編程語言
18.2知識表示
18.2.1語義網
18.2.2框架
18.2.3謂詞邏輯
18.2.4基于規則的系統
18.3專家系統
18.3.1抽取知識
18.3.2抽取事實
18.3.3體系結構
18.4感知 -
18.4.1圖像處理
18.4.2語言理解
18.5搜索 -
18.6神經網絡
18.6.1 生物神經元
18.6.2感知器
18.6.3多層網絡
18.6.4應用
18.7章末材料
18.8練習
附錄A Unicode
附錄B UML
附錄C偽代碼
附錄D結構圖
附錄E布爾代數和邏輯電路
附錄FC、C++和Java程序示例
附錄G數學知識
附錄H誤差檢測和校正
縮略語
術語表