本書是高等學校非計算機專業(yè)的計算機基礎課程的理論教材,根據教育部高等學校大學計算機課程教學指導委員會提出的以計算思維為切入點的計算機基礎教學改革的思路編寫而成,以培養(yǎng)學生計算思維能力為目標。 全書分上下兩篇,共11章。上篇為計算思維,有5章,主要內容為計算思維的理論基礎,包括計算思維與計算機、計算機的信息表示、計算機系統(tǒng)、計算機網絡、計算思維與算法。下篇為Python編程基礎,有6章,主要內容為Python 編程基礎,包括Python繪圖、選擇結構、循環(huán)結構、函數、算法實現、綜合實例。全書提供了大量應用實例,每章后均附有習題。 本書可作為高等院校非計算機專業(yè)的大學計算機基礎課教材,也可作為計算機入門學習的參考書。
本書以計算思維為切入點,詳細講解了計算機基礎、計算機信息表示、計算機系統(tǒng)、計算網絡和計算思維的算法。根據非計算機專業(yè)的教學需求,詳細講解了Python編程基礎,繪圖,選擇、循環(huán)語句,函數,算法實現和綜合實例等,并配有大量應用實例。
配套資源包括教學課件、教學視頻和習題答案等,是學習計算機及Python編程入門的好教材。
計算思維與Python編程基礎(微課版)近年來,以高速互聯、天地一體、智能便捷、綜合集成為特征的新一代信息基礎設施正在加速形成并不斷完善,以大數據、云計算、人工智能為代表的新一輪信息技術創(chuàng)新浪潮席卷全球,技術創(chuàng)新強力推進著人類社會由工業(yè)社會向信息化社會轉型。在信息化社會,計算機無處不在,智能化、海量數據與人類生活密切相關。對人類而言,計算機絕不僅僅是運行應用軟件的工具,而且蘊涵著一種科學的方法論。那么,提高自身的計算機技術水平,更好地利用計算機自動化地解決問題,更大程度地進行創(chuàng)業(yè)創(chuàng)新,就需要全面培養(yǎng)計算思維能力。計算思維能力就是像計算機科學家一樣去思考問題,解決問題,已被明確倡導為是與讀、寫、算并列的第四種基本技能。計算思維的內涵并不僅僅停留在計算機科學的基礎上,它是一系列運用計算機科學的基礎概念進行求解問題、設計系統(tǒng)和理解人類行為的思維活動。計算思維被認定為每個學生都應掌握的能力,計算思維的培養(yǎng)成為貫穿各個學段的核心思想。教育部也要求大學計算機教學的總體建設目標定位在普及計算機文化,培養(yǎng)專業(yè)應用能力,訓練計算思維上。
計算思維是非計算機專業(yè)學生進入大學的門計算機基礎課程,將計算思維與計算機基礎教育相結合,根據學生專業(yè)類別和知識能力水平精準定位計算思維的學習,已經得到了計算機基礎教育工作者的認可。本書作者團隊長年扎根計算機基礎教學線,清楚分析了學生的實際需求,希望能探索出適合、有針對性的計算機基礎教育新模式。
計算機科學教育是計算思維培養(yǎng)中不可或缺的一部分,不僅包括計算機系統(tǒng)理論知識,還包括計算思維活動的實踐。計算思維實踐的核心精神在于以問題求解為牽引,以程序設計為載體。如何選擇稱手的編程語言來進行設計程序呢?大數據時代的市場幫我們選擇了Python。Python語言簡潔易學、功能強大,跨越各種平臺,很適合非計算機專業(yè)的學生快速入門。以本書為例,不同于其他Python語言書籍,本書直接利用Python語言第三方庫(turtle庫)進行編程實踐,讓學生結合特定編程模式不斷拓展思路,層層遞進式地更改參數,得到越來越豐富的輸出效果,也讓學生改變了編程抽象、枯燥的固有觀念,對思維實踐產生了興趣,也讓其切身體會利用計算工具解決問題的過程。
全書一共分上下兩篇。上篇主要介紹了計算思維和計算機相關的知識概念,其中包含了計算思維的概念、經典的計算機科學知識、的計算機科技的發(fā)展以及計算機求解問題的基本方法。下篇主要通過Python語言程序的實例分析和語法結構介紹,切實解決了計算思維落地問題,還涵蓋了Python跨學科應用第三方庫的使用。全書主要特色如下。計算思維與Python編程基礎(微課版)前言(1) 內容全面。全書力求涵蓋計算機、計算思維、Python 語言等主要知識點,并且與時俱進地融入了現在主流的計算機科學技術的介紹,如人工智能、云計算、物聯網等等,確保知識體系的完整性、實用性。
(2) 理論與實踐結合。上下兩篇的側重點雖各有不同,但是聯系緊密。上篇理論部分通俗易懂,簡潔樸素;下篇程序語言實踐案例簡單,極易上手,并在程序解決過程中全程融入計算思維理念。
(3) 結構清晰。每一章后都給出本章知識結構的思維導圖,圖文并茂地幫助讀者理清章節(jié)脈絡,掌握基礎知識架構,少走彎路。
(4) 每章都配有習題和微課視頻,教材提供配套的課件、例題案例的源代碼和習題答案。
本書由黃曉平、方翠、王億首和吳呈瑜共同編寫。其中,黃曉平編寫了第2、8、9和11章并統(tǒng)稿,方翠編寫了第1、3和6章,王億首編寫了第4章和第7章,吳呈瑜編寫了第5章和第10章。本書在出版過程中,還得到了清華大學出版社的大力支持,在此表示誠摯的感謝。
由于作者水平有限,書中難免有不妥和疏漏之處,懇請各位專家、同仁和讀者不吝賜教和批評指正,并與筆者討論。
作者2021年5月
黃曉平,講師,浙江理工大學信息學院計算機系,一直從事計算機基礎教學工作,講授過大學計算機基礎計算機與計算思維C語言程序設計等課程。
上篇計 算 思 維
第1章計算思維與計算機31.1計算思維概述3
1.1.1計算思維的定義3
1.1.2計算思維的過程4
1.1.3計算思維的特征4
1.2計算思維的應用5
1.2.1計算思維在生活中的應用5
1.2.2計算思維在其他學科上的應用6
1.3計算機概述8
1.3.1計算工具的發(fā)展8
1.3.2現代計算機的理論基礎10
1.3.3現代計算機的基本框架和特點10
1.3.4現代計算機的發(fā)展11
1.3.5計算機的發(fā)展趨勢13
1.3.6計算機的應用15
1.4人工智能時代下的計算思維17
1.4.1人工智能簡介17
1.4.2人工智能的應用領域17
1.4.3人工智能時代的挑戰(zhàn)22
1.4.4人工智能與計算思維22
1.5本章小結23
1.6習題24
第2章計算機的信息表示25
2.1進位記數制25
2.1.1數制的基本概念25
2.1.2基數25
2.1.3位權25
2.2常見的各種數制及轉換26
2.2.1十進制26
2.2.2二進制26
2.2.3八進制和十六進制27
2.2.4不同進制數的轉換27
2.3二進制及其運算29
2.3.1計算機中的數據單位30
2.3.2二進制的算術運算30
2.3.3二進制的邏輯運算31
2.4數值在計算機中的表示31
2.4.1整數在計算機中的表示31
2.4.2實數在計算機中的表示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圖像的數字化過程38
2.6.3圖像的基本屬性41
2.6.4圖像格式41
2.7聲音在計算機中的表示42
2.7.1聲音的數字化42
2.7.2音頻的技術指標43
2.8本章小結43
2.9習題44
第3章計算機系統(tǒng)46
3.1計算機系統(tǒng)概述46
3.1.1計算機的體系結構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基本輸入設備56
3.2.7基本輸出設備56
3.3計算機的軟件系統(tǒng)57
3.3.1指令和程序57
3.3.2程序設計語言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本章小結67
3.6習題68
第4章計算機網絡69
4.1計算機網絡基礎69
4.1.1計算機網絡的形成和發(fā)展69
4.1.2計算機網絡的定義和功能70
4.2計算機網絡的分類71
4.2.1按覆蓋的地域范圍分類72
4.2.2按拓撲結構分類73
4.3網絡設備74
4.3.1傳輸介質74
4.3.2互聯設備75
4.4Internet76
4.4.1Internet的發(fā)展76
4.4.2Internet的工作原理76
4.4.3IP地址與域名78
4.4.4接入方式80
4.5網絡安全81
4.5.1網絡安全的定義81
4.5.2網絡安全面臨的威脅82
4.5.3網絡安全防范技術83
4.6計算機網絡前沿技術84
4.6.1云計算84
4.6.2物聯網87
4.6.3區(qū)塊鏈90
4.6.4互聯網 92
4.7本章小結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常用經典算法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本章小結111
5.6習題111
下篇Python編程基礎
第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本章小結131
6.5習題132
第7章選擇結構135
7.1數值類型135
7.1.1數值類型概述135
7.1.2整數類型135
7.1.3浮點數類型136
7.1.4復數類型137
7.2數值類型的操作138
7.2.1基本運算138
7.2.2內置數值運算函數141
7.3輸入和輸出142
7.3.1input()函數142
7.3.2print()函數144
7.3.3格式化輸出145
7.4選擇結構149
7.4.1單分支結構149
7.4.2雙分支結構150
7.4.3多分支結構151
7.4.4選擇結構的嵌套153
7.5本章小結154
7.6習題155
第8章循環(huán)結構157
8.1字符串類型157
8.1.1字符串類型的表示157
8.1.2基本的字符串操作159
8.1.3內置字符串處理函數159
8.2組合數據類型160
8.2.1組合數據類型概述160
8.2.2列表類型及其操作162
8.2.3元組類型及其操作163
8.2.4字典類型及其操作164
8.3range()函數165
8.4循環(huán)結構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猜數游戲171
8.5random庫的使用173
8.6本章小結175
8.7習題176
第9章函數178
9.1函數的基本使用178
9.1.1函數的定義178
9.1.2函數的調用過程180
9.1.3函數實例181
9.2函數的參數傳遞183
9.2.1可選參數和可變參數183
9.2.2參數的位置傳遞和名稱傳遞183
9.2.3函數的返回值184
9.3datetime庫184
9.3.1datetime庫概述185
9.3.2datetime庫解析185
9.4代碼復用和模塊化設計186
9.5本章小結187
9.6習題188
第10章算法實現189
10.1猜車牌號問題窮舉法189
10.2猜班級人數問題二分法190
10.301背包問題貪心法192
10.4爬樓梯問題遞推法195
10.5漢諾塔問題遞歸法196
10.6湊零錢問題動態(tài)規(guī)劃算法200
10.7短路徑問題廣度優(yōu)先搜索算法201
10.8本章小結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圖像旋轉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網絡爬蟲222
11.5.1獲取網頁內容222
11.5.2處理網頁內容223
11.6本章小結225
11.7習題226
參考文獻227