本書以計算機系統(tǒng)層次為主線,基本按照從底層硬件到高層應(yīng)用的順序,深入淺出地介紹計算機主要知識領(lǐng)域的基本內(nèi)容。本書層次清晰,知識系統(tǒng),內(nèi)容翔實,重點突出,兼顧理論性與實用性;同時剔除陳舊知識,增添部分前沿內(nèi)容。本書可作為普通高等學校計算機科學與技術(shù)、軟件工程、網(wǎng)絡(luò)工程、信息安全、數(shù)字媒體技術(shù)、人工智能等專業(yè)以及相近專業(yè)的本科生教材,也可供相關(guān)科技人員參考。
《計算機導論(微課視頻版)》系統(tǒng)展示計算機科學的全貌;內(nèi)容翔實、層次清晰、知識框架明確、重點突出,兼顧大數(shù)據(jù)和人工智能等內(nèi)容。
全書通過大量圖表生動講解了計算機領(lǐng)域的基礎(chǔ)核心知識,同時配套大量資源——微課視頻(20個)、課件、學習建議、大綱與教案、習題答案、試卷(2套)、實驗指導(7個),助力讀者高效掌握《計算機導論(微課視頻版)》內(nèi)容,極具可讀性。
21世紀是高速發(fā)展的信息化時代,計算機應(yīng)用不斷深入并與其他學科相結(jié)合,相關(guān)知識領(lǐng)域不斷擴大。“計算機導論”作為計算機類專業(yè)的入門課程,需要介紹的知識在不斷增加,但相應(yīng)的學時可能還在減少。為了適應(yīng)信息產(chǎn)業(yè)新技術(shù)的發(fā)展,滿足普通高等院校提高教學質(zhì)量的需要,高校教學和學習的教材必須與時代同步并不斷更新。
本書主要面向計算機大類各專業(yè)學生。大多數(shù)學生在最初的學習中可能有一個誤解,以為計算機專業(yè)就是熟練使用常用軟件、維修計算機以及編寫程序,實際上計算機專業(yè)需要學習的內(nèi)容遠非如此。本書將帶領(lǐng)學生游覽計算機的世界,讓學生從不同角度了解計算機系統(tǒng),了解計算機專業(yè)涉及內(nèi)容的廣度,并對本科階段將學習的主要專業(yè)課的概況有所了解。
其他讀者如果對計算機專業(yè)感興趣,從這本書入門,也是一個不錯的選擇。
本書采用自底向上、由內(nèi)到外的方式,探討了計算機如何工作,可以做什么以及如何做。計算機系統(tǒng)就像一個交響樂隊,由許多不同的元素組織在一起,構(gòu)成一個整體。本書旨在使學生對未來幾年需要學習的主要課程有一個總體的了解,在此基礎(chǔ)上,對相關(guān)課程的特點及相互關(guān)系有一個全局的把握。
第1章主要描述了本書的組織結(jié)構(gòu)以及計算機軟硬件的發(fā)展歷史。計算機系統(tǒng)在工作時是一個整體,為了能夠方便地學習及探討其功能,可以將其分層,每層在整個系統(tǒng)中扮演著特定的角色。這種分層構(gòu)成了計算機系統(tǒng)的全景圖。
第2章和第3章分析了最內(nèi)層——信息層,它反映了計算機內(nèi)部表示信息的方式,這是一個純概念層。計算機內(nèi)的信息采用二進制數(shù)字表示,所以要理解計算機處理技術(shù),首先必須理解二進制數(shù)制以及它與其他數(shù)制(如人們?nèi)粘J褂玫氖M制數(shù)制)的關(guān)系,第2章介紹了該內(nèi)容。第3章探討了如何用二進制表示及存儲多種類型(如數(shù)值、文本、圖像、音頻和視頻等)的信息。
第4章介紹了硬件層,探討了計算機硬件的基礎(chǔ)——門與電路。此外,第4章還介紹了計算機硬件各組成部分的功能以及計算機指令的工作流程。
第5章和第6章介紹了程序設(shè)計層。第5章分析了問題求解過程以及計算機的問題求解方法,講述了算法在解決問題中的作用、開發(fā)算法的策略、跟蹤和測試算法的技術(shù),并介紹了算法的基本結(jié)構(gòu)以及偽代碼表示。第6章介紹了多種程序設(shè)計語言,描述了不同類型程序設(shè)計語言的特點及主要語法。
第7章討論了操作系統(tǒng)和文件系統(tǒng)。每臺計算機都用操作系統(tǒng)管理計算機的資源,實現(xiàn)人機交互,了解操作系統(tǒng)能做什么是理解計算機的關(guān)鍵。
第8章和第9章討論了通信層。第8章介紹基本的計算機網(wǎng)絡(luò)技術(shù),第9章介紹因特網(wǎng)及其應(yīng)用。現(xiàn)在,計算機不再只是個人使用的孤立系統(tǒng),計算機被連接到網(wǎng)絡(luò)上,以共享信息和資源。通信層是計算機連接的基礎(chǔ)層,利用計算機技術(shù)可以與地球上的任何地方通信。因特網(wǎng)逐漸演化成全球性的網(wǎng)絡(luò),萬維網(wǎng)使通信變得相對容易,它從根本上改變了計算機的使用價值,使普通人也能使用它。
前面(內(nèi)部)的分層重點在于如何使計算機系統(tǒng)運轉(zhuǎn),而應(yīng)用層的重點則是用計算機解決真實世界的問題。通過運行相應(yīng)的應(yīng)用程序可以在多個領(lǐng)域展示計算機的威力,如財務(wù)管理、建筑設(shè)計或游戲等。這一層范圍廣大,涉及計算機科學的幾個子學科。第10章討論了數(shù)據(jù)庫方面的問題,第11章討論了軟件工程相關(guān)問題,第12章討論了信息安全問題,第13章討論了人工智能。
第14章討論了計算機在硬件、軟件及通信方面的缺陷,以及哪些問題計算機不能解決或解決得不好,并分析了計算機的這些缺陷。
本書附帶7個實驗(相關(guān)資料請到清華大學出版社網(wǎng)站本書頁面下載),讀者既能通過實驗提高動手能力,也有助于理解理論知識。
有時讀者很容易陷入細節(jié),看不清事物的全貌。本書每章都設(shè)置了“小結(jié)”,是對每章內(nèi)容的概括,在學習完一章后,可以根據(jù)小結(jié)將該章核心內(nèi)容回顧一遍。另外,在學習本書的過程中,應(yīng)該時;叵胍幌掠嬎銠C系統(tǒng)的全景圖,了解每一章所講的內(nèi)容處于計算機系統(tǒng)的哪一層。每一層的細節(jié)很重要,但只有從整體上理解它們,才能將這些細節(jié)融會貫通,體會到它們的精妙之處。當然,計算機系統(tǒng)的分層不是絕對的,有些內(nèi)容可能貫穿好幾層,所以應(yīng)該靈活對待。
本書基本涵蓋了計算機科學領(lǐng)域的主要內(nèi)容?紤]到初學者對算法的理解及程序設(shè)計能力有限,所以與數(shù)據(jù)結(jié)構(gòu)相關(guān)的比較難的內(nèi)容,本書沒有涉及?紤]到篇幅以及學生的知識基礎(chǔ),本書也沒有討論計算機圖形學以及圖像處理的內(nèi)容。
本書在編寫過程中得到了寧夏大學信息工程學院領(lǐng)導和同事的鼓勵及大力幫助,我的學生也參與繪制了本書的大部分插圖,在此一并感謝。作者在本書的編寫過程中,花費了大量心血,力求做到完美,但由于精力和能力有限,書中難免有疏漏、不妥之處,懇請各位同仁與廣大讀者批評指正。
劉進鋒2020年1月
劉進鋒,博士、(寧夏大學信息工程學院)教授。長期從事計算機專業(yè)的教學及科研工作,涉及課程范圍較廣,熟悉計算機專業(yè)的多個領(lǐng)域。主持、參與國家自然科學基金項目3項,發(fā)表高水平論文10余篇。
第1章概論
1. 1計算機系統(tǒng)
1.1.1計算機系統(tǒng)的分層
1.1.2抽象
1.2計算機的歷史
1.2.1計算機硬件簡史
1.2.2計算機軟件簡史
1.3計算機的分類
1.4計算機應(yīng)用領(lǐng)域
1.5計算機科學與技術(shù)學科知識體系
1.5.1CS2013概況
1.5.2知識領(lǐng)域
1.6小結(jié)
1.7習題
第2章計數(shù)系統(tǒng)
2.1數(shù)字與計算
2.2其他計數(shù)系統(tǒng)的運算
2.3數(shù)制間的轉(zhuǎn)換
2.3.1非十進制數(shù)轉(zhuǎn)換為十進制數(shù)
2.3.2十進制數(shù)轉(zhuǎn)換為非十進制數(shù)
2.3.3二進制數(shù)與八進制數(shù)、十六進制數(shù)的轉(zhuǎn)換
2.4計算機與二進制
2.5小結(jié)
2.6習題
第3章計算機中信息的表示方法
3.1數(shù)據(jù)類型
3.1.1數(shù)據(jù)類型簡介
3.1.2計算機內(nèi)部的數(shù)據(jù)
3.2數(shù)值數(shù)據(jù)的表示方法
3.2.1整數(shù)的表示方法
3.2.2實數(shù)的表示方法
3.3字符的表示方法
3.4音頻的表示方法
3.5圖像和圖形的表示方法
3.5.1圖像的表示方法
3.5.2圖形的表示方法
3.6視頻的表示方法
3.7小結(jié)
3.8習題
第4章計算機組成
4.1門與電路
4.1.1概述
4.1.2門
4.1.3電路
4.1.4集成電路
4.2計算機硬件的基本結(jié)構(gòu)
4.2.1存儲程序原理
4.2.2計算機硬件的組成部件
4.3計算機工作過程
4.3.1機器周期
4.3.2簡單計算機
4.3.3具體實例演示
4.4具體的計算機硬件
4.4.1CPU
4.4.2二級存儲設(shè)備
4.4.3輸入/輸出設(shè)備
4.5小結(jié)
4.6習題
第5章問題求解和算法設(shè)計
5.1問題求解
5.1.1如何解決問題
5.1.2應(yīng)用示例
5.2計算機問題求解
5.2.1計算機問題求解過程
5.2.2計算機問題求解要點
5.3偽代碼
5.3.1偽代碼的功能
5.3.2偽代碼示例
5.4算法基礎(chǔ)
5.4.1使用選擇結(jié)構(gòu)
5.4.2使用循環(huán)結(jié)構(gòu)
5.4.3復合變量及用法
5.4.4搜索算法
5.4.5排序算法
5.5幾個重要思想
5.6小結(jié)
5.7習題
第6章程序設(shè)計語言
6.1計算機語言的演化
6.1.1機器語言
6.1.2匯編語言
6.1.3高級語言
6.2翻譯
6.2.1編譯和解釋
6.2.2翻譯過程
6.3編程范式
6.3.1命令式范式
6.3.2聲明式范式
6.4高級程序語言的共同概念
6.4.1數(shù)據(jù)類型
6.4.2標識符
6.4.3輸入輸出結(jié)構(gòu)
6.4.4表達式
6.4.5語句
6.5面向?qū)ο笳Z言的要素
6.5.1封裝
6.5.2繼承
6.5.3多態(tài)性
6.6小結(jié)
6.7習題
第7章操作系統(tǒng)
7.1操作系統(tǒng)的角色
7.1.1應(yīng)用軟件與系統(tǒng)軟件
7.1.2操作系統(tǒng)的基本功能
7.2操作系統(tǒng)的歷史及演化
7.2.1批處理
7.2.2分時系統(tǒng)
7.2.3其他
7.3內(nèi)存管理
7.3.1單道程序
7.3.2多道程序
7.4進程管理
7.4.1進程狀態(tài)
7.4.2進程控制塊
7.4.3CPU調(diào)度
7.5設(shè)備管理
7.6文件系統(tǒng)與目錄
7.6.1文件系統(tǒng)
7.6.2目錄
7.7主流操作系統(tǒng)介紹
7.7.1UNIX
7.7.2Linux
7.7.3Windows
7.7.4Mac OS
7.7.5移動端操作系統(tǒng)
7.8小結(jié)
7.9習題
第8章計算機網(wǎng)絡(luò)
8.1計算機網(wǎng)絡(luò)概述
8.2網(wǎng)絡(luò)的類型
8.3網(wǎng)絡(luò)模型及網(wǎng)絡(luò)協(xié)議
8.3.1OSI模型
8.3.2TCP/IP模型
8.3.3TCP/IP協(xié)議的功能
8.4網(wǎng)絡(luò)地址
8.4.1網(wǎng)絡(luò)地址概述
8.4.2子網(wǎng)掩碼
8.5家庭上網(wǎng)方式
8.6網(wǎng)絡(luò)互聯(lián)
8.6.1傳輸介質(zhì)
8.6.2網(wǎng)絡(luò)互聯(lián)設(shè)備
8.7小結(jié)
8.8習題
第9章因特網(wǎng)應(yīng)用
9.1因特網(wǎng)概述
9.1.1因特網(wǎng)的起源及發(fā)展
9.1.2中國因特網(wǎng)的發(fā)展
9.1.3互聯(lián)網(wǎng)與因特網(wǎng)的區(qū)別
9.2電子郵件
9.2.1電子郵件系統(tǒng)有關(guān)協(xié)議
9.2.2電子郵件工作原理
9.2.3電子郵件的使用
9.3FTP
9.4Telnet
9.5域名系統(tǒng)
9.5.1域名規(guī)則
9.5.2域名與IP地址解析
9.6萬維網(wǎng)
9.6.1Web工作原理
9.6.2Web工作的3種情景
9.6.3HTML簡介
9.7小結(jié)
9.8習題
第10章數(shù)據(jù)庫
10.1數(shù)據(jù)庫概述
10.1.1數(shù)據(jù)庫系統(tǒng)的應(yīng)用
10.1.2數(shù)據(jù)庫系統(tǒng)的產(chǎn)生
10.2數(shù)據(jù)抽象
10.3數(shù)據(jù)庫模型
10.3.1層次數(shù)據(jù)庫
10.3.2網(wǎng)狀數(shù)據(jù)庫
10.3.3關(guān)系數(shù)據(jù)庫
10.4關(guān)系數(shù)據(jù)庫詳解
10.4.1關(guān)系數(shù)據(jù)庫模型
10.4.2結(jié)構(gòu)化查詢語言
10.5數(shù)據(jù)庫設(shè)計
10.5.1實體聯(lián)系模型的基本概念
10.5.2實體—聯(lián)系圖的基本圖素
10.5.3從ER圖到關(guān)系
10.6大數(shù)據(jù)簡介
10.6.1大數(shù)據(jù)的概念與意義
10.6.2大數(shù)據(jù)的來源
10.6.3大數(shù)據(jù)的應(yīng)用場景
10.6.4大數(shù)據(jù)的處理方法
10.7小結(jié)
10.8習題
第11章軟件工程
11.1軟件工程概述
11.1.1軟件的特點
11.1.2軟件危機
11.1.3軟件工程的概念
11.2軟件開發(fā)模型
11.2.1瀑布模型
11.2.2增量模型
11.3軟件生命周期
11.3.1軟件生命周期階段劃分
11.3.2生命周期理論對開發(fā)過程的指導意義
11.3.3定義時期
11.3.4設(shè)計階段
11.3.5實現(xiàn)階段
11.3.6測試階段
11.3.7軟件文檔
11.4軟件項目管理
11.4.1軟件項目管理概況
11.4.2軟件過程能力評估
11.5小結(jié)
11.6習題
第12章信息安全
12.1信息安全概述
12.1.1信息安全的必要性
12.1.2信息安全的定義及屬性
12.1.3安全威脅
12.1.4安全技術(shù)
12.2對稱密鑰密碼
12.2.1傳統(tǒng)對稱密鑰密碼
12.2.2現(xiàn)代對稱密鑰密碼
12.3非對稱密鑰密碼
12.4數(shù)字簽名
12.4.1數(shù)字簽名系統(tǒng)
12.4.2數(shù)字簽名提供的安全服務(wù)
12.5認證
12.6防火墻
12.6.1包過濾防火墻
12.6.2代理防火墻
12.6.3狀態(tài)監(jiān)測防火墻
12.6.4防火墻技術(shù)展望
12.7計算機病毒
12.7.1計算機病毒的概念
12.7.2計算機病毒的分類
12.7.3計算機病毒的防御
12.8信息安全管理措施
12.9小結(jié)
12.10習題
第13章人工智能
13.1概論
13.1.1圖靈測試
13.1.2人工智能的發(fā)展歷程
13.1.3人工智能流派及發(fā)展
13.2知識表示
13.2.1知識的概念
13.2.2語義網(wǎng)法
13.2.3謂詞邏輯法
13.3專家系統(tǒng)
13.4機器學習
13.4.1基本概念
13.4.2學習方式
13.4.3線性回歸
13.4.4k近鄰算法
13.4.5決策樹
13.4.6貝葉斯算法
13.4.7聚類算法
13.4.8人工神經(jīng)網(wǎng)絡(luò)
13.5深度學習
13.5.1深度學習的特點
13.5.2常用的深度學習框架
13.6人工智能的主要成果
13.6.1人工智能的3個層次
13.6.2人工智能的主要應(yīng)用領(lǐng)域
13.7小結(jié)
13.8習題
第14章計算的限制
14.1硬件限制
14.1.1算術(shù)運算的限制
14.1.2部件的限制
14.1.3通信的限制
14.2軟件限制
14.2.1軟件的復雜度
14.2.2當前提高軟件質(zhì)量的方法
14.3問題可解性
14.3.1算法比較
14.3.2圖靈機
14.3.3停機問題
14.3.4算法分類
14.4小結(jié)
14.5習題
附錄ASCII碼對照表及其說明
參考文獻