計算機科學概論(原書第5版)

計算機科學概論(原書第5版) pdf epub mobi txt 電子書 下載 2025

[美] 內爾·黛爾(NellDale),約翰·路易斯(JohnLewis) 著,呂雲翔,劉藝博 譯
圖書標籤:
  • 計算機科學
  • 概論
  • 編程
  • 算法
  • 數據結構
  • 計算理論
  • 計算機係統
  • 第五版
  • 教材
  • 入門
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111534259
版次:1
商品編碼:11937908
品牌:機工齣版
包裝:平裝
叢書名: 計算機科學叢書
開本:16開
齣版時間:2016-05-01
用紙:膠版紙
頁數:420

具體描述

內容簡介

  本書由兩位知名的計算機科學教育傢編寫,全麵而細緻地介紹瞭計算機科學的各個方麵。書中從信息層開始,曆經硬件層、程序設計層、操作係統層、應用程序層和通信層,深入剖析瞭計算係統的每個分層,後討論瞭計算的限製。此外,正文中穿插瞭大量的人物傳記、曆史點評、道德問題和新的技術發展信息,有助於你進一步瞭解計算機科學。每章後麵都附帶有大量的練習,可以幫助你即時重溫並掌握這一章所述的內容。

目錄

齣版者的話
譯者序
前言
第一部分 基礎篇
第1章 全景圖 2
1.1 計算係統 2
1.1.1 計算係統的分層 3
1.1.2 抽象 4
1.2 計算的曆史 5
1.2.1 計算硬件簡史 5
1.2.2 計算軟件簡史 12
1.2.3 預言 16
1.3 計算工具與計算學科 16
小結 18
道德問題:the Tenth Strand 18
練習 19
思考題 20
第二部分 信息層
第2章 二進製數值與記數係統 22
2.1 數字與計算 22
2.2 位置記數法 23
2.2.1 二進製、八進製和十六進製 26
2.2.2 其他記數係統中的運算 27
2.2.3 以2的冪為基數的記數係統 27
2.2.4 把十進製數轉換成其他數製的數 29
2.2.5 二進製數值與計算機 29
小結 31
道德問題:the Tenth Strand的知識單元 31
練習 33
思考題 34
第3章 數據錶示法 35
3.1 數據與計算機 35
3.1.1 模擬數據與數字數據 36
3.1.2 二進製錶示法 38
3.2 數字數據錶示法 39
3.2.1 負數錶示法 39
3.2.2 實數錶示法 42
3.3 文本錶示法 44
3.3.1 ASCII字符集 45
3.3.2 Unicode字符集 45
3.3.3 文本壓縮 46
3.4 音頻數據錶示法 49
3.4.1 音頻格式 50
3.4.2 MP3音頻格式 50
3.5 圖像與圖形錶示法 51
3.5.1 顔色錶示法 51
3.5.2 數字化圖像與圖形 52
3.5.3 圖形的矢量錶示法 53
3.6 視頻錶示法 53
小結 55
道德問題:道德準則 55
練習 56
思考題 58
第三部分 硬件層
第4章 門和電路 60
4.1 計算機和電學 60
4.2 門 62
4.2.1 非門 62
4.2.2 與門 63
4.2.3 或門 63
4.2.4 異或門 64
4.2.5 與非門和或非門 64
4.2.6 門處理迴顧 65
4.2.7 具有更多輸入的門 65
4.3 門的構造 66
4.4 電路 67
4.4.1 組閤電路 68
4.4.2 加法器 70
4.4.3 多路復用器 71
4.5 存儲器電路 72
4.6 集成電路 73
4.7 CPU芯片 73
小結 74
道德問題:這些違反道德規範嗎? 74
練習 75
思考題 77
第5章 計算部件 78
5.1 獨立的計算機部件 78
5.2 存儲程序的概念 82
5.2.1 馮·諾伊曼體係結構 82
5.2.2 讀取-執行周期 87
5.2.3 RAM和ROM 88
5.2.4 二級存儲設備 89
5.2.5 觸摸屏 92
5.3 嵌入式係統 93
5.4 並行體係結構 94
5.4.1 並行計算 94
5.4.2 並行硬件分類 95
小結 96
道德問題:數字鴻溝 96
練習 97
思考題 98
第四部分 程序設計層
第6章 低級程序設計語言與僞代碼 102
6.1 計算機操作 102
6.2 機器語言 103
6.3 一個程序實例 108
6.3.1 手工模擬 109
6.3.2 Pep/8模擬程序 109
6.4 匯編語言 111
6.4.1 Pep/8匯編語言 112
6.4.2 匯編器指令 112
6.4.3 Hello程序的匯編語言版本 113
6.4.4 一個新程序 113
6.4.5 具有分支的程序 115
6.4.6 具有循環的程序 116
6.5 錶達算法 118
6.5.1 僞代碼的功能 118
6.5.2 執行僞代碼算法 121
6.5.3 寫僞代碼算法 123
6.5.4 翻譯僞代碼算法 124
6.6 測試 125
小結 126
道德問題:版權與軟件盜版 127
練習 127
思考題 129
第7章 問題求解與算法設計 130
7.1 如何解決問題 130
7.1.1 提齣問題 130
7.1.2 尋找熟悉的情況 132
7.1.3 分治法 132
7.1.4 算法 133
7.1.5 計算機問題求解過程 133
7.1.6 方法總結 134
7.1.7 測試算法 135
7.2 有簡單參數的算法 135
7.2.1 帶有選擇的算法 135
7.2.2 帶有循環的算法 136
7.3 復雜變量 139
7.3.1 數組 139
7.3.2 記錄 140
7.4 搜索算法 141
7.4.1 順序搜索 141
7.4.2 有序數組中的順序搜索 141
7.4.3 二分檢索 142
7.5 排序 144
7.5.1 選擇排序 144
7.5.2 冒泡排序 145
7.5.3 插入排序 147
7.6 遞歸算法 147
7.6.1 子程序語句 148
7.6.2 遞歸階乘 149
7.6.3 遞歸二分檢索 149
7.6.4 快速排序 150
7.7 幾個重要思想 153
7.7.1 信息隱蔽 153
7.7.2 抽象 154
7.7.3 事物命名 155
7.7.4 測試 155
小結 155
道德問題:開源軟件 156
練習 157
思考題 159
第8章 抽象數據類型與子程序 160
8.1 抽象數據類型 160
8.2 棧 161
8.3 隊列 161
8.4 列錶 162
8.5 樹 164
8.5.1 二叉樹 164
8.5.2 二叉檢索樹 165
8.5.3 其他操作 169
8.6 圖 169
8.6.1 創建圖 171
8.6.2 圖算法 171
8.7 子程序 176
8.7.1 參數傳遞 177
8.7.2 值參與引用參數 178
小結 180
道德問題:工作場所監視 180
練習 181
思考題 183
第9章 麵嚮對象設計與高級程序設計語言 184
9.1 麵嚮對象方法 184
9.1.1 麵嚮對象 185
9.1.2 設計方法 185
9.1.3 一個計算機示例 187
9.2 翻譯過程 189
9.2.1 編譯器 190
9.2.2 解釋器 190
9.3 程序設計語言的範型 192
9.3.1 命令式範型 192
9.3.2 聲明式範型 193
9.4 高級程序設計語言的功能性 194
9.4.1 布爾錶達式 194
9.4.2 數據歸類 196
9.4.3 輸入/輸齣結構 199
9.4.4 控製結構 200
9.5 麵嚮對象語言的功能性 204
9.5.1 封裝 204
9.5.2 類 205
9.5.3 繼承 206
9.5.4 多態 207
9.6 過程設計與麵嚮對象設計的區彆 207
小結 208
道德問題:惡作劇與詐騙 209
練習 210
思考題 212
第五部分 操作係統層
第10章 操作係統 214
10.1 操作係統的角色 214
10.1.1 內存、進程與CPU管理 216
10.1.2 批處理 216
10.1.3 分時 217
10.1.4 其他OS要素 218
10.2 內存管理 218
10.2.1 單塊內存管理 219
10.2.2 分區內存管理 220
10.2.3 頁式內存管理 221
10.3 進程管理 223
10.3.1 進程狀態 223
10.3.2 進程控製塊 224
10.4 CPU調度 224
10.4.1 先到先服務 225
10.4.2 最短作業優先 226
10.4.3 輪詢法 226
小結 227
道德問題:醫療隱私——健康保險攜帶與責任法案 228
練習 229
思考題 231
第11章 文件係統和目錄 232
11.1 文件係統 232
11.1.1 文本文件和二進製文件 233
11.1.2 文件類型 233
11.1.3 文件操作 234
11.1.4 文件訪問 235
11.1.5 文件保護 236
11.2 目錄 237
11.2.1 目錄樹 237
11.2.2 路徑名 239
11.3 磁盤調度 241
11.3.1 先到先服務磁盤調度法 242
11.3.2 最短尋道時間優先磁盤調度法 242
11.3.3 SCAN磁盤調度法 242
小結 243
道德問題:選擇加入和選擇退齣 243
練習 244
思考題 246
第六部分 應用程序層
第12章 信息係統 248
12.1 信息管理 248
12.2 電子製錶軟件 249
12.2.1 電子數據錶公式 250
12.2.2 循環引用 254
12.2.3 電子數據錶分析 254
12.3 數據庫管理係統 255
12.3.1 關係模型 256
12.3.2 關係 257
12.3.3 結構化查詢語言 258
12.3.4 數據庫設計 260
12.4 電子商務 261
小結 262
道德問題:從競選來看政治與網絡 262
練習 263
思考題 265
第13章 人工智能 266
13.1 思維機 266
13.1.1 圖靈測試 267
13.1.2 AI問題的各個方麵 268
13.2 知識錶示 268
13.2.1 語義網 268
13.2.2 檢索樹 271
13.3 專傢係統 273
13.4 神經網絡 275
13.4.1 生物神經網絡 275
13.4.2 人工神經網絡 276
13.5 自然語言處理 277
13.5.1 語音閤成 277
13.5.2 語音識彆 278
13.5.3 自然語言理解 279
13.6 機器人學 280
13.6.1 感知-規劃-執行範型 280
13.6.2 包孕體係結構 282
13.6.3 物理部件 283
小結 283
道德問題:從民眾來看政治與網絡 284
練習 284
思考題 286
第14章 模擬、圖形學、遊戲和其他應用 287
14.1 什麼是模擬 287
14.1.1 復雜係統 287
14.1.2 模型 288
14.1.3 構造模型 288
14.2 特殊模型 289
14.2.1 排隊係統 289
14.2.2 氣象模型 292
14.2.3 計算生物學 295
14.2.4 其他模型 295
14.2.5 必要的計算能力 296
14.3 計算機圖形學 296
14.3.1 光的工作原理 297
14.3.2 物體形狀 298
14.3.3 光模擬 298
14.3.4 復雜對象的建模 299
14.3.5 讓物體動起來 303
14.4 遊戲 304
14.4.1 遊戲的曆史 304
14.4.2 創建虛擬世界 305
14.4.3 遊戲設計與開發 305
14.4.4 遊戲編程 306
小結 307
道德問題:遊戲成癮 307
練習 308
思考題 309
第七部分 通信層
第15章 網絡 312
15.1 連網 312
15.1.1 網絡的類型 313
15.1.2 Internet連接 315
15.1.3 包交換 317
15.2 開放式係統與協議 318
15.2.1 開放式係統 318
15.2.2 網絡協議 319
15.2.3 TCP/IP 319
15.2.4 高層協議 320
15.2.5 MIME類型 321
15.2.6 防火牆 321
15.3 網絡地址 322
15.4 雲計算 324
小結 325
道德問題:社交網絡的影響 326
練習 327
思考題 328
第16章 萬維網 329
16.1 Web簡介 329
16.1.1 搜索引擎 331
16.1.2 即時消息 331
16.1.3 博客 331
16.1.4 cookie 332
16.2 HTML 333
16.2.1 基本的HTML格式 335
16.2.2 圖像與鏈接 335
16.2.3 HTML5 337
16.3 交互式網頁 337
16.3.1 Java小程序 337
16.3.2 Java服務器頁 338
16.4 XML 339
16.5 社交網絡 341
小結 342
道德問題:賭博與互聯網 344
練習 344
思考題 346
第17章 計算機安全 347
17.1 各級安全 347
17.2 阻止未授權訪問 349
17.2.1 密碼 349
17.2.2 驗證碼 351
17.2.3 指紋分析 352
17.3 惡意代碼 352
17.3.1 殺毒軟件 353
17.3.2 安全攻擊 353
17.4 密碼學 355
17.5 保護你的在綫信息 357
17.5.1 安全與可移動設備 359
17.5.2 維基解密 359
小結 360
道德問題:博客 361
練習 362
思考題 363
第八部分 總結
第18章 計算的限製 366
18.1 硬件 366
18.1.1 算術運算的限製 366
18.1.2 部件的限製 370
18.1.3 通信的限製 371
18.2 軟件 372
18.2.1 軟件的復雜度 372
18.2.2 當前提高軟件質量的方法 373
18.2.3 臭名昭著的軟件錯誤 376
18.3 問題 377
18.3.1 算法比較 377
18.3.2 圖靈機 382
18.3.3 停機問題 384
18.3.4 算法分類 386
小結 387
道德問題:Therac-25災難剖析 387
練習 388
思考題 389
參考文獻 390
索引 396

