第1章 引論 001
1.1 什麼是計算 002
1.2 計算機科學與計算科學 002
1.3 來自計算機發展史的啓示 003
1.3.1 來自計算工具發展的啓示 003
1.3.2 來自元器件發展的啓示 005
1.3.3 來自計算機硬件發展的啓示 007
1.3.4 來自計算機軟件發展的啓示 009
1.3.5 一些重要思想/重要事件及其帶來的影響 011
1.4 計算機應用 013
1.5 計算機發展趨勢 015
1.5.1 高性能計算:無所不能的計算 015
1.5.2 普適計算:無所不在的計算 016
1.5.3 服務計算與雲計算:萬事皆服務的計算 017
1.5.4 智能計算 018
1.5.5 生物計算 019
1.5.6 未來互聯網與智慧地球 020
思考題 022
參考文獻 023
第2章 計算係統的基本思維 025
2.1 理解0和1的思維 026
2.1.1 語義符號化的典型案例:0/1與《易經》 026
2.1.2 思維方式與邏輯運算:0/1與邏輯 027
2.1.3 二進製與算術運算:0/1與數值信息 028
2.1.4 編碼與符號運算:0/1與非數值信息 031
2.1.5 0和1與電子元器件 034
2.1.6 0和1思維小結 038
2.2 圖靈機與馮·諾依曼計算機 039
2.2.1 圖靈機:關於通用機器及指令、程序及其自動執行 039
2.2.2 馮·諾依曼計算機 041
2.2.3 存儲器:可按地址自動存取內容的部件 042
目 錄
XVIII
2.2.4 機器指令與機器級程序與算法 045
2.2.5 機器級程序的存儲與執行 047
2.2.6 關於馮·諾依曼計算機的貫通性思維小結 050
2.3 現代計算機 051
2.3.1 現代計算機的構成 051
2.3.2 存儲體係:不同性能資源的組閤優化思維 052
2.3.3 為什麼要有操作係統——硬件功能擴展的基本思維 055
2.3.4 化整為零的基本思維——磁盤與文件管理 057
2.3.5 任務-作業與內存管理:
分工閤作與協同求解復雜係統問題的基本思維 059
2.3.6 分時-並行控製思維:任務-作業管理與處理機管理 062
2.3.7 現代計算機的工作過程 064
2.3.8 現代計算機的發展 065
2.3.9 關於現代計算機的貫通性思維小結 067
2.4 不同抽象層級的計算機(軟件) 067
2.4.1 人-機交互層麵的計算機——計算機語言與編譯器 068
2.4.2 機-機交互層級的計算機:
協議與編碼器/解碼器/轉換器/處理器 075
2.4.3 分層抽象進行復雜問題化簡的示例:
操作係統對設備的分層控製 078
2.4.4 關於不同抽象層級計算機的思維小結 085
思考題 085
參考文獻 087
第3章 問題求解框架 089
3.1 傳統程序的基本構成要素 090
3.1.1 常量、變量、錶達式 090
3.1.2 語句與程序控製 092
3.1.3 函數與函數調用 097
3.1.4 常量/變量、數據存儲與數據結構 098
3.1.5 程序構造及其錶達方法 102
3.2 算法類問題求解框架 105
3.2.1 算法的基本概念 105
3.2.2 數學建模:建立問題的數學模型 108
3.2.3 算法思想:算法策略選擇 109
3.2.4 算法設計:算法思想的精確錶達 110
3.2.5 算法的模擬與分析 113
3.2.6 算法的復雜性 114
XIX
3.2.7 算法類問題求解框架 115
3.3 現代程序的基本構成要素 116
3.3.1 對象與類的概念——通俗示例 116
3.3.2 類與對象的概念——麵嚮對象的程序 119
3.3.3 麵嚮對象程序構造的一個例子——可視化編程的思維模式 121
3.3.4 現代程序構造及其錶達方法 123
3.4 係統類問題求解框架 126
3.4.1 什麼是係統 126
3.4.2 建立問題域/業務模型 130
3.4.3 建立軟件域模型 135
3.4.4 軟件模塊的構造與實現 141
3.4.5 軟件係統的構造與實現 145
3.4.6 軟件係統的測試、部署與運行 147
3.4.7 軟件體係結構與軟件模式問題 150
3.4.8 係統的可靠性和安全性問題 156
3.4.9 小結 158
思考題 159
參考文獻 161
第4章 算法與復雜性 163
4.1 排序問題及其算法 164
4.1.1 排序問題 164
4.1.2 基本排序算法 167
4.1.3 PageRank排序:排序問題的不同思考方法 174
4.2 遞歸及遞歸算法 180
4.2.1 遞歸:用有限的語句定義對象的無限集閤 180
4.2.2 遞歸算法:自身調用自身,高階調用低階 187
4.3 遺傳算法:計算復雜性與仿生學算法示例 194
4.3.1 可求解與難求解問題 194
4.3.2 遺傳算法:仿生學算法的簡單示例 196
4.3.3 遺傳算法暨問題求解算法的進一步探討 202
思考題 210
參考文獻 211
第5章 數據抽象、設計與挖掘 213
5.1 數據與大數據 214
5.2 數據管理和數據庫:數據聚集的核心 216
5.2.1 數據聚集成“庫”——數據庫及數據庫管理 216
XX
5.2.2 數據庫的基本結構形式——數據錶 217
5.2.3 數據錶的操作——關係操作 220
5.2.4 用數學定義數據錶及其操作——關係模型 223
5.2.5 數據庫語言——用計算機語言錶達數據錶及其操作 226
5.2.6 DBMS——數據庫語言的執行或者數據錶操作的自動實現 231
5.3 數據分析的核心——聯機數據分析和數據挖掘 232
5.3.1 例子——超市數據庫 232
5.3.2 超市數據分析方法——二維交叉錶 234
5.3.3 數據倉庫聯機數據分析(OLAP):
由二維數據分析到多維數據分析 235
5.3.4 數據也是生産力——數據挖掘 240
5.4 抽象、理論和設計 248
5.4.1 抽象:理解→區分→命名→錶達 249
5.4.2 理論:定義→性質(公理和定理)→證明 254
5.4.3 設計:形式→構造→自動化 257
5.4.4 抽象—理論—設計之間的關係 259
思考題 260
參考文獻 261
第6章 計算機網絡、信息網絡與網絡化社會 263
6.1 網絡與社會 264
6.2 計算機網絡 264
6.2.1 網絡通信的基本原理 264
6.2.2 計算機網絡連接:不同類彆的機器網絡 269
6.3 因特網與Web——信息網絡 279
6.3.1 由計算機網絡走嚮文檔/信息網絡Web 279
6.3.2 超文本/超媒體的錶達與解析 280
6.3.3 超文本/超媒體的組織與管理 284
6.3.4 無限資源庫的發掘和利用:搜索引擎 286
6.3.5 互動網絡與群體網絡:
互聯網的創新更重要的是思維的創新 287
6.4 網絡化社會與網絡計算:用科學方法研究網絡問題 290
6.4.1 形形色色的網絡 290
6.4.2 網絡問題抽象與基本網絡計算問題 291
6.4.3 網絡計算示例:社會網絡的一個問題研究 297
思考題 302
參考文獻 304
· · · · · · (
收起)