內(nèi)容簡介
本書結(jié)合理論講解和實際應(yīng)用,嚴(yán)格按照教育部高教司主持評審的《中國計算機科學(xué)與技術(shù)學(xué)科教程2002》進(jìn)行編寫,并參照美國計算機學(xué)會和美國電氣和電子工程師協(xié)會的計算教程(Computing Curricula,CC),對計算機科學(xué)與技術(shù)進(jìn)行系統(tǒng)化和科學(xué)化闡述。本書具體介紹了計算機體系結(jié)構(gòu)與組織、程序設(shè)計語言、程序設(shè)計基礎(chǔ)、算法與復(fù)雜性、信息管理、軟件工程、操作系統(tǒng)、網(wǎng)絡(luò)計算、圖形學(xué)和可視化計算、人機交互、離散結(jié)構(gòu)、數(shù)值計算科學(xué)、智能系統(tǒng)、社會和職業(yè)問題等14個核心體,目的是讓讀者了解計算機科學(xué)與技術(shù)學(xué)科的全貌。本書每章后均配有一定量的習(xí)題,以便讀者鞏固所學(xué)知識。
本書既可作為高等學(xué)校計算機專業(yè)學(xué)生的專業(yè)基礎(chǔ)課程教材,也可作為網(wǎng)絡(luò)工程、信息安全、物聯(lián)網(wǎng)工程、通信工程、電子科學(xué)與技術(shù)、自動化等相關(guān)專業(yè)學(xué)生的計算機教材。
前 言
“計算機科學(xué)導(dǎo)論”是計算機專業(yè)學(xué)生進(jìn)入大學(xué)學(xué)習(xí)的第一門專業(yè)基礎(chǔ)課程,其目的在于用統(tǒng)一的思想,對該學(xué)科進(jìn)行系統(tǒng)化和科學(xué)化闡述,讓學(xué)生認(rèn)識計算機科學(xué)與技術(shù)學(xué)科的本質(zhì)。本書按照教育部高教司主持評審的《中國計算機科學(xué)與技術(shù)學(xué)科教程2002》進(jìn)行編寫,并參照美國計算機學(xué)會(Association for Computing Machinery,ACM)和美國電氣和電子工程師協(xié)會(Institute of Electrical and Electronic Engineers,IEEE)的計算教程2015,用邏輯嚴(yán)密的編寫方式將讀者引入本學(xué)科各個富有挑戰(zhàn)性的領(lǐng)域之中。本書介紹了計算機體系結(jié)構(gòu)與組織、程序設(shè)計語言、程序設(shè)計基礎(chǔ)、算法與復(fù)雜性、信息管理、軟件工程、操作系統(tǒng)、網(wǎng)絡(luò)計算、圖形學(xué)和可視化計算、人機交互、離散結(jié)構(gòu)、數(shù)值計算科學(xué)、智能系統(tǒng)、社會和職業(yè)問題等14個核心體,力求讓讀者對計算機科學(xué)與技術(shù)專業(yè)有比較深入的了解,樹立專業(yè)學(xué)習(xí)的責(zé)任感和自豪感。
本書是在《計算機科學(xué)導(dǎo)論》(第4版)的基礎(chǔ)上進(jìn)行修訂的,主要修訂內(nèi)容有:刪減了一些復(fù)雜的理論知識,增加了云計算與物聯(lián)網(wǎng)、大數(shù)據(jù)分析、互聯(lián)網(wǎng)+、數(shù)字地球、智慧城市、電子商務(wù)、智能家居、智能交通、3D打印技術(shù)、微博、微信等內(nèi)容。本書介紹了計算機科學(xué)與技術(shù)的核心內(nèi)容,使讀者理解計算機系統(tǒng)的信息處理本質(zhì),掌握數(shù)據(jù)表達(dá)和數(shù)據(jù)加工表達(dá)的層次方法,了解計算機系統(tǒng)的功能組成,認(rèn)識計算機科學(xué)與技術(shù)對人類社會的重要推動作用。
本書內(nèi)容由淺入深、結(jié)構(gòu)嚴(yán)謹(jǐn),力求避免內(nèi)容重復(fù)、結(jié)構(gòu)松散等弊病。由于本書涉及的內(nèi)容繁多,各高校任課教師可根據(jù)學(xué)生的情況,在學(xué)習(xí)本書時適當(dāng)調(diào)整學(xué)時,對其中的一些章節(jié)也可以根據(jù)各高校的實際情況選用。本書配備有電子教案,任課教師可根據(jù)學(xué)生的實際情況進(jìn)行修改。本書的電子教案、課程大綱、授課計劃、習(xí)題答案可以到清華大學(xué)出版社網(wǎng)站下載,也可以向作者索取。
本書由瞿中任主編,伍建全、熊安萍、夏淑芳任副主編。碩士研究生劉帥、柴國華、鞠芳蓉、陳宇翔、徐夢茹、吳戈、耿明月、王騰鋒、張玲、黃旭、危學(xué)明、陳思琪、徐芳琳、曹悅欣、劉京、呂磊、王升燁等提供了大量的資料,本科生劉妍、王子君、張真箏、夏少文、劉寶陽、朱嘉杰等人參與了文字校對工作,并對書中的實例及圖表進(jìn)行了校對。
書中介紹了部分著名學(xué)者的成果,如Alan Mathison Turing、John von Neumann、Andrew Chi-Chih Yao、華羅庚等,還采用了一些學(xué)者的照片,以豐富本書的內(nèi)容,在此向這些學(xué)者表示感謝。本書的順利出版,得到了各級領(lǐng)導(dǎo)的大力支持和幫助,以及計算機界眾多學(xué)者的關(guān)心,在此一并致謝。
由于計算機科學(xué)與技術(shù)的發(fā)展迅速以及受作者水平所限,書中難免存在疏漏之處,懇請廣大讀者特別是同行批評指正。在使用本書過程中遇到任何問題,或者有好的意見和建議,請與編者聯(lián)系,以便今后更好地修訂本書,為廣大讀者服務(wù)。編者聯(lián)系方式:quzhong@hotmail.com。
編 者
目 錄
第1章 概述 11.1 計算的起源 11.2 計算機的產(chǎn)生和發(fā)展階段 31.2.1 計算機產(chǎn)生之前的計算歷史 31.2.2 計算機的產(chǎn)生 81.2.3 計算機的發(fā)展階段 181.2.4 中國計算機的發(fā)展歷程 191.3 計算機的應(yīng)用領(lǐng)域和發(fā)展趨勢 221.3.1 計算機的應(yīng)用領(lǐng)域 221.3.2 計算機的發(fā)展趨勢 241.4 計算學(xué)科 261.4.1 計算學(xué)科的定義 261.4.2 計算學(xué)科的本質(zhì) 261.4.3 計算學(xué)科的三個過程 271.4.4 計算學(xué)科新的應(yīng)用領(lǐng)域 271.5 計算機科學(xué)與技術(shù)學(xué)科的知識體系 291.5.1 計算機科學(xué)與技術(shù)學(xué)科的形成與發(fā)展 291.5.2 計算機科學(xué)與技術(shù)學(xué)科的定義 301.5.3 計算機科學(xué)與技術(shù)學(xué)科的根本問題及研究范疇 301.5.4 計算機科學(xué)課程體系的核心內(nèi)容 301.6 計算機科學(xué)與技術(shù)學(xué)科的教育 331.6.1 教育的目的和基本要求 331.6.2 工科還是理科 331.6.3 理論與實踐相結(jié)合 341.6.4 創(chuàng)新能力培養(yǎng) 351.6.5 學(xué)習(xí)方法 351.7 信息化的挑戰(zhàn) 361.8 計算機產(chǎn)業(yè) 36本章小結(jié) 37習(xí)題 37第2章 計算機體系結(jié)構(gòu)與組織 402.1 數(shù)值數(shù)據(jù) 402.1.1 數(shù)的表示及數(shù)制轉(zhuǎn)換 402.1.2 數(shù)的原碼、反碼和補碼 452.1.3 定點數(shù)和浮點數(shù) 472.1.4 十進(jìn)制數(shù)的編碼 492.2 非數(shù)值數(shù)據(jù) 502.2.1 文字信息的編碼 502.2.2 聲音的編碼 522.2.3 圖形數(shù)據(jù)的編碼 522.3 數(shù)據(jù)的機器編碼 532.3.1 數(shù)據(jù)的機器級編碼 532.3.2 數(shù)據(jù)的匯編級編碼 542.4 數(shù)字邏輯與數(shù)字系統(tǒng) 542.4.1 基本邏輯關(guān)系及邏輯門 542.4.2 邏輯代數(shù)與邏輯函數(shù) 562.5 計算機系統(tǒng)的組成 592.5.1 圖靈模型 592.5.2 馮·諾依曼模型 602.5.3 計算機系統(tǒng)的組成 612.5.4 計算機的硬件系統(tǒng) 612.5.5 計算機的軟件系統(tǒng) 662.5.6 計算機的特點 662.5.7 計算機系統(tǒng)主要的技術(shù)指標(biāo) 672.5.8 計算機的分類 682.5.9 計算機的基本工作方式 682.6 存儲系統(tǒng)的結(jié)構(gòu) 692.6.1 存儲器的分類 692.6.2 存儲系統(tǒng)的組織結(jié)構(gòu) 702.7 輸入/輸出系統(tǒng) 712.8 多核技術(shù) 712.9 高性能計算機 722.10 并行計算機 722.11 分布式系統(tǒng) 73本章小結(jié) 73習(xí)題 73第3章 程序設(shè)計語言 763.1 程序設(shè)計語言概述 763.1.1 程序的概念 763.1.2 計算機程序設(shè)計語言 763.1.3 高級語言程序設(shè)計的基本內(nèi)容 793.1.4 高級語言的數(shù)據(jù)表示手段 813.2 聲明和類型 833.3 類型系統(tǒng) 833.4 編譯原理 833.4.1 編譯程序概述 833.4.2 詞法分析 853.4.3 語法分析 853.4.4 語義處理 863.4.5 中間代碼生成 873.4.6 中間代碼優(yōu)化 873.4.7 目標(biāo)代碼生成 883.4.8 編譯技術(shù)的新發(fā)展 883.5 程序設(shè)計語言的設(shè)計 89本章小結(jié) 89習(xí)題 89第4章 程序設(shè)計基礎(chǔ) 924.1 程序設(shè)計 924.2 程序設(shè)計方法 924.2.1 結(jié)構(gòu)化程序設(shè)計方法 934.2.2 面向?qū)ο蟮某绦蛟O(shè)計方法 954.2.3 函數(shù)程序設(shè)計 984.2.4 程序設(shè)計風(fēng)格 994.2.5 程序設(shè)計舉例 1004.3 基本數(shù)據(jù)結(jié)構(gòu) 1014.3.1 基本概念 1014.3.2 幾種典型的數(shù)據(jù)結(jié)構(gòu) 1024.3.3 查找 1064.3.4 排序 1074.4 事件驅(qū)動程序設(shè)計 109本章小結(jié) 110習(xí)題 110第5章 算法與復(fù)雜性 1125.1 算法分析 1125.1.1 算法 1125.1.2 算法的特性 1135.2 常用算法 1145.3 算法描述工具 1165.4 算法的評價 1185.5 算法設(shè)計策略 1195.6 分布式算法 1195.7 可計算性理論基礎(chǔ) 1205.8 NP問題 1205.9 自動機理論 1215.10 加密算法 1215.11 幾何算法 1225.12 并行算法 123本章小結(jié) 123習(xí)題 123第6章 信息管理 1256.1 模型與信息系統(tǒng) 1256.1.1 信息 1256.1.2 信息模型 1256.1.3 信息系統(tǒng) 1266.2 數(shù)據(jù)庫系統(tǒng) 1266.2.1 數(shù)據(jù)庫 1266.2.2 數(shù)據(jù)管理技術(shù)的發(fā)展 1276.2.3 數(shù)據(jù)模型 1286.3 關(guān)系數(shù)據(jù)庫 1316.3.1 關(guān)系數(shù)據(jù)庫 1316.3.2 關(guān)系模型與關(guān)系模式 1326.4 數(shù)據(jù)庫查詢語言SQL 1356.4.1 SQL的特點 1356.4.2 SQL的功能 1356.4.3 SQL的基本概念 1366.5 關(guān)系數(shù)據(jù)庫設(shè)計 1366.5.1 關(guān)系數(shù)據(jù)庫的設(shè)計原則 1366.5.2 關(guān)系數(shù)據(jù)庫的設(shè)計步驟 1366.6 數(shù)據(jù)庫管理 1376.6.1 DBA和數(shù)據(jù)字典 1376.6.2 數(shù)據(jù)庫的安全性控制 1386.6.3 事務(wù)處理 1386.6.4 數(shù)據(jù)庫的完整性控制 1396.7 常用數(shù)據(jù)庫管理系統(tǒng) 1396.8 數(shù)據(jù)庫的新發(fā)展 1416.8.1 分布式數(shù)據(jù)庫 1416.8.2 空間數(shù)據(jù)庫 1416.8.3 多媒體數(shù)據(jù)庫 1416.8.4 數(shù)據(jù)倉庫 1426.8.5 信息存儲與檢索 1426.8.6 超文本和超媒體 1426.8.7 多媒體信息與多媒體系統(tǒng) 1436.8.8 數(shù)字圖書館 1436.8.9 數(shù)字地球與智慧城市 144本章小結(jié) 144習(xí)題 145第7章 軟件工程 1477.1 軟件工程 1477.1.1 軟件危機 1477.1.2 軟件工程的基本概念 1487.1.3 軟件工程過程 1507.1.4 軟件生命周期 1507.2 軟件開發(fā)模型 1527.2.1 瀑布模型 1527.2.2 快速原型法模型 1537.2.3 螺旋模型 1547.2.4 噴泉模型 1557.2.5 轉(zhuǎn)換模型 1567.2.6 智能模型 1577.3 軟件開發(fā)方法 1577.3.1 面向數(shù)據(jù)結(jié)構(gòu)方法 1577.3.2 統(tǒng)一建模語言 1587.3.3 軟件復(fù)用和構(gòu)件技術(shù) 1587.4 軟件質(zhì)量評價和保證 1607.4.1 軟件質(zhì)量的定義 1607.4.2 軟件質(zhì)量的度量和評價 1607.4.3 軟件質(zhì)量保證 1617.5 軟件復(fù)雜性 1627.5.1 軟件復(fù)雜性的基本概念 1627.5.2 軟件復(fù)雜性的度量方法 1637.6 軟件項目管理 1637.6.1 軟件項目計劃概要 1637.6.2 軟件項目計劃的內(nèi)容 1637.6.3 軟件工程規(guī)范 1647.6.4 軟件開發(fā)成本估算 1647.6.5 風(fēng)險分析 1647.6.6 軟件項目進(jìn)度安排 1657.7 軟件可靠性 1667.7.1 軟件可靠性的定義 1667.7.2 軟件可靠性的指標(biāo) 1667.7.3 軟件可靠性的模型 1677.8 軟件評審 1677.8.1 設(shè)計質(zhì)量的評審內(nèi)容 1677.8.2 程序質(zhì)量的評審內(nèi)容 1687.9 容錯軟件技術(shù) 1697.9.1 容錯軟件的定義 1697.9.2 容錯的一般方法 1697.9.3 容錯軟件的設(shè)計過程 1707.10 軟件工程環(huán)境 1707.10.1 軟件開發(fā)環(huán)境 1707.10.2 軟件開發(fā)環(huán)境的分類 1717.10.3 軟件工具的基本概念 1727.10.4 計算機輔助軟件工程 173本章小結(jié) 173習(xí)題 174第8章 操作系統(tǒng) 1768.1 操作系統(tǒng) 1768.1.1 操作系統(tǒng)的概念 1768.1.2 操作系統(tǒng)的基本組成 1798.1.3 操作系統(tǒng)在計算機系統(tǒng)中的地位 1798.1.4 操作系統(tǒng)的啟動 1808.2 操作系統(tǒng)的發(fā)展 1808.2.1 手工操作階段 1808.2.2 批處理系統(tǒng)階段 1818.2.3 多道程序系統(tǒng)階段 1828.2.4 現(xiàn)代操作系統(tǒng)階段 1828.3 操作系統(tǒng)的分類 1838.4 操作系統(tǒng)的功能 1848.4.1 資源管理功能 1848.4.2 擴展的虛擬機功能 1858.4.3 網(wǎng)絡(luò)操作系統(tǒng)的功能 1858.5 操作系統(tǒng)的體系結(jié)構(gòu) 1868.6 并發(fā)性 1878.7 調(diào)度與分派 1878.8 安全與保護(hù) 1878.9 文件系統(tǒng) 1898.10 容錯 1898.11 系統(tǒng)性能評價 1908.12 腳本 1918.13 主流操作系統(tǒng) 1918.13.1 Windows操作系統(tǒng) 1918.13.2 UNIX操作系統(tǒng) 1928.13.3 Linux操作系統(tǒng) 1938.13.4 蘋果操作系統(tǒng) 1938.14 操作系統(tǒng)的新發(fā)展 194本章小結(jié) 195習(xí)題 195第9章 網(wǎng)絡(luò)計算 1979.1 通信與組網(wǎng) 1979.1.1 數(shù)據(jù)通信的基本概念 1979.1.2 數(shù)據(jù)通信的方式 1989.1.3 數(shù)據(jù)傳輸?shù)姆绞?span id="epizqqp1gsyu" class="Apple-tab-span" style="white-space:pre"> 2019.2 計算機網(wǎng)絡(luò) 2019.2.1 計算機網(wǎng)絡(luò)的起源 2019.2.2 計算機網(wǎng)絡(luò)的定義 2039.2.3 計算機網(wǎng)絡(luò)的主要部件 2049.2.4 計算機網(wǎng)絡(luò)的傳輸媒體 2049.2.5 計算機網(wǎng)絡(luò)的分類 2079.2.6 計算機網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu) 2099.2.7 計算機網(wǎng)絡(luò)的體系結(jié)構(gòu) 2119.2.8 計算機網(wǎng)絡(luò)間的互聯(lián) 2129.3 Internet和TCP/IP協(xié)議 2129.3.1 Internet的起源及發(fā)展 2129.3.2 TCP/IP協(xié)議 2139.3.3 IP地址 2149.3.4 Internet提供的主要服務(wù) 2169.3.5 Intranet 2189.4 網(wǎng)絡(luò)管理 2189.4.1 網(wǎng)絡(luò)管理基礎(chǔ) 2189.4.2 網(wǎng)絡(luò)管理功能 2199.4.3 Internet的管理信息庫 2199.4.4 網(wǎng)絡(luò)管理協(xié)議 2199.5 移動通信與無線上網(wǎng) 2209.6 網(wǎng)絡(luò)安全 2209.6.1 網(wǎng)絡(luò)安全的基本問題 2209.6.2 網(wǎng)絡(luò)安全的內(nèi)容 2219.6.3 數(shù)據(jù)加密技術(shù) 2229.6.4 防病毒技術(shù) 2239.6.5 防火墻技術(shù) 2239.7 網(wǎng)格計算 2249.8 云計算與物聯(lián)網(wǎng) 2259.9 互聯(lián)網(wǎng)+ 227本章小結(jié) 228習(xí)題 229第10章 圖形學(xué)和可視化計算 23110.1 圖形學(xué)的基本概念 23110.1.1 計算機圖形信息的處理 23110.1.2 計算機圖形學(xué)的起源 23210.1.3 計算機圖形學(xué)主要研究的內(nèi)容 23210.1.4 計算機圖形學(xué)的應(yīng)用 23310.1.5 計算機圖形的標(biāo)準(zhǔn)化 23410.2 圖形系統(tǒng) 23510.3 計算機視覺和可視化 23610.3.1 人的視覺 23610.3.2 計算機視覺 23710.3.3 可視化 23710.4 圖形用戶界面 23710.5 圖像通信 23810.6 幾何建模 23810.7 計算機動畫 23810.8 虛擬現(xiàn)實 23910.9 3D打印 240本章小結(jié) 240習(xí)題 241第11章 人機交互 24211.1 人機交互 24211.1.1 人機交互技術(shù) 24211.1.2 人機交互模型 24311.1.3 人機系統(tǒng)交互界面的構(gòu)架 24411.1.4 人機界面的設(shè)計 24611.1.5 數(shù)據(jù)交互 24811.1.6 語音交互 24911.1.7 圖像交互 25011.1.8 行為交互 25011.2 多媒體技術(shù) 25011.2.1 多媒體技術(shù)概述 25011.2.2 多媒體技術(shù)的應(yīng)用 251本章小結(jié) 252習(xí)題 252第12章 離散結(jié)構(gòu) 25412.1 離散結(jié)構(gòu)的研究對象及主要內(nèi)容 25412.1.1 離散結(jié)構(gòu)的研究對象 25412.1.2 離散結(jié)構(gòu)研究的主要內(nèi)容 25412.2 數(shù)理邏輯 25512.2.1 命題邏輯 25512.2.2 謂詞邏輯 25912.3 集合論 26112.3.1 集合的基本概念與運算 26112.3.2 關(guān)系與函數(shù) 26312.4 代數(shù)結(jié)構(gòu) 26712.4.1 代數(shù)結(jié)構(gòu)概述 26712.4.2 格與布爾代數(shù) 26912.5 圖論 27012.5.1 圖的基本概念 27012.5.2 路徑、回路及連通性 27212.5.3 圖的矩陣表示 27312.6 離散概率 274本章小結(jié) 275習(xí)題 275第13章 數(shù)值計算科學(xué) 27813.1 高性能計算 27813.2 數(shù)值分析 27913.3 運籌學(xué) 28013.4 數(shù)學(xué)建模與計算機模擬 281本章小結(jié) 282習(xí)題 282第14章 智能系統(tǒng) 28414.1 人工智能系統(tǒng) 28414.1.1 人工智能 28414.1.2 人工智能的研究與應(yīng)用領(lǐng)域 28514.2 知識表示及推理 28814.2.1 知識與知識表示 28814.2.2 經(jīng)典推理技術(shù) 28914.2.3 高級知識推理技術(shù) 29014.3 搜索技術(shù) 29214.4 自然語言處理 29214.4.1 語言及其理解 29214.4.2 句法和語義的分析 29314.4.3 機器翻譯 29314.5 計算智能 29414.5.1 計算智能概述 29414.5.2 遺傳算法 29514.5.3 群體智能 29514.5.4 人工神經(jīng)網(wǎng)絡(luò) 29614.6 機器學(xué)習(xí) 29614.7 智能技術(shù) 29714.8 大數(shù)據(jù)分析 298本章小結(jié) 298習(xí)題 299第15章 社會和職業(yè)問題 30015.1 計算的社會背景 30015.2 計算機與道德 30115.2.1 道德的哲學(xué)含義 30115.2.2 道德選擇 30115.2.3 道德評價 30115.2.4 計算機專業(yè)人員的職業(yè)道德準(zhǔn)則 30215.2.5 計算機用戶的道德 30215.3 基于計算機系統(tǒng)的風(fēng)險與責(zé)任 30315.4 知識產(chǎn)權(quán) 30415.5 隱私與公民自由 30615.6 計算機犯罪 30715.7 團(tuán)隊合作 30815.8 哲學(xué)框架 310本章小結(jié) 310習(xí)題 311參考文獻(xiàn) 313