前言/序言

  前 言Computer Science Illuminated, Fifth Edition  論題選擇為瞭製定這本CS0教材的論題大綱,我們利用瞭許多資源,包括課程目錄、教材大綱以及一個電子郵件調查問捲。設計這個調查問捲的目的在於瞭解我們的同事對這門課應該包括哪些內容的想法。我要求大傢(包括自己)列齣下列三種清單:  如果CS0這門課是學生在大學階段學習的唯一一門計算機科學的課程,請列齣四種你認為他們應該掌握的論題。  請列齣四種你想要學生在進入CS1這門課之前掌握的論題。  請補充四種你想要學習CS1的學生熟悉的論題。  這些資源的交集反映齣的大多數人的意見,也就構成瞭本書的大綱。在學習CS1之前掌握瞭本書內容的學生將為繼續學習計算機科學打下堅實的基礎。盡管我們的意圖是編寫一本CS0教材,但是許多評論傢都認為本書的覆蓋麵非常廣泛,可以作為一種程序設計語言的計算機科學導論的參考書。  結構說明在第1章中,我們介紹瞭硬件和軟件的曆史,並且用洋蔥的結構來類比計算機係統的結構。計算機和它的機器語言構成瞭洋蔥的芯,軟件層和更復雜的硬件一層層地裹住瞭這個芯。首先介紹的是機器語言,然後是高級語言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介紹這些語言的同時,還介紹瞭利用它們進行程序設計的過程,包括自頂嚮下的設計和麵嚮對象的設計。我們對抽象數據類型所扮演的角色及其實現的理解已經成熟瞭。操作係統及其資源管理技術(包括更大、更快的二級存儲介質上的文件)包圍著這些程序,並對它們進行管理。  接下來的一層由更復雜的通用或專用軟件係統構成,它們覆蓋瞭操作係統。這些功能強大的程序由計算機科學中的並行理論支持。最後一層由網絡和網絡軟件構成,網絡軟件包括計算機之間通信必需的所有工具。Internet和萬維網給這一層畫上瞭最後一筆。  當這些層隨著時間的推移逐漸齣現時,用戶對計算機係統的硬件接觸得越來越少。每個層都是它下麵的計算機係統的抽象。隨著每個層的發展,新層的用戶和內部層的用戶聯閤起來,在經濟領域的高科技部門創造瞭大量的生産力。本書的目的是提供各個層的概述,介紹基本的硬件和軟件技術,使學生瞭解和欣賞計算係統的方方麵麵。  在介紹這種洋蔥式結構時,我們有兩種選擇,一種是從內嚮外逐層介紹,另一種是從外嚮內進行介紹。從外嚮內的方法看起來非常吸引人。我們可以從最抽象的層開始介紹,一次剝掉一個層,直到具體的機器層為止。但是,研究錶明,比起抽象的例子,學生們更容易理解具體的例子,即使他們本身是抽象思想傢。因此,我們選擇從具體的機器層開始,按照層的創建順序進行分析,當學生完全理解瞭一個層之後,再轉移到下一個層就比較容易。  第5版中的變化在計劃這次改版時,我們谘詢瞭CS教育學院的同事,要求他們給予一些反饋。37人迴復瞭我們,非常感謝這些有思考、有見解的迴應。  第15章中添加瞭“雲計算”一節,並更新瞭域名部分。第16章中加入瞭HTML5。此外,專門用一章(第17章)討論計算機安全。老版的第17章是現在的第18章。目前,大多數的安全問題集中在網絡時代信息的安全使用上,因此把第17章放在通信層的最後一章。  除瞭新的章節,現在每章結尾部分的道德問題有瞭更為一緻的主題,從道德責任的定義和一個專業計算機人士的道德責任開始,展示瞭兩個主要的計算協會ACM和IEEE的道德準則,也給齣瞭選擇計算機專業可能麵臨的案例研究。這些材料在計算機課程中稱為the Tenth Strand,其中對涉及計算的主要社會問題進行瞭討論,包括政治、版權、工作場所監視和遊戲成癮方麵。  當然,我們對整書進行瞭全麵調整,對“你知道嗎”闆塊和傳記部分也進行瞭更新。  摘要第1章是我們探索計算機科學(計算機係統“洋蔥”)的基礎,描述瞭本書的組織結構。第2章和第3章則分析瞭包含在物理硬件中的層。這個層稱為信息層,它反映瞭如何在計算機上錶示信息。第2章介紹瞭二進製數製以及它與其他數製(如人們日常用的十進製係統)的關係。第3章研究瞭如何獲取多種類型(如數字、文本、圖像、音頻和視頻)的信息以及如何用二進製格式錶示它們。  第4章和第5章介紹瞭硬件層。計算機硬件包括的設備有晶體管、門和電路,它們都按照基本原理控製電流。正是這些核心電路使專用的元件(如計算機的中央處理器——CPU)得以運轉。第4章介紹瞭門和電路。第5章介紹瞭計算機的元件,以及在馮·諾伊曼體係結構中這些元件是如何交互的。當然,第5章開頭的廣告已經更新瞭,在你閱讀本書時,它可能又過時瞭。  第6~9章介紹瞭程序設計層。第6章使用模擬計算機Pep/8介紹瞭機器語言和匯編語言的概念。該章引入瞭用僞代碼編寫算法的功能,介紹瞭循環與選擇的概念,並在Pep/8中以僞代碼的方式實現。  第7章分析瞭問題求解過程,同時涉及人類和計算機的問題求解方法。引導這個論題的是George Polya的人類問題求解策略。該章介紹瞭自頂嚮下的方法來設計簡單算法,並在討論算法時選擇經典的搜索和排序算法。因為算法是對數據進行操作,所以在此研究數據的結構,以便更有效地處理數據。該章也介紹瞭子算法(子程序)語句。  第8章介紹瞭抽象數據類型或容器,容器是隻知道其屬性或行為的復閤結構。該章介紹瞭列錶、有序列錶、棧、隊列、二叉檢索樹和圖,擴展討論瞭子算法,包括引用參數與值參、參數傳遞。  第9章介紹瞭高級程序設計語言的概念。許多傑齣的高級語言包含與麵嚮對象編程相關的功能,我們先繞過這個設計過程,討論語言範型以及編譯過程。我們用四種編程語言設計瞭一些小例子來說明僞代碼的概念,即Python、VB.NET、Java和C++。  第10章和第11章介紹瞭操作係統層。第10章討論瞭操作係統的資源管理任務,介紹瞭一些用於實現這些任務的基本算法。第11章介紹瞭文件係統,包括什麼是文件係統,以及操作係統如何管理它們。  第12~14章介紹瞭應用程序層。這一層由人們用來解決問題的通用應用程序和專用應用程序構成。我們根據這些程序的基礎,把這一層分到瞭計算機科學的幾個子學科中。第12章分析瞭信息係統,第13章分析瞭人工智能,第14章分析瞭模擬、圖形學、遊戲和其他應用。  第15~17章介紹瞭通信層。第15章說明瞭計算機之間通信的理論和應用。第16章介紹瞭萬維網和它對當今生活的影響,包括修訂的社交媒體部分。全新的第17章討論計算機安全,涵蓋瞭當今信息時代與保護信息安全相關的各個方麵。  第2~17章都是說明計算機可以做什麼以及它是如何做的。第18章進行瞭總結,討論瞭計算機硬件和軟件的固有局限性,以及計算機能夠解決和不能解決的問題。在討論算法的有效性時,采用瞭大O符號,以便討論算法的分類。此外還介紹瞭停機問題,以說明某些不能解決的問題。  本書的第1章和最後一章就像一對書檔,第1章說明瞭計算係統是什麼,第18章告誡我們計算係統不能做什麼。它們之間的章節則深入探討瞭構成計算係統的各個層。  特性本書具有三種特性,用於強調計算的曆史、廣度以及新技術帶來的道德義務。首先,每一章都有一個簡短的名人傳記,介紹對計算做齣傑齣貢獻的人。這些人包括對數據層做齣貢獻的George Boole和Ada Lovelace,以及對通信層做齣貢獻的Doug Engelbart和Tim Berners-Lee。這些傳記的目的是讓學生瞭解計算界的曆史以及那些對計算界做過貢獻和正在做貢獻的人。  我們稱第二個特性為“你知道嗎”,因為沒有更好的詞可以錶達它。這部分顯示在方框中,是過去、現在和未來的一些軼聞趣事,它們來自曆史記錄、當今的報紙和作者的見聞。這些小插麯的目的是使學生開心、鼓舞他們、激發他們的興趣,當然也為瞭教育他們。  第三個特性是每章中的“道德問題”小節。這些小節的目的是說明在利用計算的好處時要承擔的義務。隱私權、黑客、病毒和言論自由都屬於我們的論題。在每章練習的結尾處有一個思考題部分,涉及這些道德問題和這一章的內容。  緻謝對於這一版來說,讀者是最有用的信息和建議來源。衷心感謝受調查者花時間填寫瞭我們的網絡調查問捲。還要感謝前幾版的審校者,以及這一版的審校者,他們是:  Tim Bower,堪薩斯州立大學;Mikhail Brikman,塞勒姆州立學院;Jacques Carette,麥剋馬斯特大學;Howard Francis,派剋維爾學院;Jim Jones,格雷斯蘭大學;Murray Levy,西洛杉磯學院;Lew Lowther,約剋大學;Jeffrey McConnell,凱尼休斯學院;Richard Schlesinger,肯尼索州立大學;Richard Spinello,波士頓學院;Herman Tavani,裏韋學院;Amy Woszczynski,肯尼索州立大學;C. Michael Allen,北卡羅來納大學夏洛特分校;Lofton Bullard,佛羅裏達亞特蘭大大學;Cerian Jones,阿爾伯塔大學;Calvin Ribbens,弗吉尼亞理工大學; Susan Sells,威奇托州立大學;R. Mark Meyer,凱尼休斯學院;Tom Wiggen,北達科他大學; Mary Dee Harris,Chris Edmonson-Yurkanan,Ben Kuipers, Glenn Downin,得剋薩斯大學奧斯汀分校;Dave Stauffer,賓夕法尼亞大學; John McCormick,北艾奧瓦大學;Dan Joyce,維拉諾瓦大學;Mike Goldwasser,聖路易斯大學;Andrew Harrington,洛約拉大學芝加哥分校;Daniel R. Collins,馬薩諸塞州灣社區學院;J. Stanley Warford,佩珀代因大學;Richard C. Detmer,中田納西州立大學;Chip Weems,馬薩諸塞大學阿默斯特分校;Heather Chandler,西木學院;Mark Holthouse, 西木高等學校;Robert Vermilyer,國托馬斯阿奎那斯學院。  特彆感謝凱尼休斯學院的Jeffrey McConnell,他編寫瞭第14章中的圖形學部分;感謝裏韋學院的Herman Tavani,他參與瞭修改“道德問題”的工作;感謝波士頓學院的Richard Spinello,他撰寫瞭博客的道德問題一文。  感謝審稿人與同事對第5版的內容給齣瞭意見與建議,他們是:  Bob Blucher,雷恩社區學院;Dale Fletter,福爾瑟姆湖學院;Jerry Westfall博士,利伯蒂大學;Dwayne Towell,艾伯林基督大學;Kara Nance,阿拉斯加大學;Lisa Michaud,梅裏馬剋學院;Jeffery Bergamini,門多西諾學院;Johanna Horowitz,西耶那學院;Lonnie R. Nelson,漢尼拔拉格朗日學院;Marie Hartlein,濛哥馬利縣社區學院;Mark Holthouse,西木高等學校;Mikhail S. Brikman博士,塞勒姆州立大學;Patricia Roth Pierce,南理工州立大學;Quentin J. White,SR,帕洛馬學院;Rakesh Arya,馬裏蘭大學東海岸分校;Tim Bower,堪薩斯州立大學;William Honig,洛約拉大學芝加哥分校;Barbara Zimmerman,維拉諾瓦大學;Maria Jump博士,國王學院;Joe Pistone,巴洛瑪社區學院;Derek Merck,佐治亞佩雷米特學院。  還要感謝Jones&Bartlett; Learning的許多人,尤其是Tim Anderson(資深編輯)、Amy Bloom(主編)、Amy Rose(齣版總監)。  我還必須感謝我的網球朋友使我有一個健康的體魄,感謝我的橋牌朋友使我的頭腦十分機敏,感謝我的傢人做我的堅強後盾。

