前言
大學(xué)計(jì)算機(jī)基礎(chǔ)教程對(duì)于早期的計(jì)算機(jī)使用者來(lái)說(shuō),只要了解某種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言并能使用專門的軟件來(lái)編輯和運(yùn)行程序,就可以應(yīng)付工作了。而今天,面對(duì)無(wú)所不在的普適計(jì)算、無(wú)遠(yuǎn)弗屆的云計(jì)算,以及各種各樣綜合性的或者個(gè)性化的計(jì)算機(jī)應(yīng)用和基于計(jì)算機(jī)技術(shù)的信息技術(shù)應(yīng)用,每個(gè)使用者(實(shí)際上是每個(gè)人)的時(shí)間和條件都是有限的,學(xué)習(xí)的只能是從浩如煙海的知識(shí)和技能中篩選出來(lái)的核心的基礎(chǔ)知識(shí)和基本技能,而且必須在正確的思想方法指導(dǎo)下學(xué)習(xí)和研究,才能有效地構(gòu)建以計(jì)算機(jī)技術(shù)為主體的能夠支持終生工作與繼續(xù)學(xué)習(xí)的信息技術(shù)的知識(shí)基礎(chǔ)和能力基礎(chǔ)。“大學(xué)計(jì)算機(jī)基礎(chǔ)”這門課程需要幫助大學(xué)生理解和掌握基于計(jì)算機(jī)技術(shù)的信息技術(shù)的基礎(chǔ)知識(shí)和基本技能。有鑒于此,作者在自編的多本同類教材見(jiàn)參考文獻(xiàn)\\[1\\]、\\[3\\]、\\[7\\]、\\[8\\]。的基礎(chǔ)上,依據(jù)教育部高等學(xué)校計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會(huì)的相關(guān)文件見(jiàn)參考文獻(xiàn)\\[4\\]。,結(jié)合多年來(lái)的教學(xué)實(shí)踐,編寫了這本教材。
“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程應(yīng)以培養(yǎng)學(xué)生的計(jì)算思維能力為基本教學(xué)目標(biāo),但正像以培養(yǎng)邏輯思維能力為目標(biāo)的“高等數(shù)學(xué)”課程并不討論什么是邏輯思維一樣,本書(shū)不打算顯式地討論計(jì)算思維的概念,甚至也不謀求建立“體現(xiàn)計(jì)算思維的知識(shí)體系”,而是按照基于計(jì)算機(jī)技術(shù)的信息技術(shù)的固有規(guī)律,考慮教學(xué)過(guò)程中的實(shí)際需求,重新梳理已有的和新增的教學(xué)內(nèi)容,編排出既有利于實(shí)現(xiàn)基本教學(xué)目標(biāo),又便于學(xué)生理解和掌握的知識(shí)體系。本書(shū)的主要內(nèi)容包括: 計(jì)算機(jī)軟件、硬件的概念及基本工作方式;算法的概念、算法與數(shù)據(jù)結(jié)構(gòu)及常用算法的基本思想;數(shù)據(jù)庫(kù)系統(tǒng)的概念、工作方式及基本操作方法。全部?jī)?nèi)容編排為8章,每章中除了詳盡的講解之外,還包括了精心編排的習(xí)題。
第1章介紹計(jì)算機(jī)的基本工作方式,計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的概念和分類,以及計(jì)算機(jī)應(yīng)用的現(xiàn)狀和前景。
第2章介紹用于描述算法及各種計(jì)算模型的Python程序設(shè)計(jì)語(yǔ)言的概念、主要功能及使用方法。
第3章介紹邏輯電路與邏輯運(yùn)算,數(shù)字、文字、圖片和聲音的計(jì)算機(jī)表示方法,信息量、信息熵的概念及基于信息熵的編碼方法。
第4章介紹數(shù)據(jù)結(jié)構(gòu)的概念及常用數(shù)據(jù)結(jié)構(gòu)(線性表、二叉樹(shù)、圖等)的概念和應(yīng)用,常用的查找算法和排序算法。
第5章介紹數(shù)據(jù)庫(kù)系統(tǒng)及關(guān)系數(shù)據(jù)庫(kù)的概念,SQL語(yǔ)言的功能與特點(diǎn),使用SQLite數(shù)據(jù)庫(kù)管理系統(tǒng)和Python語(yǔ)言實(shí)現(xiàn)SQL數(shù)據(jù)定義、數(shù)據(jù)查詢和數(shù)據(jù)操縱的一般方法。
第6章介紹算法的概念與特點(diǎn),利用計(jì)算機(jī)的主要特點(diǎn)實(shí)現(xiàn)的遞推、迭代和遞歸算法,常用的算法策略——窮舉法、分治法、貪心法、回溯法、動(dòng)態(tài)規(guī)劃法和分支限界法。
第7章介紹計(jì)算機(jī)網(wǎng)絡(luò)的概念、組成及主要應(yīng)用,數(shù)字信號(hào)編碼、檢錯(cuò)糾錯(cuò)編碼和常用加密方法,網(wǎng)絡(luò)分類及網(wǎng)址的概念。
第8章介紹計(jì)算機(jī)操作系統(tǒng)的概念、主要功能及基本工作方式。
本書(shū)第2、3、4、5、6章由姚普選編寫,第1、7、8章由喬亞男編寫。
本書(shū)可作為高等院校“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程的教材,也可作為計(jì)算機(jī)科學(xué)技術(shù)愛(ài)好者以及從事相關(guān)工作的工程技術(shù)人員的參考書(shū)。采用本書(shū)作為教材的課程以48~64(包括上機(jī)時(shí)數(shù))學(xué)時(shí)為宜。如果少于64學(xué)時(shí),則可不講以“”標(biāo)記的內(nèi)容;如果少于56學(xué)時(shí),則可少講或不講以“”標(biāo)記的內(nèi)容。本書(shū)中每章都配備了內(nèi)容豐富的習(xí)題,不同類型的讀者可按自己的需求選作部分習(xí)題。
信息技術(shù)博大精深且仍處于不斷發(fā)展變化之中,受篇幅、時(shí)間、讀者定位、使用環(huán)境以及作者水平等種種限制,一本書(shū)所涵蓋的內(nèi)容及所表達(dá)的思想總會(huì)有所局限。因而,本書(shū)作者希望傳達(dá)給讀者的信息是否到位或者是否得體,還要經(jīng)過(guò)讀者的檢驗(yàn)。望廣大讀者批評(píng)指正。
姚普選
2016年9月
大學(xué)計(jì)算機(jī)基礎(chǔ)教程第1章計(jì)算機(jī)與信息化社會(huì)1
1.1計(jì)算機(jī)的誕生和發(fā)展1
1.2了解計(jì)算機(jī)3
1.2.1計(jì)算機(jī)是如何工作的3
1.2.2什么是程序設(shè)計(jì)語(yǔ)言5
1.2.3什么是機(jī)器語(yǔ)言6
1.2.4什么是匯編語(yǔ)言7
1.2.5什么是高級(jí)語(yǔ)言8
1.3信息化生存9
1.3.1從互聯(lián)網(wǎng)思維談起9
1.3.2無(wú)所不在的計(jì)算設(shè)備12
1.3.3無(wú)遠(yuǎn)弗屆的云計(jì)算13
1.3.4與人綁定15
1.3.5線上到線下17
習(xí)題119
第2章Python語(yǔ)言20
2.1Python編程環(huán)境和解釋器20
2.1.1Python編程環(huán)境的使用20
2.1.2Python程序的一般結(jié)構(gòu)22
2.1.3Python解釋器的使用23
2.2數(shù)據(jù)的表示及輸入輸出26
2.2.1常量與變量26
2.2.2數(shù)據(jù)的輸入輸出28
2.2.3常用函數(shù)29
2.2.4運(yùn)算符與表達(dá)式31
2.3序列34
2.3.1字符串34
2.3.2列表36
2.3.3元組37
2.3.4字典39
2.4程序的控制結(jié)構(gòu)40
2.4.1分支語(yǔ)句40
2.4.2while循環(huán)語(yǔ)句41
2.4.3for循環(huán)語(yǔ)句42
2.4.4用戶自定義函數(shù)44
2.4.5模塊46
2.5類和對(duì)象47
2.5.1類的定義和使用48
2.5.2面向?qū)ο蟪绦蛟O(shè)計(jì)方法50
2.5.3類的繼承性52
2.5.4異常處理54
習(xí)題256
大學(xué)計(jì)算機(jī)基礎(chǔ)教程目錄
第3章數(shù)據(jù)的計(jì)算機(jī)表示61
3.1邏輯電路及邏輯運(yùn)算61
3.1.1門電路及基本邏輯運(yùn)算61
3.1.2組合邏輯電路63
3.1.3時(shí)序邏輯電路64
3.2數(shù)值的計(jì)算機(jī)表示67
3.2.1二進(jìn)制數(shù)68
3.2.2十六進(jìn)制數(shù)及數(shù)制轉(zhuǎn)換70
3.2.3數(shù)的補(bǔ)碼表示71
3.2.4定點(diǎn)數(shù)73
3.2.5浮點(diǎn)數(shù)74
3.2.6IEEE標(biāo)準(zhǔn)浮點(diǎn)數(shù)76
3.2.7BCD碼79
3.3文字的計(jì)算機(jī)表示81
3.3.1ASCII碼81
3.3.2GB 2312—1980漢字編碼標(biāo)準(zhǔn)83
3.3.3GB 18030漢字編碼標(biāo)準(zhǔn)84
3.3.4Unicode標(biāo)準(zhǔn)88
3.3.5Unicode字符的存儲(chǔ)格式90
3.4圖片與聲音的數(shù)字化93
3.4.1數(shù)字化圖形和圖像93
3.4.2圖像的采樣及存儲(chǔ)96
3.4.3數(shù)字化音頻98
3.5信息量與數(shù)據(jù)壓縮101
3.5.1信息量101
3.5.2信息熵103
3.5.3信息熵與數(shù)據(jù)壓縮105
3.5.4熵編碼算法108
習(xí)題3112
第4章數(shù)據(jù)結(jié)構(gòu)115
4.1數(shù)據(jù)結(jié)構(gòu)的概念115
4.1.1數(shù)據(jù)及數(shù)據(jù)元素115
4.1.2數(shù)據(jù)結(jié)構(gòu)的研究對(duì)象117
4.1.3數(shù)據(jù)結(jié)構(gòu)的定義118
4.2線性表119
4.2.1線性表的概念120
4.2.2線性表的順序存儲(chǔ)結(jié)構(gòu)121
4.2.3線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)123
4.2.4棧127
4.2.5隊(duì)列129
4.3樹(shù)與二叉樹(shù)131
4.3.1樹(shù)的概念131
4.3.2二叉樹(shù)的概念及性質(zhì)133
4.3.3二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)135
4.3.4二叉樹(shù)的遍歷136
4.4圖138
4.4.1圖的概念138
4.4.2圖的存儲(chǔ)結(jié)構(gòu)140
4.4.3圖的遍歷142
4.5查找143
4.5.1查找的概念144
4.5.2順序查找145
4.5.3折半查找147
4.6排序148
4.6.1排序的概念148
4.6.2插入排序150
4.6.3交換排序152
4.6.4選擇排序154
習(xí)題4156
第5章數(shù)據(jù)庫(kù)160
5.1數(shù)據(jù)庫(kù)系統(tǒng)組成與結(jié)構(gòu)160
5.1.1數(shù)據(jù)庫(kù)的概念160
5.1.2數(shù)據(jù)庫(kù)系統(tǒng)組成163
5.1.3數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)165
5.2數(shù)據(jù)庫(kù)管理系統(tǒng)167
5.2.1關(guān)系數(shù)據(jù)庫(kù)167
5.2.2數(shù)據(jù)庫(kù)管理系統(tǒng)的功能170
5.2.3常見(jiàn)數(shù)據(jù)庫(kù)管理系統(tǒng)171
5.3SQL語(yǔ)言及數(shù)據(jù)庫(kù)操作173
5.3.1SQL語(yǔ)言的功能與特點(diǎn)174
5.3.2SQL語(yǔ)言的語(yǔ)句175
5.3.3創(chuàng)建SQLite數(shù)據(jù)庫(kù)179
5.3.4SQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢與更新183
5.3.5Python程序操作SQLite數(shù)據(jù)庫(kù)185
習(xí)題5188
第6章算法設(shè)計(jì)191
6.1算法的特征及評(píng)價(jià)191
6.1.1算法的概念191
6.1.2算法的特征193
6.1.3算法求解與解析解194
6.1.4算法的表示196
6.1.5算法的復(fù)雜度198
6.2遞推、迭代和遞歸202
6.2.1遞推法202
6.2.2遞推法與代數(shù)解法205
6.2.3迭代法207
6.2.4遞歸法208
6.2.5尾遞歸法211
6.3構(gòu)造算法的常用方法212
6.3.1窮舉法212
6.3.2貪心法215
6.3.3分治法218
6.3.4動(dòng)態(tài)規(guī)劃算法222
6.3.5回溯法228
6.3.6分支限界法234
6.3.7分支限界法求解單源最短路徑問(wèn)題241
習(xí)題6245
第7章數(shù)據(jù)的傳輸248
7.1計(jì)算機(jī)網(wǎng)絡(luò)概述248
7.1.1計(jì)算機(jī)網(wǎng)絡(luò)的歷史發(fā)展248
7.1.2計(jì)算機(jī)網(wǎng)絡(luò)的功能250
7.1.3計(jì)算機(jī)網(wǎng)絡(luò)的傳輸介質(zhì)251
7.1.4網(wǎng)絡(luò)體系結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議252
7.2編碼與加密255
7.2.1編碼與解碼255
7.2.2檢錯(cuò)與糾錯(cuò)260
7.2.3加密與解密技術(shù)262
7.3網(wǎng)絡(luò)結(jié)構(gòu)266
7.3.1網(wǎng)絡(luò)的分類266
7.3.2網(wǎng)絡(luò)地址269
習(xí)題7272
第8章操作系統(tǒng)275
8.1操作系統(tǒng)概述275
8.1.1操作系統(tǒng)的歷史回顧275
8.1.2無(wú)所不在的操作系統(tǒng)277
8.1.3操作系統(tǒng)的目標(biāo)與功能279
8.2進(jìn)程與線程281
8.2.1進(jìn)程的概念281
8.2.2線程的概念283
8.2.3多線程285
8.2.4生產(chǎn)者消費(fèi)者問(wèn)題286
8.3死鎖問(wèn)題291
8.3.1死鎖的概念291
8.3.2銀行家算法292
8.4設(shè)備管理294
8.4.1I/O控制方式294
8.4.2緩沖技術(shù)296
8.5分布式操作系統(tǒng)299
習(xí)題8301
參考文獻(xiàn)303