本書兼顧計算機科學基礎知識和計算思維,以計算思維相關內容為主,將信息表示、計算機系統、操作系統、網絡、多媒體技術等知識穿插進來,選擇Python作為計算實踐的語言,內容更偏重于如何應用計算思維解決各領域問題,各領域包括計算機科學領域。實踐內容將在授課內容的基礎上進行拓展,并要求學生運用Python及相關的配套庫進行問題求解練習。最終,通過應用問題求解的講授和實踐,培養學生在理解計算機系統的基礎上,主動在各自專業學習中利用計算思維的方法和技能,進行問題求解的能力,并能動手解決具有一定難度的實際問題。
本書內容豐富,語言淺顯易懂,案例驅動,概念清晰,實用性強,適合作為高等學校計算機基礎課程的教材,也可以作為計算機培訓、計算機等級考試和計算機初學者的參考書。
?本書特色:
統籌兼顧,綜合安排計算機科學基礎知識與計算思維內容。
雙重作用,將計算機基礎知識作為計算思維應用的研究對象。
內容較廣,用多領域案例,向學生展現計算思維的應用。
前置要求低,讀者可無程序設計背景知識,適用于大學新生。
出版說明
高等學校計算機基礎教育教材精選在教育部關于高等學校計算機基礎教育三層次方案的指導下,我國高等學校的計算機基礎教育事業蓬勃發展。經過多年的教學改革與實踐,全國很多學校在計算機基礎教育這一領域中積累了大量寶貴的經驗,取得了許多可喜的成果。
隨著科教興國戰略的實施以及社會信息化進程的加快,目前我國的高等教育事業正面臨著新的發展機遇,但同時也必須面對新的挑戰。這些都對高等學校的計算機基礎教育提出了更高的要求。為了適應教學改革的需要,進一步推動我國高等學校計算機基礎教育事業的發展,我們在全國各高等學校精心挖掘和遴選了一批經過教學實踐檢驗的優秀的教學成果,編輯出版了這套教材。教材的選題范圍涵蓋了計算機基礎教育的三個層次,包括面向各高校開設的計算機必修課、選修課以及與各類專業相結合的計算機課程。
為了保證出版質量,同時更好地適應教學需求,本套教材將采取開放的體系和滾動出版的方式(即成熟一本、出版一本,并保持不斷更新),堅持寧缺毋濫的原則,力求反映我國高等學校計算機基礎教育的最新成果,使本套叢書無論在技術質量上還是文字質量上均成為真正的“精選”。
清華大學出版社一直致力于計算機教育用書的出版工作,在計算機基礎教育領域出版了許多優秀的教材。本套教材的出版將進一步豐富和擴大我社在這一領域的選題范圍、層次和深度,以適應高校計算機基礎教育課程層次化、多樣化的趨勢,從而更好地滿足各學校由于條件、師資和生源水平、專業領域等的差異而產生的不同需求。我們熱切期望全國廣大教師能夠積極參與到本套叢書的編寫工作中來,把自己的教學成果與全國的同行們分享;同時也歡迎廣大讀者對本套教材提出寶貴意見,以便我們改進工作,為讀者提供更好的服務。
我們的電子郵件地址是jiaoh@tup.tsinghua.edu.cn。聯系人:焦虹。
清華大學出版社
前言
大學計算機基礎(第2版)人要成功融入社會所必備的思維能力,是由其所處時代能夠獲得的工具決定的。計算機是信息社會的必備工具之一,如何有效利用計算機分析和解決問題,將與閱讀、寫作和算術一樣,成為21世紀每個人的基本技能,而不僅僅屬于計算機專業人員。計算機正在對人們的生活、工作,甚至思維產生深刻的影響。
“大學計算機基礎”是大學本科教育的第一門計算機公共基礎課程,它的改革越來越受到人們的關注。課程的主要目的是從使用計算機、理解計算機系統和計算思維3個方面培養學生的計算機應用能力。從2008年開始,以“計算思維”的培養為主線開展計算科學通識教育,逐漸成為國內外計算機基礎教育界的共識。
基于這種認識,作者對第一版教材進行了較大幅度的修改,增加了計算思維所占的比重。指導思想是兼顧計算機基礎知識和計算思維,選擇Python作為實踐語言,將信息表示與處理、計算機系統、網絡、數據庫、多媒體等知識既作為教學內容,又作為計算思維求解問題的研究對象,并加以實踐,教材內容更偏重于如何應用計算思維解決各領域問題。最終,希望通過這種問題求解的學習和實踐,培養學生在理解計算機基礎知識的同時,能主動在各自專業學習中利用計算思維的方法和技能,進行問題求解,能動手解決具有一定難度的實際問題。
本書包含10章,大致可分為如下部分:計算與社會(第1章)、計算思維與問題求解基礎(第2、3章)、信息表示及處理(第4、8、9章)、計算機系統與網絡(第5~7章)、計算機發展新技術(第10章)。
本書內容涉及計算機專業多門課程的知識,概念龐雜,術語繁多。表面上看,章與章之間的聯系松散。對于初學者來說,學好這門課程并不容易,融會貫通就更加困難。如何把握全書的脈絡?建議以“信息表示和信息處理”和“計算思維與計算機問題求解”作為理解章節內容聯系的兩條主要線索。
計算機系統是信息處理的工具,而信息處理依賴于某種形式的信息表示。本書主要介紹用二進制表示數值信息、字符信息、聲音信息和圖像信息的方法,以文件和數據庫形式組織信息的技術,計算機系統處理信息的工作原理。每一個計算機系統功能都涉及某類或某幾類信息,每一個計算機系統功能都可以轉換為信息處理過程。讀者應該思考:這些信息是怎樣表示的?為什么要使用這種表示方法?計算機系統功能由哪些信息處理過程組成?這些處理過程包含哪些步驟?處理步驟是如何(自動)實現的?在理解信息表示和信息處理的基礎上,學習計算思維與計算機問題求解方法,是為了更好地發揮計算機的作用,解決具體問題。讀者在學習計算思維與計算機問題求解時,應該考慮:以計算機基礎知識為研究內容,計算思維如何思考問題和解決問題,如何類比到其他領域的問題上。碰到具體問題時,可以考慮該問題是否有計算的解,解是什么,如何實現解,如何讓計算機幫助求解。
如果這些問題都明晰了,對融會貫通全書內容會有很大幫助。
本書適用于計算機專業和非計算機專業一年級新生,不要求有計算機程序設計經驗,并且也不是以程序設計為主要內容,而是要求學生專注于理解計算思維求解問題的方法和技能。本書中一些Python語言基礎知識的介紹,是幫助讀者閱讀和理解教材中給出的Python程序。希望讀者能在理解的基礎上,對這些程序進行小修改,來實踐自己的問題求解方法。
本書的第1、4章由陳躍新編寫,第3章大部分由王挺編寫,第2和第5~7章由李暾編寫,第8章由賈麗麗編寫,第9章由黃旭慧編寫,第10章由陳立前編寫,各章案例及新增內容由李暾編寫。全書由李暾、毛曉光負責統稿。王志英、寧洪、陳懷義和王保恒等教授對本書的編寫給予了許多指導,陳立前為本書的文字整理和校對做了大量工作。此外,本書還參考了很多文獻資料和網絡素材,在此一并表示衷心的感謝。
本書的寫作集體根據多年的教學實踐,在內容的甄選、全書組織形式等方面既借鑒了同類書的成功經驗,也做出了自己的努力進行了改進,而且改進的空間還很大,熱切希望廣大讀者能夠予以斧正。
作者
2017年7月18日大學計算機基礎(第2版)
收起全部↑
李暾 男,博士,副教授,畢業于國防科技大學計算機科學與技術專業。長期從事計算機專業相關課程教學與研究工作,承擔了“大學計算機基礎”“計算機程序設計”“離散數學”“軟件體系結構與設計”等課程的授課任務。在微處理器設計驗證、衛星綜合電子系統等方面發表論文50余篇,他引160余次。在ACM*教學會議ITiCSE、《計算機教育》等會議和期刊發表教學論文10余篇,進入EI檢索3篇。
目錄
大學計算機基礎(第2版)第1章計算與社會1
1.1計算概論1
1.2計算裝置發展簡史4
1.2.1機械式計算裝置4
1.2.2圖靈機和圖靈7
1.2.3現代電子計算機9
1.2.4計算機的發展趨勢12
1.3計算技術的應用13
1.4信息化社會與人18
1.5小結20
1.6習題20
第2章Python簡介21
2.1引言21
2.2Python基本元素22
2.2.1對象、表達式和數值類型22
2.2.2變量和賦值24
2.3分支語句25
2.4str類型與輸入27
2.5循環28
2.6內置數據結構29
2.6.1列表29
2.6.2元組32
2.6.3字典33
2.7函數33
2.8面向對象基礎36
2.9Python編程示例——模擬圖靈機40大學計算機基礎(第2版)目錄2.10小結44
2.11習題44
第3章計算思維與計算機問題求解47
3.1計算思維48
3.1.1計算思維簡介48
3.1.2一個例子——混沌現象49
3.2計算機問題求解50
3.2.1基本步驟51
3.2.2Eratosthenes的篩子51
3.3算法、數據結構與程序54
3.3.1算法54
3.3.2數據結構56
3.3.3程序58
3.4算法設計59
3.4.1算法設計基礎59
3.4.2算法設計常用策略60
3.4.3算法示例61
3.4.4算法復雜度66
3.5程序設計語言68
3.5.1程序設計語言及其分類69
3.5.2Python實現編譯器示例71
3.6軟件開發方法及示例74
3.6.1軟件開發方法74
3.6.2結構化程序設計示例76
3.7小結79
3.8習題80
第4章信息編碼及數據表示82
4.1信息論基礎83
4.2進制85
4.2.1進制的概念85
4.2.2二進制86
4.2.3八進制和十六進制89
4.2.4二進制與八進制、十六進制之間的轉換89
4.3數字電路及模擬90
4.3.1邏輯門的建模與模擬91
4.3.2加法器建模與模擬94
4.3.3存儲電路建模與模擬96
4.4計算機數值表示98
4.4.1計算機碼制99
4.4.2定點數和浮點數101
4.5信息的數字化103
4.5.1數值的數字化103
4.5.2字符的數字化105
4.5.3漢字編碼107
4.5.4Unicode碼108
4.6信息處理示例——加解密109
4.6.1RSA加密原理109
4.6.2RSA的Python實現110
4.7小結114
4.8習題114
第5章計算機系統組成與結構118
5.1概述119
5.1.1計算機硬件系統的結構119
5.1.2計算機軟件121
5.2中央處理器122
5.2.1CPU的結構122
5.2.2指令系統123
5.2.3CPU的工作過程125
5.2.4CPU高級話題126
5.3存儲系統128
5.3.1主存儲器系統129
5.3.2輔存儲器系統131
5.3.3高速緩存133
5.4總線134
5.5輸入輸出系統135
5.5.1系統結構與控制135
5.5.2常見的輸入輸出設備137
5.6Python構建馮·諾依曼體系結構模擬器140
5.7計算機軟件概述144
5.7.1軟件與軟件的組成144
5.7.2軟件的特點145
5.7.3幾類常用的軟件146
5.7.4軟件的安全與保護149
5.8小結149
5.9習題150
第6章操作系統152
6.1概述153
6.1.1操作系統發展簡史153
6.1.2操作系統基礎155
6.1.3常用的操作系統156
6.2進程管理158
6.2.1進程與程序158
6.2.2進程狀態160
6.2.3進程管理與調度161
6.2.4利用Python查看進程信息163
6.3存儲管理165
6.3.1存儲管理概述165
6.3.2存儲管理方式167
6.3.3利用Python查看系統存儲信息170
6.4文件管理172
6.4.1文件與文件系統172
6.4.2文件組織結構174
6.4.3目錄與文件控制塊175
6.4.4文件存儲空間管理177
6.4.5Python文件操作178
6.5設備管理180
6.5.1設備管理基礎180
6.5.2輸入輸出軟件系統181
6.6用戶接口183
6.7操作系統的加載185
6.8小結186
6.9習題186
第7章計算機網絡及應用188
7.1計算機網絡基礎189
7.1.1計算機網絡的發展歷史189
7.1.2計算機網絡的分類191
7.1.3計算機網絡體系結構與協議192
7.1.4計算機網絡傳輸介質及設備197
7.2局域網199
7.2.1局域網概述199
7.2.2介質訪問控制協議200
7.2.3以太網203
7.3Internet基礎204
7.3.1Internet概述204
7.3.2TCP/IP協議206
7.3.3PythonTCP/IP網絡編程211
7.4Internet應用215
7.4.1萬維網215
7.4.2電子郵件218
7.4.3文件傳輸219
7.4.4搜索引擎220
7.4.5Python編程發送電子郵件221
7.5無線網絡222
7.6物聯網225
7.7Python案例——抓取網頁227
7.8小結232
7.9習題232
第8章數據庫技術應用基礎233
8.1概述233
8.1.1數據管理發展簡史235
8.1.2數據庫的基本概念235
8.1.3數據庫技術管理數據的主要特征237
8.1.4數據庫的應用238
8.2數據模型240
8.2.1概念模型241
8.2.2邏輯模型245
8.2.3ER模型到關系模型的轉化249
8.3數據庫管理系統249
8.3.1數據庫管理系統的功能250
8.3.2常見數據庫管理系統軟件251
8.4Python數據庫程序設計示例253
8.5數據分析示例255
8.6小結260
8.7習題260
第9章多媒體技術基礎262
9.1概述263
9.1.1多媒體的基本概念263
9.1.2多媒體計算機系統組成264
9.1.3多媒體技術的主要應用266
9.2數字音頻267
9.2.1聲音的數字化267
9.2.2數字音頻的技術指標268
9.2.3數字音頻處理269
9.2.4常用音頻文件格式271
9.3數字圖像處理技術272
9.3.1圖像的顏色272
9.3.2圖像的數字化274
9.3.3數字圖像的屬性275
9.3.4位圖與矢量圖276
9.3.5圖像的加工處理277
9.3.6常用圖像文件格式278
9.3.7Python繪制分形圖形279
9.4視頻和動畫技術282
9.4.1視頻基礎282
9.4.2常用視頻文件格式283
9.4.3計算機動畫概述283
9.4.4動畫文件格式284
9.5多媒體數據壓縮284
9.5.1概述284
9.5.2數據壓縮標準287
9.5.3數據壓縮示例及Python實現287
9.6Python示例——生成驗證碼293
9.7小結294
9.8習題294
第10章計算機發展新技術297
10.1高性能計算298
10.1.1高性能計算的含義及意義298
10.1.2高性能計算的關鍵技術299
10.1.3高性能計算的典型應用303
10.1.4高性能計算的發展挑戰303
10.2云計算與大數據305
10.2.1云計算305
10.2.2大數據307
10.3人工智能309
10.3.1人工智能的基本概念與發展歷程309
10.3.2搜索310
10.3.3知識表示與推理311
10.3.4機器學習313
10.3.5智能控制316
10.4新型計算技術317
10.4.1量子計算317
10.4.2光計算318
10.4.3生物計算318
10.5小結319
10.6習題320
參考文獻321
第5章計算機系統組成與結構【學習內容】
本章介紹計算機系統的相關內容,主要知識點包括如下。
(1)計算機系統的基本概念及其組成。
(2)馮·諾依曼體系結構及其工作機制。
(3)中央處理器的結構和工作原理。
(4)存儲系統的基礎知識與工作原理。
(5)總線結構、工作過程及常用標準。
(6)輸入輸出控制方式。
(7)計算機軟件系統的分類、層次結構及主要功能。
(8)計算思維在計算機系統中的體現。
【學習目標】
通過本章的學習,讀者應掌握以下內容。
(1)了解計算機系統的組成,理解系統各部分的作用。
(2)理解馮·諾依曼體系結構。
(3)掌握中央處理器的工作過程。
(4)理解存儲系統的設計原理、構成和工作原理。
(5)理解輸入輸出系統的構成和控制方式,掌握基本術語和一些指標的計算方法。
(6)理解總線結構、工作原理以及評價指標。
(7)了解CISC、RISC、流水及并行處理等概念。
(8)了解計算機軟件系統的分類、層次結構及主要功能。
(9)了解對復雜系統如馮·諾依曼體系結構的抽象與模擬的方法。本章主要介紹信息處理的核心裝置——計算機的硬件系統,包括其結構、如何支持信息處理,以及各部分在信息處理中的作用。首先從全局角度介紹計算機系統的體系結構,以馮·諾依曼體系結構為依據,介紹計算機系統的硬件構成。然后圍繞該體系結構的各部件,介紹它們如何進行信息表示、信息傳遞和信息處理,偏重于各部件的核心構成以及基本工作原理,并用模擬的方法進行研究。最后介紹軟件系統的基礎知識。大學計算機基礎(第2版)第5章計算機系統組成與結構5.1概述
一般來說,計算機是一種可編程的機器,它接收輸入,存儲并且處理數據,然后按某種有意義的格式進行輸出。可編程指的是能給計算機下一系列的命令,并且這些命令能被保存在計算機中,并在某個時刻能被取出執行。
通常所說的計算機實際上指的是計算機系統,它包括硬件和軟件兩大部分。硬件系統指的是物理設備,包括用于存儲并處理數據的主機系統,以及各種與主機相連的、用于輸入和輸出數據的外部設備,如鍵盤、鼠標、顯示器和磁帶機等,根據其用途又分為輸入設備和輸出設備。計算機的硬件系統,是整個計算機系統運行的物理平臺。計算機系統要能發揮作用,僅有硬件系統是不夠的,還需要具備完成各項操作的程序,以及支持這些程序運行的平臺等條件,這就是軟件系統。所以,一個實際的計算機系統通常由圖51所示的結構構成。
圖51計算機系統的構成
……