《編程思維:從入門到精通》 內容簡介 在信息爆炸、科技日新月異的時代,理解和掌握計算機科學的基礎知識已不再是專業人士的專利,而是成為每一位渴望在這個數字化浪潮中乘風破浪的個體所必備的核心素養。然而,麵對浩如煙海的專業術語和紛繁復雜的概念,許多初學者常常感到無從下手,甚至望而卻步。《編程思維:從入門到精通》正是在這樣的背景下應運而生,它並非一本枯燥乏味的教科書,而是一本旨在點燃您對計算機科學探索熱情的引路書,一本幫助您構建堅實編程思維的基石。 本書的核心目標,是帶領讀者循序漸進地理解計算的本質,掌握解決問題的邏輯,並最終能夠運用編程這一強大的工具去實現自己的創意和想法。我們深知,學習編程不僅僅是記憶語法,更重要的是培養一種“思考”的方式——一種結構化、邏輯化、係統化的思考模式。這種編程思維,一旦養成,將對您在任何領域分析問題、設計方案、優化流程等方麵産生深遠的影響。 第一部分:打開計算之門 我們將在本書的第一部分,以最簡潔、最直觀的方式,帶您走進計算的世界。這裏沒有復雜的數學公式,也沒有晦澀難懂的理論。我們將從最基本的問題齣發:什麼是計算?計算機是如何工作的? 計算的本質與邏輯: 您將瞭解到,計算的本質是信息的處理和轉換。我們會通過生動的生活實例,解釋算法的概念——解決問題的步驟和方法。您會發現,我們每天都在不知不覺中使用著各種各樣的算法,從如何做一道菜,到如何規劃一次旅行。我們將引導您如何將現實世界的問題抽象化,轉化為計算機可以理解的邏輯步驟。 數據的錶示與存儲: 計算機如何理解我們輸入的文字、圖片和聲音?我們將深入淺齣地介紹二進製的概念,讓您明白計算機內部所有信息的底層錶示方式。您將瞭解到各種數據類型(如整數、浮點數、字符等)是如何在計算機中被存儲和操作的,以及它們之間的關係。 程序的基本構成: 計算機能夠執行我們發布的指令,這背後的奧秘是什麼?我們將介紹程序的基本組成部分,包括指令、變量、數據結構等。您將開始理解,程序就像是給計算機下達的一係列精確的命令,讓它按照我們的意願去完成任務。 第二部分:構建編程基石 掌握瞭計算的基本原理後,我們將進入編程的核心領域。這一部分將重點在於打下堅實的編程基礎,讓您能夠獨立編寫簡單的程序。 算法的實現與流程控製: 我們將從選擇一種易於上手的編程語言(例如,Python)開始,學習如何將我們之前構思的算法用代碼來錶達。您將深入學習控製程序的執行流程的關鍵概念:順序執行、選擇(if-else語句)和循環(for、while循環)。通過大量的實例,您將能夠理解如何使用這些工具來處理不同的情況和重復性的任務。 數據結構的運用: 如何高效地組織和管理數據是編程中的一個重要環節。我們將介紹一些最基本但最重要的數據結構,如數組、列錶、棧、隊列等。您將學習它們各自的特點、適用場景以及如何在程序中使用它們來存儲和訪問數據,從而提高程序的效率和可讀性。 函數的概念與實踐: 函數是代碼的“積木塊”,它們能夠將復雜的問題分解成更小的、可管理的單元。我們將詳細講解函數的定義、調用、參數傳遞以及返迴值等概念。通過編寫和使用函數,您將學會如何組織代碼,避免重復勞動,並提高代碼的可重用性。 麵嚮對象編程的初步探索: 隨著程序復雜度的增加,一種更高級的編程範式——麵嚮對象編程(OOP)——變得尤為重要。我們將初步介紹麵嚮對象的核心思想,如類、對象、封裝、繼承和多態,並展示它們如何幫助我們構建更具模塊化、更易於維護的程序。 第三部分:解決問題的藝術 編程不僅僅是寫代碼,更是解決問題的過程。在這一部分,我們將聚焦於如何運用編程思維來分析和解決實際問題。 問題分析與分解: 任何復雜的計算問題都可以被分解成一係列更小的、可管理的部分。我們將指導您如何審慎地分析問題,識彆其中的關鍵要素,並將其分解為可執行的子任務。這種分解能力是解決任何復雜問題的基礎。 算法設計與優化: 瞭解不同的算法及其時間、空間復雜度是至關重要的。我們將介紹一些常見的算法思想,如排序算法(冒泡排序、選擇排序、插入排序)、查找算法(綫性查找、二分查找)等,並引導您思考如何選擇最適閤特定問題的算法,以及如何對現有算法進行優化,以提高程序的運行效率。 調試與錯誤排查: 編寫程序過程中遇到錯誤是不可避免的。我們將教您如何像偵探一樣,係統地尋找和定位程序中的bug,並學習有效的調試技巧和工具,從而快速地修復問題,讓程序正常運行。 小型項目實戰: 理論學習需要實踐來鞏固。本書將包含一係列精心設計的、從小到大的編程練習和小型項目,涵蓋瞭數據處理、文件操作、簡單圖形界麵等多個方麵。通過親手完成這些項目,您將深刻體會到編程思維的應用,並逐步建立起解決實際問題的信心。 第四部分:拓展你的計算視野 掌握瞭編程的基礎後,我們將帶領您跳齣基礎的框架,去瞭解更廣闊的計算世界,為您的進一步深入學習打下基礎。 算法分析的進階: 我們將更深入地探討算法的效率問題,介紹大O錶示法等概念,幫助您理解不同算法在處理大規模數據時的性能差異。 軟件工程的基本原則: 編寫高質量、可維護的代碼是軟件開發的關鍵。我們將介紹一些軟件工程的基本原則,如代碼規範、模塊化設計、版本控製等,幫助您養成良好的編程習慣。 計算機科學的其他領域概覽: 為瞭讓您對計算機科學有一個更全麵的認識,我們將簡要介紹一些重要的相關領域,如操作係統、數據庫、網絡、人工智能、數據科學等,激發您對這些領域進一步探索的興趣。 《編程思維:從入門到精通》並非旨在讓您成為一名專業的程序員,而是希望通過教授您一種解決問題的邏輯和方法,讓您能夠更自信、更有效地應對這個日益數字化的世界。本書的語言平實易懂,案例貼近生活,旨在消除初學者的畏難情緒,點燃您對計算科學的好奇心。無論您是學生、職場人士,還是對技術充滿熱情的生活傢,相信通過閱讀和實踐本書,您將能夠建立起紮實的編程思維,解鎖解決問題的全新視角,並在您的學習和工作中受益匪淺。 讓我們一同踏上這段激動人心的計算探索之旅,用編程思維武裝自己,開啓無限可能!

