21世紀是高速發(fā)展的信息化時代,計算機應用不斷深入并與其他學科相結(jié)合,相關知識領域不斷擴大!坝嬎銠C導論”作為計算機類專業(yè)的入門課程,需要介紹的知識在不斷增加,但相應的學時可能還在減少。為了適應信息產(chǎn)業(yè)新技術(shù)的發(fā)展,滿足普通高等院校提高教學質(zhì)量的需要,高校教學和學習的教材必須與時代同步并不斷更新。
本書主要面向計算機大類各專業(yè)學生。大多數(shù)學生在最初的學習中可能有一個誤解,以為計算機專業(yè)就是熟練使用常用軟件、維修計算機以及編寫程序,實際上計算機專業(yè)需要學習的內(nèi)容遠非如此。本書將帶領學生游覽計算機的世界,讓學生從不同角度了解計算機系統(tǒng),了解計算機專業(yè)涉及內(nèi)容的廣度,并對本科階段將學習的主要專業(yè)課的概況有所了解。
其他讀者如果對計算機專業(yè)感興趣,從這本書入門,也是一個不錯的選擇。
本書采用自底向上、由內(nèi)到外的方式,探討了計算機如何工作,可以做什么以及如何做。計算機系統(tǒng)就像一個交響樂隊,由許多不同的元素組織在一起,構(gòu)成一個整體。本書旨在使學生對未來幾年需要學習的主要課程有一個總體的了解,在此基礎上,對相關課程的特點及相互關系有一個全局的把握。
第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ù)制)的關系,第2章介紹了該內(nèi)容。第3章探討了如何用二進制表示及存儲多種類型(如數(shù)值、文本、圖像、音頻和視頻等)的信息。
第4章介紹了硬件層,探討了計算機硬件的基礎——門與電路。此外,第4章還介紹了計算機硬件各組成部分的功能以及計算機指令的工作流程。
第5章和第6章介紹了程序設計層。第5章分析了問題求解過程以及計算機的問題求解方法,講述了算法在解決問題中的作用、開發(fā)算法的策略、跟蹤和測試算法的技術(shù),并介紹了算法的基本結(jié)構(gòu)以及偽代碼表示。第6章介紹了多種程序設計語言,描述了不同類型程序設計語言的特點及主要語法。
第7章討論了操作系統(tǒng)和文件系統(tǒng)。每臺計算機都用操作系統(tǒng)管理計算機的資源,實現(xiàn)人機交互,了解操作系統(tǒng)能做什么是理解計算機的關鍵。
第8章和第9章討論了通信層。第8章介紹基本的計算機網(wǎng)絡技術(shù),第9章介紹因特網(wǎng)及其應用,F(xiàn)在,計算機不再只是個人使用的孤立系統(tǒng),計算機被連接到網(wǎng)絡上,以共享信息和資源。通信層是計算機連接的基礎層,利用計算機技術(shù)可以與地球上的任何地方通信。因特網(wǎng)逐漸演化成全球性的網(wǎng)絡,萬維網(wǎng)使通信變得相對容易,它從根本上改變了計算機的使用價值,使普通人也能使用它。
前面(內(nèi)部)的分層重點在于如何使計算機系統(tǒng)運轉(zhuǎn),而應用層的重點則是用計算機解決真實世界的問題。通過運行相應的應用程序可以在多個領域展示計算機的威力,如財務管理、建筑設計或游戲等。這一層范圍廣大,涉及計算機科學的幾個子學科。第10章討論了數(shù)據(jù)庫方面的問題,第11章討論了軟件工程相關問題,第12章討論了信息安全問題,第13章討論了人工智能。
第14章討論了計算機在硬件、軟件及通信方面的缺陷,以及哪些問題計算機不能解決或解決得不好,并分析了計算機的這些缺陷。
本書附帶7個實驗(相關資料請到清華大學出版社網(wǎng)站本書頁面下載),讀者既能通過實驗提高動手能力,也有助于理解理論知識。
有時讀者很容易陷入細節(jié),看不清事物的全貌。本書每章都設置了“小結(jié)”,是對每章內(nèi)容的概括,在學習完一章后,可以根據(jù)小結(jié)將該章核心內(nèi)容回顧一遍。另外,在學習本書的過程中,應該時常回想一下計算機系統(tǒng)的全景圖,了解每一章所講的內(nèi)容處于計算機系統(tǒng)的哪一層。每一層的細節(jié)很重要,但只有從整體上理解它們,才能將這些細節(jié)融會貫通,體會到它們的精妙之處。當然,計算機系統(tǒng)的分層不是絕對的,有些內(nèi)容可能貫穿好幾層,所以應該靈活對待。
本書基本涵蓋了計算機科學領域的主要內(nèi)容?紤]到初學者對算法的理解及程序設計能力有限,所以與數(shù)據(jù)結(jié)構(gòu)相關的比較難的內(nèi)容,本書沒有涉及?紤]到篇幅以及學生的知識基礎,本書也沒有討論計算機圖形學以及圖像處理的內(nèi)容。
本書在編寫過程中得到了寧夏大學信息工程學院領導和同事的鼓勵及大力幫助,我的學生也參與繪制了本書的大部分插圖,在此一并感謝。作者在本書的編寫過程中,花費了大量心血,力求做到完美,但由于精力和能力有限,書中難免有疏漏、不妥之處,懇請各位同仁與廣大讀者批評指正。
劉進鋒2020年1月
第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計算機應用領域
1.5計算機科學與技術(shù)學科知識體系
1.5.1CS2013概況
1.5.2知識領域
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二級存儲設備
4.4.3輸入/輸出設備
4.5小結(jié)
4.6習題
第5章問題求解和算法設計
5.1問題求解
5.1.1如何解決問題
5.1.2應用示例
5.2計算機問題求解
5.2.1計算機問題求解過程
5.2.2計算機問題求解要點
5.3偽代碼
5.3.1偽代碼的功能
5.3.2偽代碼示例
5.4算法基礎
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章程序設計語言
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應用軟件與系統(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設備管理
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)絡
8.1計算機網(wǎng)絡概述
8.2網(wǎng)絡的類型
8.3網(wǎng)絡模型及網(wǎng)絡協(xié)議
8.3.1OSI模型
8.3.2TCP/IP模型
8.3.3TCP/IP協(xié)議的功能
8.4網(wǎng)絡地址
8.4.1網(wǎng)絡地址概述
8.4.2子網(wǎng)掩碼
8.5家庭上網(wǎng)方式
8.6網(wǎng)絡互聯(lián)
8.6.1傳輸介質(zhì)
8.6.2網(wǎng)絡互聯(lián)設備
8.7小結(jié)
8.8習題
第9章因特網(wǎ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)有關協(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)的應用
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關系數(shù)據(jù)庫
10.4關系數(shù)據(jù)庫詳解
10.4.1關系數(shù)據(jù)庫模型
10.4.2結(jié)構(gòu)化查詢語言
10.5數(shù)據(jù)庫設計
10.5.1實體聯(lián)系模型的基本概念
10.5.2實體—聯(lián)系圖的基本圖素
10.5.3從ER圖到關系
10.6大數(shù)據(jù)簡介
10.6.1大數(shù)據(jù)的概念與意義
10.6.2大數(shù)據(jù)的來源
10.6.3大數(shù)據(jù)的應用場景
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設計階段
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ù)字簽名提供的安全服務
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)絡
13.5深度學習
13.5.1深度學習的特點
13.5.2常用的深度學習框架
13.6人工智能的主要成果
13.6.1人工智能的3個層次
13.6.2人工智能的主要應用領域
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碼對照表及其說明
參考文獻