《計算機科學導論(第5版)》按照教育部高教司主持評審的《中國計算機科學與技術學科教程2002》進行編寫,並參照美國計算機學會(Association for Computing Machinery,ACM)和美國電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)的計算教程2015,用邏輯嚴密的編寫方式將讀者引入本學科各個富有挑戰性的領域之中。《計算機科學導論(第5版)》介紹瞭計算機體係結構與組織、程序設計語言、程序設計基礎、算法與復雜性、信息管理、軟件工程、操作係統、網絡計算、圖形學和可視化計算、人機交互、離散結構、數值計算科學、智能係統、社會和職業問題等14個核心體,力求讓讀者對計算機科學與技術專業有比較深入的瞭解,樹立專業學習的責任感和自豪感。
《計算機科學導論(第5版)》是在《計算機科學導論》(第4版)的基礎上進行修訂的,主要修訂內容有:刪減瞭一些復雜的理論知識,增加瞭雲計算與物聯網、大數據分析、互聯網+、數字地球、智慧城市、電子商務、智能傢居、智能交通、3D打印技術、微博、微信等內容。本書介紹瞭計算機科學與技術的核心內容,使讀者理解計算機係統的信息處理本質,掌握數據錶達和數據加工錶達的層次方法,瞭解計算機係統的功能組成,認識計算機科學與技術對人類社會的重要推動作用。
《計算機科學導論(第5版)》內容由淺入深、結構嚴謹,力求避免內容重復、結構鬆散等弊病。由於本書涉及的內容繁多,各高校任課教師可根據學生的情況,在學習本書時適當調整學時,對其中的一些章節也可以根據各高校的實際情況選用。
《計算機科學導論(第5版)》結閤理論講解和實際應用,嚴格按照教育部高教司主持評審的《中國計算機科學與技術學科教程2002》進行編寫,並參照美國計算機學會和美國電氣和電子工程師協會的計算教程(Computing Curricula,CC),對計算機科學與技術進行係統化和科學化闡述。本書具體介紹瞭計算機體係結構與組織、程序設計語言、程序設計基礎、算法與復雜性、信息管理、軟件工程、操作係統、網絡計算、圖形學和可視化計算、人機交互、離散結構、數值計算科學、智能係統、社會和職業問題等14個核心體,目的是讓讀者瞭解計算機科學與技術學科的全貌。本書每章後均配有一定量的習題,以便讀者鞏固所學知識。
《計算機科學導論(第5版)》既可作為高等學校計算機專業學生的專業基礎課程教材,也可作為網絡工程、信息安全、物聯網工程、通信工程、電子科學與技術、自動化等相關專業學生的計算機教材。
目 錄
第1章 概述 1
1.1 計算的起源 1
1.2 計算機的産生和發展階段 3
1.3 計算機的應用領域和發展趨勢 22
1.4 計算學科 26
1.5 計算機科學與技術學科的知識體係 29
1.6 計算機科學與技術學科的教育 33
1.7 信息化的挑戰 36
1.8 計算機産業 36
本章小結 37
習題 37
第2章 計算機體係結構與組織 40
2.1 數值數據 40
2.2 非數值數據 50
2.3 數據的機器編碼 53
2.4 數字邏輯與數字係統 54
2.5 計算機係統的組成 59
2.6 存儲係統的結構 69
2.7 輸入/輸齣係統 71
2.8 多核技術 71
2.9 高性能計算機 72
2.10 並行計算機 72
2.11 分布式係統 73
本章小結 73
習題 73
第3章 程序設計語言 76
3.1 程序設計語言概述 76
3.2 聲明和類型 83
3.3 類型係統 83
3.4 編譯原理 83
3.5 程序設計語言的設計 89
本章小結 89
習題 89
第4章 程序設計基礎 92
4.1 程序設計 92
4.2 程序設計方法 92
4.3 基本數據結構 101
4.4 事件驅動程序設計 109
本章小結 110
習題 110
第5章 算法與復雜性 112
5.1 算法分析 112
5.2 常用算法 114
5.3 算法描述工具 116
5.4 算法的評價 118
5.5 算法設計策略 119
5.6 分布式算法 119
5.7 可計算性理論基礎 120
5.8 NP問題 120
5.9 自動機理論 121
5.10 加密算法 121
5.11 幾何算法 122
5.12 並行算法 123
本章小結 123
習題 123
第6章 信息管理 125
6.1 模型與信息係統 125
6.2 數據庫係統 126
6.3 關係數據庫 131
6.4 數據庫查詢語言SQL 135
6.5 關係數據庫設計 136
6.6 數據庫管理 137
6.7 常用數據庫管理係統 139
6.8 數據庫的新發展 141
本章小結 144
習題 145
第7章 軟件工程 147
7.1 軟件工程 147
7.2 軟件開發模型 152
7.3 軟件開發方法 157
7.4 軟件質量評價和保證 160
7.5 軟件復雜性 162
7.6 軟件項目管理 163
7.7 軟件可靠性 166
7.8 軟件評審 167
7.9 容錯軟件技術 169
7.10 軟件工程環境 170
本章小結 173
習題 174
第8章 操作係統 176
8.1 操作係統 176
8.2 操作係統的發展 180
8.3 操作係統的分類 183
8.4 操作係統的功能 184
8.5 操作係統的體係結構 186
8.6 並發性 187
8.7 調度與分派 187
8.8 安全與保護 187
8.9 文件係統 189
8.10 容錯 189
8.11 係統性能評價 190
8.12 腳本 191
8.13 主流操作係統 191
8.14 操作係統的新發展 194
本章小結 195
習題 195
第9章 網絡計算 197
9.1 通信與組網 197
9.2 計算機網絡 201
9.3 Internet和TCP/IP協議 212
9.4 網絡管理 218
9.5 移動通信與無綫上網 220
9.6 網絡安全 220
9.7 網格計算 224
9.8 雲計算與物聯網 225
9.9 互聯網+ 227
本章小結 228
習題 229
第10章 圖形學和可視化計算 231
10.1 圖形學的基本概念 231
10.2 圖形係統 235
10.3 計算機視覺和可視化 236
10.4 圖形用戶界麵 237
10.5 圖像通信 238
10.6 幾何建模 238
10.7 計算機動畫 238
10.8 虛擬現實 239
10.9 3D打印 240
本章小結 240
習題 241
第11章 人機交互 242
11.1 人機交互 242
11.2 多媒體技術 250
本章小結 252
習題 252
第12章 離散結構 254
12.1 離散結構的研究對象及主要內容 254
12.2 數理邏輯 255
12.3 集閤論 261
12.4 代數結構 267
12.5 圖論 270
12.6 離散概率 274
本章小結 275
習題 275
第13章 數值計算科學 278
13.1 高性能計算 278
13.2 數值分析 279
13.3 運籌學 280
13.4 數學建模與計算機模擬 281
本章小結 282
習題 282
第14章 智能係統 284
14.1 人工智能係統 284
14.2 知識錶示及推理 288
14.3 搜索技術 292
14.4 自然語言處理 292
14.5 計算智能 294
14.6 機器學習 296
14.7 智能技術 297
14.8 大數據分析 298
本章小結 298
習題 299
第15章 社會和職業問題 300
15.1 計算的社會背景 300
15.2 計算機與道德 301
15.3 基於計算機係統的風險與責任 303
15.4 知識産權 304
15.5 隱私與公民自由 306
15.6 計算機犯罪 307
15.7 團隊閤作 308
15.8 哲學框架 310
本章小結 310
習題 311
參考文獻 313
第2章 計算機體係結構與組織
學習目標
瞭解數據的機器編碼、計算機係統的組成、存儲係統的組織結構、基本的輸入/輸齣係統、計算機係統的分類、多核技術、高性能計算機、並行計算機、網絡計算機、分布式係統。
掌握數值數據的錶示和計算、非數值數據的編碼、數字邏輯與數字係統。
學習計算機知識應從一些基本的概念入手,包括數值數據在計算機中的錶示與運算、非數值數據的錶示、數據的機器編碼、數字邏輯與數字係統等與計算機相關的基礎知識。
2.1 數 值 數 據
計算機隻識彆二進製編碼的指令和數據,其他的如數字、字符、聲音、圖形、圖像等信息都必須轉換成二進製的形式,計算機纔能進行識彆和處理。二進製隻有兩個狀態(即0和1),這正好與物理器件的兩種狀態相對應,如電壓信號的高與低、門電路的導通與截止等;而十進製電路則需要用10種狀態來描述,這將使得電路十分復雜,處理起來也非常睏難。因此,采用二進製將使得計算機在物理實現上變得簡單,且具有可靠性高、處理簡單、抗乾擾能力強等優點。下麵對計算機中的各種數據錶示進行詳細介紹。
2.1.1 數的錶示及數製轉換
十進製數是日常生活中常用的,一直伴隨著人們的生活,它也是中國的一大發明。在商代時,中國已采用瞭十進製。從現已發現的商代陶文和甲骨文中,可以看到當時已能夠用一、二、三、四、五、六、七、八、九、十、百、韆、萬13個數字,記十萬以內的任何自然數。這些記數文字的形狀,在後世雖有所變化並演變成為現在的寫法,但記數方法卻從沒有中斷,一直被沿襲的同時日趨完善。十進製的記數法是古代世界中最先進、最科學的記數法,對世界科學和文化的發展起著不可估量的作用。正如李約瑟(Joseph Terence Montgomery Needham,1900—1995)所說的:“如果沒有這種十進製,就不可能齣現我們現在這個統一化的世界瞭。”
除瞭十進製外,其他進製,如十二進製(時鍾)等也在生活中廣泛使用。而在計算機內所有的數據都是以二進製代碼的形式存儲、處理和傳送,但是在輸入/輸齣或書寫時,為瞭用戶的方便,也經常用到八進製和十六進製。
前 言
“計算機科學導論”是計算機專業學生進入大學學習的第一門專業基礎課程,其目的在於用統一的思想,對該學科進行係統化和科學化闡述,讓學生認識計算機科學與技術學科的本質。本書按照教育部高教司主持評審的《中國計算機科學與技術學科教程2002》進行編寫,並參照美國計算機學會(Association for Computing Machinery,ACM)和美國電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)的計算教程2015,用邏輯嚴密的編寫方式將讀者引入本學科各個富有挑戰性的領域之中。本書介紹瞭計算機體係結構與組織、程序設計語言、程序設計基礎、算法與復雜性、信息管理、軟件工程、操作係統、網絡計算、圖形學和可視化計算、人機交互、離散結構、數值計算科學、智能係統、社會和職業問題等14個核心體,力求讓讀者對計算機科學與技術專業有比較深入的瞭解,樹立專業學習的責任感和自豪感。
本書是在《計算機科學導論》(第4版)的基礎上進行修訂的,主要修訂內容有:刪減瞭一些復雜的理論知識,增加瞭雲計算與物聯網、大數據分析、互聯網+、數字地球、智慧城市、電子商務、智能傢居、智能交通、3D打印技術、微博、微信等內容。本書介紹瞭計算機科學與技術的核心內容,使讀者理解計算機係統的信息處理本質,掌握數據錶達和數據加工錶達的層次方法,瞭解計算機係統的功能組成,認識計算機科學與技術對人類社會的重要推動作用。
本書內容由淺入深、結構嚴謹,力求避免內容重復、結構鬆散等弊病。由於本書涉及的內容繁多,各高校任課教師可根據學生的情況,在學習本書時適當調整學時,對其中的一些章節也可以根據各高校的實際情況選用。本書配備有電子教案,任課教師可根據學生的實際情況進行修改。本書的電子教案、課程大綱、授課計劃、習題答案可以到清華大學齣版社網站下載,也可以嚮作者索取。
本書由瞿中任主編,伍建全、熊安萍、夏淑芳任副主編。碩士研究生劉帥、柴國華、鞠芳蓉、陳宇翔、徐夢茹、吳戈、耿明月、王騰鋒、張玲、黃旭、危學明、陳思琪、徐芳琳、曹悅欣、劉京、呂磊、王升燁等提供瞭大量的資料,本科生劉妍、王子君、張真箏、夏少文、劉寶陽、硃嘉傑等人參與瞭文字校對工作,並對書中的實例及圖錶進行瞭校對。
書中介紹瞭部分著名學者的成果,如Alan Mathison Turing、John von Neumann、Andrew Chi-Chih Yao、華羅庚等,還采用瞭一些學者的照片,以豐富本書的內容,在此嚮這些學者錶示感謝。本書的順利齣版,得到瞭各級領導的大力支持和幫助,以及計算機界眾多學者的關心,在此一並緻謝。
由於計算機科學與技術的發展迅速以及受作者水平所限,書中難免存在疏漏之處,懇請廣大讀者特彆是同行批評指正。在使用本書過程中遇到任何問題,或者有好的意見和建議,請與編者聯係,以便今後更好地修訂本書,為廣大讀者服務。
編 者
在我看來,這本書的內容覆蓋麵確實很廣,幾乎囊括瞭計算機科學的入門級核心知識點。比如,它對操作係統的介紹,從進程管理、內存管理到文件係統,都做瞭相當詳盡的闡述。我特彆喜歡它在講到進程調度的時候,列舉瞭多種調度算法,並分析瞭它們的優缺點,讓我對操作係統的“幕後工作”有瞭更深的理解。然而,在講解網絡通信的部分,雖然提到瞭TCP/IP協議棧,也簡單介紹瞭HTTP協議,但對於一些更底層的細節,比如三次握手和四次揮手的具體過程,以及數據包在網絡中的傳輸路徑,描述得就相對模糊瞭。我嘗試去理解數據是怎麼從一颱電腦傳到另一颱電腦的,但書本上的講解,感覺隻觸及瞭錶麵,對於路由選擇、擁塞控製這些更復雜的機製,隻是簡單帶過,沒有深入分析。我期待在這一部分能有更具體的案例或者示意圖,來幫助我理解網絡是如何工作的,而不是僅僅停留在概念層麵。
評分這本書在語言風格上,整體還是偏嚮學術化的,對於初學者來說,有些地方可能會顯得比較生硬。它在闡述一些理論概念時,會用到很多專業術語,雖然前麵有定義,但有時候讀起來還是有點費力,需要反復咀嚼纔能理解。比如,在講到數據庫原理的時候,它提到瞭範式理論,關係型數據庫的模型,SQL語言的語法等等,這些內容都是非常重要的,但是書中對這些概念的引入和解釋,似乎缺少瞭一些引人入勝的故事或者更貼近生活的例子。我總覺得,如果能用一些更生動的比喻,或者從實際的應用場景齣發,比如一個電商平颱的商品管理係統是怎麼用數據庫來實現的,這樣來講解,學習效果會好很多。另外,在介紹軟件工程的部分,雖然提到瞭瀑布模型、敏捷開發等,但對這些開發模式的實際應用和選擇,以及在不同項目中的優劣勢分析,感覺描述得不夠充分,隻是簡單的羅列,沒有深入的探討。
評分這本書我剛開始看的時候,真的是抱著一種“入門”的心態,畢竟是導論嘛。第一章講到計算機的起源和發展曆史,我當時就覺得有點枯燥,很多名字和時間點,雖然知道很重要,但讀起來總感覺像在背誦,不像是在理解。直到後麵講到數據錶示和邏輯門,我纔覺得有點意思瞭。看到二進製怎麼轉換成我們能理解的數字,然後通過那些簡單的邏輯門組閤齣復雜的計算,就像在玩樂高積木一樣,一點點搭起瞭計算機的“思考”方式。不過,書裏在講解邏輯運算的時候,圖示有那麼一點點不夠清晰,我來迴看瞭好幾遍纔算弄明白,特彆是異或和同或的那些邏輯錶達式,總覺得可以再加一些實際應用的例子,比如在電路設計中是怎麼體現的。而且,關於早期計算機的硬件架構,雖然提到瞭馮·諾依曼體係,但細節描述不是特彆深入,我有點好奇那些早期的物理開關和真空管是怎麼運作的,它們和現在的晶體管有什麼本質的區彆,書裏隻是泛泛帶過,讓我覺得有點意猶未盡。總的來說,基礎知識的鋪墊是夠的,但對於一個像我這樣想深入瞭解“為什麼”的讀者來說,有些地方確實不夠過癮,需要自己再找資料補充。
評分這本書的章節安排,我個人覺得還是比較閤理的,從最基礎的概念講起,逐步深入。比如,它在講解算法的時候,用瞭大量的僞代碼和流程圖,這一點我非常欣賞。雖然我之前對算法的概念有所瞭解,但通過書中提供的這些清晰的圖示和具體的步驟分解,我能更直觀地理解“什麼是算法”以及“如何設計一個算法”。特彆是那個關於排序算法的對比,各種算法的時間復雜度、空間復雜度都分析得挺到位,而且舉瞭很多例子,讓我能深刻體會到不同算法在效率上的差異。但問題也齣在一些細節的描述上,比如在講到數據結構時,雖然提到瞭鏈錶、棧、隊列這些,但對於它們在內存中的具體實現方式,以及在實際編程中如何高效地操作,書本上的講解略顯理論化,沒有給齣太多代碼層麵的指導。我有點希望作者能多提供一些C++或者Python的示例代碼,讓我們可以直接看到數據結構是如何在代碼中實現的,以及它們是如何被操作的。這樣,理論和實踐的結閤會更緊密,學習起來也會更有成就感。感覺在“如何做”這方麵,書本還可以做得更詳細一些。
評分這本書作為一本導論性的教材,在知識的廣度上是無可挑剔的,它幾乎觸及瞭計算機科學的方方麵麵。我最欣賞它的一個點是,在最後幾章提到瞭人工智能和機器學習的一些基礎概念,讓我對這個熱門領域有瞭一個初步的認識。它簡單介紹瞭監督學習、無監督學習,也提到瞭神經網絡,雖然隻是點到為止,但足以激起我的興趣,讓我瞭解到這些技術背後的基本思想。不過,在這一部分,我最大的感受是“意猶未盡”。比如,在講到神經網絡的時候,雖然提到瞭激活函數和反嚮傳播,但對於具體的數學公式推導,以及如何訓練一個神經網絡模型,書本上的講解就非常簡略瞭。我希望能看到更具體的例子,比如如何用Python實現一個簡單的神經網絡,如何選擇閤適的損失函數和優化器。感覺這一塊內容,作者是想讓讀者自己去探索,但對於完全零基礎的人來說,僅僅提供概念,還是有點難度。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有