用戶評價

評分

這本書真的讓我眼前一亮,完全顛覆瞭我對“概論”類書籍的刻闆印象。我一直覺得這類書籍要麼過於淺嘗輒止,要麼就是堆砌大量晦澀難懂的專業術語,讀起來就像是在啃一本字典。但《計算機科學概論(原書第5版)》完全不同,它仿佛是一位經驗豐富的嚮導,帶著你穿梭在計算機科學的宏大世界裏。從最基礎的二進製錶示,到復雜的算法和數據結構,再到人工智能的初步探索,書中對每一個概念的講解都清晰而透徹。我特彆喜歡它循序漸進的教學方式,每一步都建立在前一步的基礎上,讓我感覺自己並非是在被動地接收信息,而是在主動地構建知識體係。書中大量的圖錶和類比也極大地幫助瞭我理解抽象的概念,比如關於操作係統如何管理內存的描述,用日常生活的比喻來解釋,瞬間就讓原本覺得高深莫測的內容變得生動有趣。而且,它並沒有止步於理論的講解,還穿插瞭許多實際應用的案例,讓我看到瞭計算機科學在現實世界中的強大力量。這本書讓我覺得,原來計算機科學並非高不可攀,而是充滿瞭邏輯的魅力和創造的可能。

評分

說實話,我一開始抱著一種“瞭解一下”的心態來翻這本書的,並沒有抱太大的期望。畢竟,計算機科學聽起來就不是那麼容易掌握的領域。但這本書的敘事方式和結構安排,卻著實讓我吃瞭一驚。它不是那種枯燥的教科書式羅列,而是更像一本娓娓道來的故事集,講述著計算機科學從誕生至今的演進過程。作者並沒有迴避那些核心的、常常讓人頭疼的理論,比如圖靈機、計算復雜性理論等,但他們巧妙地將這些理論融入到計算機科學發展的曆史脈絡中,讓你在理解其曆史意義的同時,也能體會到其深層的邏輯。我尤其欣賞書中對不同計算模型和編程範式的介紹,它不僅說明瞭“是什麼”,更深入地探討瞭“為什麼會這樣”。這種對“原因”的探究,讓我對計算機科學有瞭更深層次的認識,不再是零散的知識點,而是形成瞭一個有機的整體。而且,書中對一些前沿技術,比如雲計算、大數據、區塊鏈等,都進行瞭概括性的介紹,為我打開瞭瞭解這些領域的大門,激發瞭我進一步學習的興趣。

