本書是高等學校非計算機專業(yè)的計算機基礎(chǔ)課程的理論教材,根據(jù)教育部高等學校大學計算機課程教學指導(dǎo)委員會提出的以計算思維為切入點的計算機基礎(chǔ)教學改革的思路編寫而成,以培養(yǎng)學生計算思維能力為目標。 全書分上下兩篇,共11章。上篇為計算思維,有5章,主要內(nèi)容為計算思維的理論基礎(chǔ),包括計算思維與計算機、計算機的信息表示、計算機系統(tǒng)、計算機網(wǎng)絡(luò)、計算思維與算法。下篇為Python編程基礎(chǔ),有6章,主要內(nèi)容為Python 編程基礎(chǔ),包括Python繪圖、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、算法實現(xiàn)、綜合實例。全書提供了大量應(yīng)用實例,每章后均附有習題。 本書可作為高等院校非計算機專業(yè)的大學計算機基礎(chǔ)課教材,也可作為計算機入門學習的參考書。
本書以計算思維為切入點,詳細講解了計算機基礎(chǔ)、計算機信息表示、計算機系統(tǒng)、計算網(wǎng)絡(luò)和計算思維的算法。根據(jù)非計算機專業(yè)的教學需求,詳細講解了Python編程基礎(chǔ),繪圖,選擇、循環(huán)語句,函數(shù),算法實現(xiàn)和綜合實例等,并配有大量應(yīng)用實例。
配套資源包括教學課件、教學視頻和習題答案等,是學習計算機及Python編程入門的好教材。
計算思維與Python編程基礎(chǔ)(微課版)近年來,以高速互聯(lián)、天地一體、智能便捷、綜合集成為特征的新一代信息基礎(chǔ)設(shè)施正在加速形成并不斷完善,以大數(shù)據(jù)、云計算、人工智能為代表的新一輪信息技術(shù)創(chuàng)新浪潮席卷全球,技術(shù)創(chuàng)新強力推進著人類社會由工業(yè)社會向信息化社會轉(zhuǎn)型。在信息化社會,計算機無處不在,智能化、海量數(shù)據(jù)與人類生活密切相關(guān)。對人類而言,計算機絕不僅僅是運行應(yīng)用軟件的工具,而且蘊涵著一種科學的方法論。那么,提高自身的計算機技術(shù)水平,更好地利用計算機自動化地解決問題,更大程度地進行創(chuàng)業(yè)創(chuàng)新,就需要全面培養(yǎng)計算思維能力。計算思維能力就是像計算機科學家一樣去思考問題,解決問題,已被明確倡導(dǎo)為是與讀、寫、算并列的第四種基本技能。計算思維的內(nèi)涵并不僅僅停留在計算機科學的基礎(chǔ)上,它是一系列運用計算機科學的基礎(chǔ)概念進行求解問題、設(shè)計系統(tǒng)和理解人類行為的思維活動。計算思維被認定為每個學生都應(yīng)掌握的能力,計算思維的培養(yǎng)成為貫穿各個學段的核心思想。教育部也要求大學計算機教學的總體建設(shè)目標定位在普及計算機文化,培養(yǎng)專業(yè)應(yīng)用能力,訓練計算思維上。
計算思維是非計算機專業(yè)學生進入大學的門計算機基礎(chǔ)課程,將計算思維與計算機基礎(chǔ)教育相結(jié)合,根據(jù)學生專業(yè)類別和知識能力水平精準定位計算思維的學習,已經(jīng)得到了計算機基礎(chǔ)教育工作者的認可。本書作者團隊長年扎根計算機基礎(chǔ)教學線,清楚分析了學生的實際需求,希望能探索出適合、有針對性的計算機基礎(chǔ)教育新模式。
計算機科學教育是計算思維培養(yǎng)中不可或缺的一部分,不僅包括計算機系統(tǒng)理論知識,還包括計算思維活動的實踐。計算思維實踐的核心精神在于以問題求解為牽引,以程序設(shè)計為載體。如何選擇稱手的編程語言來進行設(shè)計程序呢?大數(shù)據(jù)時代的市場幫我們選擇了Python。Python語言簡潔易學、功能強大,跨越各種平臺,很適合非計算機專業(yè)的學生快速入門。以本書為例,不同于其他Python語言書籍,本書直接利用Python語言第三方庫(turtle庫)進行編程實踐,讓學生結(jié)合特定編程模式不斷拓展思路,層層遞進式地更改參數(shù),得到越來越豐富的輸出效果,也讓學生改變了編程抽象、枯燥的固有觀念,對思維實踐產(chǎn)生了興趣,也讓其切身體會利用計算工具解決問題的過程。
全書一共分上下兩篇。上篇主要介紹了計算思維和計算機相關(guān)的知識概念,其中包含了計算思維的概念、經(jīng)典的計算機科學知識、的計算機科技的發(fā)展以及計算機求解問題的基本方法。下篇主要通過Python語言程序的實例分析和語法結(jié)構(gòu)介紹,切實解決了計算思維落地問題,還涵蓋了Python跨學科應(yīng)用第三方庫的使用。全書主要特色如下。計算思維與Python編程基礎(chǔ)(微課版)前言(1) 內(nèi)容全面。全書力求涵蓋計算機、計算思維、Python 語言等主要知識點,并且與時俱進地融入了現(xiàn)在主流的計算機科學技術(shù)的介紹,如人工智能、云計算、物聯(lián)網(wǎng)等等,確保知識體系的完整性、實用性。
(2) 理論與實踐結(jié)合。上下兩篇的側(cè)重點雖各有不同,但是聯(lián)系緊密。上篇理論部分通俗易懂,簡潔樸素;下篇程序語言實踐案例簡單,極易上手,并在程序解決過程中全程融入計算思維理念。
(3) 結(jié)構(gòu)清晰。每一章后都給出本章知識結(jié)構(gòu)的思維導(dǎo)圖,圖文并茂地幫助讀者理清章節(jié)脈絡(luò),掌握基礎(chǔ)知識架構(gòu),少走彎路。
(4) 每章都配有習題和微課視頻,教材提供配套的課件、例題案例的源代碼和習題答案。
本書由黃曉平、方翠、王億首和吳呈瑜共同編寫。其中,黃曉平編寫了第2、8、9和11章并統(tǒng)稿,方翠編寫了第1、3和6章,王億首編寫了第4章和第7章,吳呈瑜編寫了第5章和第10章。本書在出版過程中,還得到了清華大學出版社的大力支持,在此表示誠摯的感謝。
由于作者水平有限,書中難免有不妥和疏漏之處,懇請各位專家、同仁和讀者不吝賜教和批評指正,并與筆者討論。
作者2021年5月
黃曉平,講師,浙江理工大學信息學院計算機系,一直從事計算機基礎(chǔ)教學工作,講授過大學計算機基礎(chǔ)計算機與計算思維C語言程序設(shè)計等課程。
上篇計 算 思 維
第1章計算思維與計算機31.1計算思維概述3
1.1.1計算思維的定義3
1.1.2計算思維的過程4
1.1.3計算思維的特征4
1.2計算思維的應(yīng)用5
1.2.1計算思維在生活中的應(yīng)用5
1.2.2計算思維在其他學科上的應(yīng)用6
1.3計算機概述8
1.3.1計算工具的發(fā)展8
1.3.2現(xiàn)代計算機的理論基礎(chǔ)10
1.3.3現(xiàn)代計算機的基本框架和特點10
1.3.4現(xiàn)代計算機的發(fā)展11
1.3.5計算機的發(fā)展趨勢13
1.3.6計算機的應(yīng)用15
1.4人工智能時代下的計算思維17
1.4.1人工智能簡介17
1.4.2人工智能的應(yīng)用領(lǐng)域17
1.4.3人工智能時代的挑戰(zhàn)22
1.4.4人工智能與計算思維22
1.5本章小結(jié)23
1.6習題24
第2章計算機的信息表示25
2.1進位記數(shù)制25
2.1.1數(shù)制的基本概念25
2.1.2基數(shù)25
2.1.3位權(quán)25
2.2常見的各種數(shù)制及轉(zhuǎn)換26
2.2.1十進制26
2.2.2二進制26
2.2.3八進制和十六進制27
2.2.4不同進制數(shù)的轉(zhuǎn)換27
2.3二進制及其運算29
2.3.1計算機中的數(shù)據(jù)單位30
2.3.2二進制的算術(shù)運算30
2.3.3二進制的邏輯運算31
2.4數(shù)值在計算機中的表示31
2.4.1整數(shù)在計算機中的表示31
2.4.2實數(shù)在計算機中的表示32
2.5文本在計算機中的表示33
2.5.1鍵盤上的符號34
2.5.2中文字符35
2.5.3擴展符號Unicode編碼37
2.6圖像在計算機中的表示37
2.6.1圖像的種類38
2.6.2圖像的數(shù)字化過程38
2.6.3圖像的基本屬性41
2.6.4圖像格式41
2.7聲音在計算機中的表示42
2.7.1聲音的數(shù)字化42
2.7.2音頻的技術(shù)指標43
2.8本章小結(jié)43
2.9習題44
第3章計算機系統(tǒng)46
3.1計算機系統(tǒng)概述46
3.1.1計算機的體系結(jié)構(gòu)46
3.1.2計算機系統(tǒng)的組成48
3.2計算機的硬件系統(tǒng)48
3.2.1中央處理器48
3.2.2主存儲器50
3.2.3輔助存儲器52
3.2.4主板53
3.2.5總線與接口55
3.2.6基本輸入設(shè)備56
3.2.7基本輸出設(shè)備56
3.3計算機的軟件系統(tǒng)57
3.3.1指令和程序57
3.3.2程序設(shè)計語言58
3.3.3計算機軟件的分類59
3.4計算機的操作系統(tǒng)60
3.4.1操作系統(tǒng)的定義60
3.4.2操作系統(tǒng)的功能60
3.4.3操作系統(tǒng)的載入64
3.4.4操作系統(tǒng)的分類65
3.5本章小結(jié)67
3.6習題68
第4章計算機網(wǎng)絡(luò)69
4.1計算機網(wǎng)絡(luò)基礎(chǔ)69
4.1.1計算機網(wǎng)絡(luò)的形成和發(fā)展69
4.1.2計算機網(wǎng)絡(luò)的定義和功能70
4.2計算機網(wǎng)絡(luò)的分類71
4.2.1按覆蓋的地域范圍分類72
4.2.2按拓撲結(jié)構(gòu)分類73
4.3網(wǎng)絡(luò)設(shè)備74
4.3.1傳輸介質(zhì)74
4.3.2互聯(lián)設(shè)備75
4.4Internet76
4.4.1Internet的發(fā)展76
4.4.2Internet的工作原理76
4.4.3IP地址與域名78
4.4.4接入方式80
4.5網(wǎng)絡(luò)安全81
4.5.1網(wǎng)絡(luò)安全的定義81
4.5.2網(wǎng)絡(luò)安全面臨的威脅82
4.5.3網(wǎng)絡(luò)安全防范技術(shù)83
4.6計算機網(wǎng)絡(luò)前沿技術(shù)84
4.6.1云計算84
4.6.2物聯(lián)網(wǎng)87
4.6.3區(qū)塊鏈90
4.6.4互聯(lián)網(wǎng) 92
4.7本章小結(jié)93
4.8習題95
第5章計算思維與算法96
5.1算法的概述96
5.1.1算法的定義和由來96
5.1.2算法的特征97
5.1.3算法的描述97
5.1.4算法的評價99
5.2常用經(jīng)典算法100
5.2.1窮舉算法100
5.2.2貪心算法101
5.2.3遞推算法102
5.2.4遞歸算法103
5.2.5回溯算法104
5.2.6動態(tài)規(guī)劃算法105
5.3排序算法106
5.3.1冒泡排序106
5.3.2選擇排序107
5.3.3快速排序108
5.4查找算法109
5.4.1順序查找109
5.4.2二分查找109
5.4.3插值查找110
5.5本章小結(jié)111
5.6習題111
下篇Python編程基礎(chǔ)
第6章Python繪圖1156.1走近Python115
6.1.1認識Python115
6.1.2安裝Python116
6.1.3運行Python117
6.2Python繪圖120
6.2.1turtle庫語法元素分析121
6.2.2繪制正多邊形122
6.2.3繪制正多邊形花124
6.3Python繪圖實例126
6.3.1繪制美麗的螺旋花126
6.3.2繪制多彩花129
6.3.3繪制顏色填充圖案130
6.4本章小結(jié)131
6.5習題132
第7章選擇結(jié)構(gòu)135
7.1數(shù)值類型135
7.1.1數(shù)值類型概述135
7.1.2整數(shù)類型135
7.1.3浮點數(shù)類型136
7.1.4復(fù)數(shù)類型137
7.2數(shù)值類型的操作138
7.2.1基本運算138
7.2.2內(nèi)置數(shù)值運算函數(shù)141
7.3輸入和輸出142
7.3.1input()函數(shù)142
7.3.2print()函數(shù)144
7.3.3格式化輸出145
7.4選擇結(jié)構(gòu)149
7.4.1單分支結(jié)構(gòu)149
7.4.2雙分支結(jié)構(gòu)150
7.4.3多分支結(jié)構(gòu)151
7.4.4選擇結(jié)構(gòu)的嵌套153
7.5本章小結(jié)154
7.6習題155
第8章循環(huán)結(jié)構(gòu)157
8.1字符串類型157
8.1.1字符串類型的表示157
8.1.2基本的字符串操作159
8.1.3內(nèi)置字符串處理函數(shù)159
8.2組合數(shù)據(jù)類型160
8.2.1組合數(shù)據(jù)類型概述160
8.2.2列表類型及其操作162
8.2.3元組類型及其操作163
8.2.4字典類型及其操作164
8.3range()函數(shù)165
8.4循環(huán)結(jié)構(gòu)166
8.4.1for循環(huán)語句166
8.4.2for循環(huán)實例168
8.4.3while循環(huán)語句169
8.4.4break和continue170
8.4.5猜數(shù)游戲171
8.5random庫的使用173
8.6本章小結(jié)175
8.7習題176
第9章函數(shù)178
9.1函數(shù)的基本使用178
9.1.1函數(shù)的定義178
9.1.2函數(shù)的調(diào)用過程180
9.1.3函數(shù)實例181
9.2函數(shù)的參數(shù)傳遞183
9.2.1可選參數(shù)和可變參數(shù)183
9.2.2參數(shù)的位置傳遞和名稱傳遞183
9.2.3函數(shù)的返回值184
9.3datetime庫184
9.3.1datetime庫概述185
9.3.2datetime庫解析185
9.4代碼復(fù)用和模塊化設(shè)計186
9.5本章小結(jié)187
9.6習題188
第10章算法實現(xiàn)189
10.1猜車牌號問題窮舉法189
10.2猜班級人數(shù)問題二分法190
10.301背包問題貪心法192
10.4爬樓梯問題遞推法195
10.5漢諾塔問題遞歸法196
10.6湊零錢問題動態(tài)規(guī)劃算法200
10.7短路徑問題廣度優(yōu)先搜索算法201
10.8本章小結(jié)205
10.9習題206
第11章綜合實例207
11.1Python第三方庫的安裝207
11.1.1pip工具安裝207
11.1.2自定義安裝209
11.1.3文件安裝209
11.2音頻處理210
11.2.1pydub庫210
11.2.2查看音頻文件信息211
11.2.3音頻文件剪輯和拼接212
11.2.4pydub的常見用法213
11.3圖像處理214
11.3.1圖像旋轉(zhuǎn)214
11.3.2圖像縮放215
11.3.3圖像裁剪215
11.4文本詞頻統(tǒng)計217
11.4.1英文詞匯量統(tǒng)計217
11.4.2英文詞頻統(tǒng)計217
11.4.3中文詞頻統(tǒng)計220
11.5網(wǎng)絡(luò)爬蟲222
11.5.1獲取網(wǎng)頁內(nèi)容222
11.5.2處理網(wǎng)頁內(nèi)容223
11.6本章小結(jié)225
11.7習題226
參考文獻227