和同類的教材相比,本書的特點在于以一個核心、三條綱領(lǐng)來組織教學(xué)內(nèi)容。計算機的核心功能是數(shù)據(jù)處理,計算機科學(xué)要提供數(shù)據(jù)表示和數(shù)據(jù)加工表示的理論、方法、技術(shù),并*終在計算機系統(tǒng)上實現(xiàn)。
全書共分7章,內(nèi)容包括認識計算機和計算機科學(xué)、計算機系統(tǒng)組成、計算機軟件系統(tǒng)、計算機通信與網(wǎng)絡(luò)、數(shù)據(jù)表示方法、數(shù)據(jù)加工表示方法、計算學(xué)科的知識領(lǐng)域。
按照本書的體系,初學(xué)者容易理解在后續(xù)課程中展開的專業(yè)概念,并關(guān)注專業(yè)課程之間的內(nèi)在關(guān)聯(lián)。
本書既適合作為高等學(xué)校的教材,也適合有興趣了解計算機科學(xué)概貌的讀者閱讀。
本書是作者在多年教學(xué)實踐的基礎(chǔ)上編寫而成的。自*版出版以來,本書已被多所高校選作教材,取得了很好的教學(xué)效果。本次再版,作者增加了有關(guān)信息安全的內(nèi)容,以便更好地滿足教學(xué)需求。
出
版 說 明
我國高等學(xué)校計算機教育近年來發(fā)展迅猛,應(yīng)用所學(xué)計算機知識解決實際問題,已經(jīng)成為當(dāng)代大學(xué)生的必備能力。
時代的進步與社會的發(fā)展對高等學(xué)校計算機教育的質(zhì)量提出了更高、更新的要求,F(xiàn)在,很多高等學(xué)校都在積極探索符合自身特點的教學(xué)模式,涌現(xiàn)出一大批非常優(yōu)秀的精品課程。
為了適應(yīng)社會需求,滿足計算機教育的發(fā)展需要,清華大學(xué)出版社在大量調(diào)查研究的基礎(chǔ)上,組織編寫了本套教材。本套教材從全國各高校的優(yōu)秀計算機教材中精挑細選了一批很有代表性且特色鮮明的計算機精品教材,把作者對各自所授計算機課程的獨特理解和先進經(jīng)驗推薦給全國師生。
本套教材特點如下。
(1)
編寫目的明確。本套教材主要面向普通高校的計算機專業(yè)學(xué)生,使學(xué)生通過本套教材,學(xué)習(xí)計算機科學(xué)與技術(shù)方面的基本理論和基本知識,接受應(yīng)用計算機解決實際問題的基本訓(xùn)練。
(2)
注重編寫理念。本套教材的作者均為各校相應(yīng)課程的主講教師,有一定的經(jīng)驗積累,且編寫思路清晰,有獨特的教學(xué)思路和指導(dǎo)思想,其教學(xué)經(jīng)驗具有推廣價值。本套教材中不乏各類精品課程的配套教材,并力圖把不同學(xué)校的教學(xué)特點反映到每本教材中。
(3)
理論知識與實踐相結(jié)合。本套教材貫徹從實踐中來到實踐中去的原則,書中許多必須掌握的理論都將結(jié)合實例講述,同時注重培養(yǎng)學(xué)生分析、解決問題的能力。
(4)
易教易用,合理適當(dāng)。本套教材編寫時注意結(jié)合教學(xué)實際的課時數(shù),把握教材的篇幅。同時,對一些知識點按照教育部教學(xué)指導(dǎo)委員會的最新精神進行合理取舍與難易控制。
(5)
注重教材的立體化配套。大多數(shù)教材都將配套教學(xué)課件、習(xí)題及其解答、實驗指導(dǎo)、教學(xué)網(wǎng)站等輔助教學(xué)資源,方便教學(xué)。
隨著本套教材的陸續(xù)出版,我們相信能夠得到廣大讀者的認可和支持,為我國計算機教材建設(shè)和計算機教學(xué)水平的提高,以及計算機教育事業(yè)的發(fā)展作出應(yīng)有的貢獻。
清華大學(xué)出版社第3版前言
眾所周知,計算機技術(shù)和應(yīng)用的發(fā)展日新月異,引起人類社會變革的廣度和深度是空前的,可能也是絕后的。但是,不是所有人都了解到,計算機系統(tǒng)的核心基礎(chǔ)原理幾十年來并沒有發(fā)生根本的變化。所以,當(dāng)這本以大學(xué)一年級學(xué)生為對象的專業(yè)入門教材再版時,全書框架和主要內(nèi)容并沒有改變,只是對介紹計算機技術(shù)和應(yīng)用的段落做了與時俱進的增補。計算機的安全保障措施日益重要,因此增加了7.3節(jié)。
根據(jù)作者的教學(xué)經(jīng)驗,這本教材對不同程度的學(xué)生班級都適合。學(xué)生的領(lǐng)悟能力越強,教師可以講得越具體;反之可以講得粗略一些,但課程體系仍應(yīng)該保持完整。不必期待學(xué)生對教材里出現(xiàn)的,或者老師講授到的每個專業(yè)概念都完全理解,畢竟這是以后幾十門專業(yè)課的任務(wù)。計算機科學(xué)導(dǎo)論的授課目的在于使學(xué)生大致了解今后四年要學(xué)習(xí)的專業(yè)內(nèi)容。更重要的是,希望學(xué)生能夠把握各門專業(yè)課程之間的內(nèi)在聯(lián)系。這一點不會在哪一門后續(xù)的專業(yè)課程里再刻意闡述了。
黃思曾2017年7月于康樂園第2版前言
第1版出版后,不時會有教師給我發(fā)郵件,覺得這本書很適合用做本科生的教材,向我要教學(xué)大綱、教學(xué)進度表、考核大綱和電子課件以作參考,我很樂意和同行們互相交流。這本書從來就不以計算機科學(xué)導(dǎo)論作為目標(biāo)。它不過是筆者從許多年講授計算機科學(xué)導(dǎo)論課程的過程中提煉出來的一本講義而已。這是在書名中刻意加上教程二字的原因。
本課程面對一年級新生,通常只安排四五十學(xué)時。對任教教師來說,挑戰(zhàn)在于選材、組織和演繹。講得太寫意或者太工筆都不行,太專業(yè)或者太不專業(yè)也不行。
在筆者的教學(xué)生涯中,計算機科學(xué)導(dǎo)論教材經(jīng)歷了幾次變化。最早一批著眼于計算機入門操作和應(yīng)用,類似今天仍然常見的以應(yīng)用基礎(chǔ)或文化基礎(chǔ)來冠名的那些書;后來的一批有點全面介紹學(xué)科內(nèi)涵的味道了,多以濃縮手法把有關(guān)領(lǐng)域內(nèi)容寫成一章一節(jié);再往后,國內(nèi)外開始出現(xiàn)以敘述綱領(lǐng)統(tǒng)率內(nèi)容的著述,如以算法作為綱領(lǐng)貫穿教材,比如筆者用數(shù)據(jù)表示、數(shù)據(jù)加工表示、計算機系統(tǒng)三條線索來展開內(nèi)容。
近年來,這個題材的新作繼續(xù)出現(xiàn),董榮勝的《計算機科學(xué)導(dǎo)論思想與方法》一書站在學(xué)科思想、方法這個較高的層面來介紹學(xué)科,以此給學(xué)生提供對學(xué)科的認知基礎(chǔ),著述自成一格。這本書值得有關(guān)專業(yè)高年級本科生或者低年級研究生,甚至計算機科學(xué)導(dǎo)論課程的任教教師一讀。
從院?傮w上看,一年級大學(xué)生的邏輯思維能力和對計算機的了解程度會參差不齊。不論教師選擇什么樣的敘述角度和層次,都受制于面對的菜鳥們的平均接受能力,并非能夠天馬行空的。教師傳道、授業(yè)、解惑之際,一定要顧及受眾的感受,否則教師自我感覺講得天花亂墜,而學(xué)生的反應(yīng)卻是不知所云。
這次修訂增寫了1.4節(jié)和第7章。希望學(xué)生在導(dǎo)論性課程中對學(xué)科能夠有更加全面的認知。大部分增加的內(nèi)容可作為學(xué)生的閱讀材料,但是建議把7.2節(jié)列入教學(xué)計劃。關(guān)于社會和職業(yè)的問題只由教師講授,效果恐怕不會太好,應(yīng)該設(shè)計更加生動的教學(xué)環(huán)節(jié)。
黃思曾2010年8月于康樂園第1版前言
計算機科學(xué)導(dǎo)論是大多數(shù)高等院校計算機科學(xué)與技術(shù)類專業(yè)學(xué)生必修的專業(yè)課程。課程講授和計算機系統(tǒng)、計算機科學(xué)有關(guān)的基本概念,使學(xué)生對本專業(yè)的核心知識有全面的、概要的認識。
本課程一種典型的教學(xué)安排是每周課堂講授3學(xué)時,14周共42學(xué)時。在較短時間內(nèi)要完成覆蓋面很廣、內(nèi)容極為豐富的專業(yè)知識教學(xué),又要使一年級學(xué)生能夠大致理解,關(guān)鍵在于:
要建立一個課程講授的結(jié)構(gòu)體系;
要把握好內(nèi)容廣度和深度的關(guān)系;
要采用深入淺出的敘述風(fēng)格。
筆者在中山大學(xué)計算機科學(xué)系任教多年,20世紀(jì)80年代負責(zé)開設(shè)本課程之后,一直是本課程的主講教師。多年的教學(xué)實踐中,筆者設(shè)計以一個本質(zhì)核心,三條內(nèi)容綱領(lǐng)來組織本門課程,使學(xué)生能夠在短短的十幾周里對計算機系統(tǒng)和計算機科學(xué)有入門性的、較全面的認識。
一個本質(zhì)核心是指計算機的數(shù)據(jù)處理功能。
計算機是一種數(shù)據(jù)處理機器,計算機科學(xué)是使計算機完成各行各業(yè)、形形色色數(shù)據(jù)處理任務(wù)所需要的理論、方法和技術(shù)的知識集合。
三條內(nèi)容綱領(lǐng)是:
(1) 數(shù)據(jù)的分層表示方法學(xué),其表示層次:
現(xiàn)實世界的數(shù)據(jù)對象;
數(shù)據(jù)結(jié)構(gòu)和信息結(jié)構(gòu)層;
程序設(shè)計語言層;
機器層;
物理層。
(2) 數(shù)據(jù)加工的分層表示方法學(xué),其表示層次:
數(shù)據(jù)處理問題;
解題模型;
算法層;
程序設(shè)計層;
機器程序?qū)樱?
物理層。
(3) 計算機系統(tǒng)的構(gòu)成(數(shù)據(jù)和數(shù)據(jù)加工表示方法的最終載體):
硬件系統(tǒng);
軟件系統(tǒng);
網(wǎng)絡(luò)系統(tǒng)。
本教材按照上述綱領(lǐng)展開,包含了后續(xù)各門計算機類專業(yè)課程的主要概念,從而使學(xué)生對計算機科學(xué)的內(nèi)容及其內(nèi)在的關(guān)聯(lián)有全面、清晰、概要的認識。
教學(xué)實踐表明,本課程的學(xué)習(xí)能夠激發(fā)學(xué)生提出思考和問題。課程結(jié)束后,學(xué)生的疑問通常會比課程開始前還要多。這是好事,說明本課程為學(xué)生后續(xù)的專業(yè)學(xué)習(xí)奠定了良好的基礎(chǔ),真正起到了導(dǎo)論應(yīng)有的作用。
歷屆學(xué)生都表示,通過本課程的學(xué)習(xí)他們清晰地了解到今后幾年里要學(xué)什么,畢業(yè)之后會干什么,心里開始踏實了。說明本課程還應(yīng)該擔(dān)負起學(xué)生專業(yè)教育的作用。
由于計算機技術(shù)發(fā)展十分迅速,加上作者水平所限,書中難免有錯誤和不足之處,期望讀者在使用過程中給予指正。
黃思曾2007年5月于康樂園
目錄
第1章認識計算機和計算機科學(xué)1
1.1計算機是數(shù)據(jù)處理機1
1.1.1數(shù)據(jù)1
1.1.2信息2
1.1.3數(shù)據(jù)處理3
1.1.4數(shù)據(jù)處理機4
習(xí)題5
1.2計算機科學(xué)6
1.2.1理解計算機科學(xué)6
1.2.2算法8
1.2.3用計算機解決數(shù)據(jù)處理問題10
1.2.4計算機系統(tǒng)的發(fā)展歷程14
習(xí)題15
1.3機內(nèi)信息表示基礎(chǔ)二進制數(shù)16
1.3.1位置記數(shù)法16
1.3.2P進制數(shù)17
1.3.3數(shù)制的轉(zhuǎn)換規(guī)則17
習(xí)題19
1.4關(guān)于計算學(xué)科及其專業(yè)19
1.4.1計算學(xué)科的由來19
1.4.2計算學(xué)科下屬專業(yè)的劃分19
本章小結(jié)21
第2章計算機系統(tǒng)的組成22
2.1四大功能部件22
2.1.1內(nèi)存22
2.1.2中央處理器27
2.1.3外部設(shè)備30
2.1.4總線41
習(xí)題43
2.2計算機程序44
2.2.1機器指令45
2.2.2程序存儲原理47
2.2.3馮·諾依曼結(jié)構(gòu)體系50
習(xí)題52
2.3計算機系統(tǒng)52
2.3.1硬件和軟件52
2.3.2計算機系統(tǒng)的幾種應(yīng)用模式54
習(xí)題57
本章小結(jié)58
第3章計算機軟件系統(tǒng)59
3.1軟件系統(tǒng)59
3.1.1軟件系統(tǒng)的組成59
3.1.2應(yīng)用軟件示例60
3.1.3獲得軟件的途徑64
3.1.4軟件版權(quán)保護65
習(xí)題66
3.2操作系統(tǒng)66
3.2.1操作系統(tǒng)的目標(biāo)66
3.2.2進程和中斷67
3.2.3操作系統(tǒng)的資源管理功能68
3.2.4作業(yè)的管理調(diào)度方式70
3.2.5I/O設(shè)備的輸入輸出控制73
3.2.6操作系統(tǒng)的常見種類74
3.2.7用戶界面75
3.2.8有代表性的操作系統(tǒng)產(chǎn)品76
習(xí)題79
3.3程序設(shè)計語言和語言處理軟件79
3.3.1程序設(shè)計語言79
3.3.2程序設(shè)計語言的發(fā)展80
3.3.3程序設(shè)計和軟件開發(fā)84
3.3.4程序/語言的處理過程84
3.3.5編譯程序85
3.3.6上機作業(yè)的傳統(tǒng)過程87
3.3.7程序作業(yè)工具87
習(xí)題88
本章小結(jié)88
第4章計算機通信與網(wǎng)絡(luò)89
4.1數(shù)據(jù)通信概念89
4.1.1信息、數(shù)據(jù)與信號89
4.1.2數(shù)據(jù)的傳輸90
4.1.3傳輸介質(zhì)和信道93
4.1.4信號傳輸?shù)募夹g(shù)特性94
4.1.5數(shù)據(jù)交換97
習(xí)題98
4.2計算機網(wǎng)絡(luò)99
4.2.1計算機網(wǎng)絡(luò)的組成100
4.2.2網(wǎng)絡(luò)類型101
4.2.3網(wǎng)絡(luò)協(xié)議和體系結(jié)構(gòu)模型102
習(xí)題106
4.3計算機局域網(wǎng)106
4.3.1局域網(wǎng)的拓撲結(jié)構(gòu)106
4.3.2介質(zhì)訪問控制方法108
4.3.3局域網(wǎng)中常見的網(wǎng)絡(luò)設(shè)備109
習(xí)題111
4.4因特網(wǎng)112
4.4.1網(wǎng)絡(luò)互聯(lián)112
4.4.2因特網(wǎng)的地址編制和域名113
4.4.3因特網(wǎng)的典型應(yīng)用113
4.4.4因特網(wǎng)的接入121
習(xí)題122
本章小結(jié)123
第5章數(shù)據(jù)表示方法124
5.1數(shù)據(jù)的分層表示方法學(xué)124
5.1.1現(xiàn)實世界層124
5.1.2信息世界層125
5.1.3高級語言層126
5.1.4機器層126
5.1.5物理層127
習(xí)題127
5.2數(shù)的表示127
5.2.1無符號整數(shù)的表示127
5.2.2有符號整數(shù)的表示128
5.2.3實數(shù)的表示132
5.2.4復(fù)數(shù)的表示134
習(xí)題135
5.3字符和漢字的表示135
5.3.1字符編碼136
5.3.2漢字編碼138
5.3.3漢字處理系統(tǒng)142
習(xí)題142
5.4圖像和聲音的表示143
5.4.1圖像的表示143
5.4.2聲音的表示144
習(xí)題145
5.5高級語言的數(shù)據(jù)表示手段145
5.5.1常量和變量145
5.5.2函數(shù)和表達式147
5.5.3數(shù)據(jù)類型151
習(xí)題158
5.6動態(tài)數(shù)據(jù)結(jié)構(gòu)158
5.6.1數(shù)據(jù)結(jié)構(gòu)的含義158
5.6.2數(shù)據(jù)結(jié)構(gòu)的基本概念159
5.6.3線性表163
5.6.4樹和二叉樹169
5.6.5圖171
習(xí)題173
5.7外存數(shù)據(jù)組織174
5.7.1文件174
5.7.2數(shù)據(jù)庫180
習(xí)題189
本章小結(jié)190
第6章數(shù)據(jù)加工表示方法191
6.1數(shù)據(jù)加工的表達層次191
習(xí)題192
6.2算法表示手段193
6.2.1算法和算法的表示193
6.2.2算法流程圖194
6.2.3類程序設(shè)計語言的偽代碼199
習(xí)題202
6.3結(jié)構(gòu)化設(shè)計202
6.3.1三種流程結(jié)構(gòu)203
6.3.2結(jié)構(gòu)化方法207
習(xí)題209
6.4算法示例209
6.4.1順序結(jié)構(gòu)的算法設(shè)計209
6.4.2分支結(jié)構(gòu)的算法設(shè)計211
6.4.3循環(huán)結(jié)構(gòu)的算法設(shè)計214
習(xí)題217
6.5軟件的工程化開發(fā)方法218
6.5.1關(guān)于軟件工程學(xué)218
6.5.2軟件生命周期概念219
6.5.3傳統(tǒng)的軟件生命周期階段220
6.5.4軟件開發(fā)規(guī)范225
6.5.5軟件開發(fā)模型226
6.5.6開發(fā)方法和工具227
習(xí)題230
本章小結(jié)231
第7章計算學(xué)科的知識領(lǐng)域232
7.1計算學(xué)科知識分類232
7.1.1數(shù)學(xué)232
7.1.2電子學(xué)233
7.1.3算法234
7.1.4計算機體系結(jié)構(gòu)和組織235
7.1.5計算機軟件系統(tǒng)236
7.1.6人機交互237
7.1.7程序設(shè)計238
7.1.8軟件工程學(xué)239
7.1.9特定的應(yīng)用系統(tǒng)240
7.1.10計算機網(wǎng)絡(luò)241
7.1.11信息技術(shù)241
7.1.12職業(yè)素養(yǎng)242
7.2計算學(xué)科的社會與職業(yè)問題243
7.2.1計算技術(shù)對社會的沖擊243
7.2.2相關(guān)法律243
7.2.3職業(yè)道德和職業(yè)素養(yǎng)244
7.3計算機安全245
7.3.1計算機安全風(fēng)險245
7.3.2計算機安全措施246
習(xí)題249
本章小結(jié)249
參考文獻250