評分

對於一個像我這樣,在非計算機專業領域摸爬滾打多年的人來說,想要理解計算機科學的核心概念,往往會遇到巨大的障礙。很多時候,我會在網上搜索一些資料,但要麼過於零散,要麼過於專業,讀完後依然是一頭霧水。《計算機科學概論(原書第5版)》的齣現,簡直就像是一場及時雨。它以一種非常友好的方式,將復雜的計算機科學知識拆解成一個個易於理解的部分。我特彆喜歡它在介紹算法時,對於時間復雜度和空間復雜度的講解。作者並沒有直接扔齣“O(n)”這樣的符號,而是先用直觀的例子來展示不同算法在處理大量數據時的效率差異,然後再逐步引入復雜度分析的概念。這樣的方式,讓我在理解這些重要概念時,沒有産生畏難情緒。書中還穿插瞭一些關於計算機倫理和信息安全的內容,這對於我這樣一個非技術背景的人來說,非常有價值。它讓我意識到,計算機科學並不僅僅是技術本身,還涉及到更廣泛的社會影響和道德考量。總而言之,這本書非常適閤那些想要係統地、但又不至於陷入技術細節來學習計算機科學的讀者。

評分

作為一名長期在其他領域工作的專業人士,我一直對計算機科學充滿好奇,但又覺得這個領域太過龐大和復雜,無從下手。直到我讀瞭《計算機科學概論(原書第5版)》,我纔真正找到瞭一個可以讓我安心“入門”的途徑。這本書的優點在於它的結構性非常強,並且用一種非常人性化的方式來組織內容。它不是那種“填鴨式”的教學,而是像一位循循善誘的老師,一步步地帶領你去理解計算機科學的精髓。我尤其喜歡書中對網絡通信的講解,它從最基礎的TCP/IP協議講起,然後延展到互聯網的應用,讓我在理解網絡世界的運作原理時,有瞭一種豁然開朗的感覺。此外,書中還涉及瞭數據庫係統、分布式係統等重要概念,這些都是現代信息社會不可或缺的基石。作者在講解這些內容時,盡量避免使用過於晦澀的術語,並且通過大量的實例來佐證,讓我在閱讀過程中既能保持理解的連貫性,又能感受到知識的實用性。這本書為我打開瞭一扇瞭解現代技術世界的大門,讓我覺得,原來計算機科學並不是那麼遙不可及,而是充滿著邏輯的美感和強大的生命力。

評分

我常常覺得,學習一門新領域的知識,最關鍵的是要找到那個能夠引發你興趣的切入點。《計算機科學概論(原書第5版)》恰恰做到瞭這一點。它沒有上來就拋齣大量的理論公式,而是從計算機的本質——信息處理——入手,逐步引導讀者深入。我喜歡書中對“計算”這個概念的討論,它從最原始的計數方式,一路講到現代計算機的計算能力,這個過程本身就充滿瞭一種邏輯的嚴謹和演進的魅力。書中對軟件工程的介紹也讓我印象深刻,它不僅僅是關於如何寫代碼,更是關於如何係統地、高效地構建軟件,這對於我理解現代軟件開發流程非常有幫助。我特彆欣賞它在介紹操作係統時,對於進程管理、內存管理等核心概念的闡釋,用清晰的圖示和生動的語言,將這些原本抽象的概念具象化。這本書讓我明白,計算機科學並非是一門孤立的學科,它與數學、邏輯學、工程學等眾多領域都有著韆絲萬縷的聯係。它讓我看到瞭一個更加廣闊的知識圖景,也更加堅定瞭我繼續探索計算機科學的決心。

評分

好貴呀

評分

書很好,就是包裝稍有破損,沒什麼影響。

評分

計算機專業的基礎書,很受用。

評分

還沒看這是事實那就是嚇尿

評分

好書很詳細

評分

瞭解計算機原理必讀的書

評分

買瞭之後,很快又有更低的活動,有點氣。不過解瞭燃眉之急還口以吧

評分

隨便看看,希望有收獲吧。

評分

給弟弟買的,我曾在學校圖書館看過這本書的中文第三版,覺得作者對於CS學科的涉獵非常廣,講瞭很多底層的東西,是本不錯的科普書,建議高中生讀。

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有