筆者深信專業(yè)的基礎課程對學生至關重要,應當由最優(yōu)秀的教授用最好的教材來講授,不僅能激發(fā)學生的興趣,開拓學生的思維,更能夠使學生領略“學通”的廣度與“貫穿”的高度。同學們得以感受優(yōu)秀教授的親炙、熏陶,興起對本學科高山仰止的孺慕之情,如此初學者方能端正學風,熱情向學。然而筆者從事教學工作多年以來,無論中外,總覺得缺少一本合意的計算機導論教科書,能兼顧廣度與高度,同時趣味盎然。憑此愿望,感謝因緣具足,得以成書。以筆者在計算機領域三十多年的科研經驗和人生積累為因,著作此書,為學子們提供一本內容豐實、形式活潑的計算機導論教科書,為學子們揭示計算機科學的美與真意。筆者在2012年以國家特聘專家的身份全職回國,以此因緣寫出這回旋已久的心聲,歷經了數年來第1版、第2版的完善,此次改版又補充了“機器學習概論”一章,使內容更加充實。相信各位讀者在讀了本書以后,將會對計算機科學建立正確而全面的認識,必將功力大增!
筆者寫這本書的目的就是希望本書成為“計算機科學導論”的經典之作。信息類各專業(yè)的學生都可以把本書作為基礎教材,了解計算機科學的核心知識,或在畢業(yè)前復習及補充知識,求職面試前做準備所用; 非信息類專業(yè)的學生可以借助本書較為完整地理解計算機科學的相關基礎知識; 各個年齡層的讀者都可以把它當作一本有趣又有真材實料的書去閱讀。我相信本書就有這樣的趣味、廣度與深度,值得再三玩味。
第2版內容比第1版增加了一章“并行計算”,而本版內容比第2版又增加了一章“機器學習概論”。為了將機器學習原理和技術用深入淺出、有趣而不失嚴謹的方式介紹給初學者,筆者著實煞費苦心,最后成果令人欣喜。筆者認為這本書至此可以說是計算機導論教材中最全面的教材之一,包含了相關的各方面知識: 計算機組織結構,數字邏輯基礎,匯編語言,程序語言基礎和Python,算法基礎,操作系統(tǒng),并行計算,網絡原理,信息安全基礎,機器學習等。希望讀者能自行學習,多多利用本書,或合并閱讀筆者的另外一本書《編程導論——以Python為舟》(ISBN 9787302505976),相信對讀者將來的相關面試、筆試,乃至于整體提高計算機素養(yǎng)都會大有裨益。
第1章計算機學什么
1.1探索黑匣子——從一個程序談起
1.1.1探索黑匣子之計算機硬件
1.1.2探索黑匣子之計算機軟件
1.1.3探索黑匣子之操作系統(tǒng)
1.1.4計算機系統(tǒng)的層次
1.2計算機編程的基本概念
1.2.1初窺高級語言
1.2.2乘Python之舟進入計算機語言的世界
1.2.3活學活用——運用Python的基本功能解決數學問題
小結
1.3計算機核心知識——算法
1.3.1算法的重要性
1.3.2解平方根算法一
1.3.3解平方根算法二
1.3.4解平方根算法三
小結
1.4什么是計算機
1.4.1歷史上的計算機
1.4.2嵌入式系統(tǒng)
1.4.3未來的計算機
小結
1.5計算機前沿知識——大數據
1.5.1數據
1.5.2大數據
1.5.3大數據的應用
小結
1.5.4對數據和邏輯的正確態(tài)度——沙老師的話
1.6計算機科學之美
1.6.1無處不在的計算機
1.6.2計算機學科本身包含的知識面之廣
本章總結
習題1
第2章神奇的0與1
2.1進位制的概念
小結
2.2不同進制間的轉換
2.2.1二進制數轉換為十進制數
2.2.2十進制數轉換為二進制數
2.2.3二、八、十六進制的巧妙轉換
小結
2.3計算中的二進制四則運算
2.3.1無符號整數與加法
2.3.2乘法與除法
2.3.3帶符號整數的減法
2.3.4浮點數
小結
2.4一切都是邏輯
2.4.1什么是邏輯運算
2.4.2電路實現邏輯(課時不足時,可不講本節(jié))
2.4.3用邏輯做加法
2.4.4加法與控制語句
小結
2.5計算機中的存儲
2.5.1數據的存儲形式
2.5.2存儲設備
小結
2.6談0與1的美
2.6.1簡單開關的無限大用
2.6.2二進制邏輯的神奇妙用
2.6.3“亢龍有悔”和“否極泰來”
2.6.4“若見諸相非相,即見如來”
習題2
第3章程序是如何執(zhí)行的
3.1引例
3.2a=a+1的執(zhí)行過程
3.2.1分解a=a+1的執(zhí)行步驟
3.2.2CPU中的核心部件
3.2.3匯編指令的概念
3.2.4a=a+1的完整執(zhí)行過程
小結
3.3控制結構的執(zhí)行
3.3.1ifelse選擇語句
3.3.2分支跳轉指令
3.3.3ifelse選擇語句的執(zhí)行
3.3.4while循環(huán)語句的執(zhí)行
3.3.5for循環(huán)語句的執(zhí)行
小結
3.4關于Python的函數調用
3.4.1函數的基本概念
3.4.2Python函數入門
3.4.3局部變量與全局變量
小結
3.5函數調用過程的分析
3.5.1返回地址的存儲
3.5.2函數調用時棧的管理
3.5.3SEAL中函數調用棧幀的建立
小結
3.6幾種通用的編程語言
小結
3.7對計算機程序的領悟
3.7.1清晰的語義
3.7.2嚴謹的邏輯
3.7.3巧妙的結構
3.7.4智能是程序計算出來的
小結
習題3
第4章學習Python語言
4.1簡潔的Python
4.2Python內置數據結構
4.2.1Python基本數據類型
4.2.2列表
4.2.3再談字符串
4.2.4字典——類似數據庫的結構
4.3Python賦值語句
4.3.1基本賦值語句
4.3.2序列賦值
4.3.3擴展序列賦值
4.3.4多目標賦值
4.3.5增強賦值語句
4.4Python控制結構
4.4.1if語句
4.4.2while循環(huán)語句
4.4.3for循環(huán)語句
4.5Python函數調用
4.6Python自定義數據結構
4.6.1面向過程與面向對象
4.6.2面向對象基本概念——類與對象
4.7基于Python面向對象編程實現數據庫功能
4.7.1Python面向對象方式實現數據庫的學生類
4.7.2Python面向對象方式實現數據庫的課程類
4.7.3Python創(chuàng)建數據庫的學生與課程類組
4.7.4Python實例功能模擬
4.8有趣的小烏龜——Python之繪圖
4.8.1初識小烏龜
4.8.2小烏龜繪制基礎圖形
4.8.3小烏龜繪制迷宮
習題4
第5章計算思維的核心——算法
5.1計算思維是什么
小結
5.2遞歸的基本概念
小結
5.3分治法
小結
5.4貪心算法
小結
5.5動態(tài)規(guī)劃
小結
5.6以老鼠走迷宮為例
小結
5.7談計算思維的美
5.7.1遞歸思想的美
5.7.2計算思維求解問題的基本方式的美
5.7.3問題復雜度的研究之美
習題5
第6章操作系統(tǒng)簡介
6.1計算機的啟動
6.1.1啟動自檢階段
6.1.2初始化啟動階段
6.1.3啟動加載階段
6.1.4內核裝載階段
6.1.5登錄階段
6.2認識操作系統(tǒng)
6.3操作系統(tǒng)對硬件資源的管理——硬件中斷與異常
6.3.1操作系統(tǒng)對I/O設備的管理——硬件中斷
6.3.2操作系統(tǒng)對CPU的管理——硬件中斷
6.3.3操作系統(tǒng)對內存的管理——“異!敝袛
6.4操作系統(tǒng)對應用程序提供較安全可靠的服務——軟件中斷
6.4.1內核態(tài)與用戶態(tài)
6.4.2系統(tǒng)調用——軟件中斷
6.4.3常用系統(tǒng)調用
6.4.4系統(tǒng)調用實例: read系統(tǒng)調用
6.5操作系統(tǒng)對多運行環(huán)境的管理
6.5.1進程
6.5.2進程狀態(tài)
6.5.3進程調度
6.6文件系統(tǒng)
6.6.1文件基本概念
6.6.2目錄樹結構
6.6.3Python中的文件操作
6.6.4學生實例的擴展
習題6
第7章并行計算
7.1并行計算簡介
7.1.1并行計算能加速程序執(zhí)行
7.1.2并行計算的基本概念
7.1.3并行計算的難點——進程間通信
7.1.4并行計算能模擬現實中的復雜情況
7.2多進程編程
7.2.1多進程編程在Python中的實現
7.2.2牛刀小試——使用多進程加快求解問題的速度
7.3進程通信
7.3.1共享內存的基本概念
7.3.2共享內存的Python實現
7.4多進程編程實例
7.4.1方差計算的多進程實現
7.4.2N階矩陣與N維向量相乘的多進程實現
7.4.3基于價格波動的生產者決策模擬
7.4.4電梯運行與調度模擬
7.5利用多核進行并行計算的思考
7.5.1沒有智慧的計算就是浪費
7.5.2能自己做就自己做,不要總是請示協調
7.5.3讓大家共享多核,有福同享就是云計算
7.5.4分布式計算也是多核計算
習題7
第8章計算機網絡與物聯網
8.1無遠弗屆的網絡
小結
8.1.1物理層(Physical Layer)
小結
8.1.2數據鏈路層(Data Link Layer)
小結
8.1.3網絡層(Network Layer)
小結
8.1.4傳輸層(Transport Layer)
小結
8.1.5應用層(Application Layer)
小結
8.2Web=?
8.2.1一個簡單網頁的代碼
小結
8.2.2網頁訪問流程
小結
8.2.3網頁的動靜之分
8.2.4網站用什么說話
小結
8.2.5關于本地計算機上的一個小網頁
8.3對計算機網絡的領悟
8.4初窺物聯網
8.4.1未來生活中的物聯網
8.4.2智能家居
8.4.3智能交通
8.4.4醫(yī)療物聯網
8.4.5物聯網相關技術
小結
習題8
第9章信息安全
9.1引言
9.2常見威脅
9.2.1網絡的威脅
9.2.2惡意軟件
小結
9.2.3拒絕服務
9.3措施和技術
9.3.1密碼學
小結
9.3.2防火墻
9.3.3入侵檢測
9.3.4網絡安全
9.3.5系統(tǒng)安全
9.3.6殺毒軟件
9.4手機病毒
9.5硬件安全: 木馬電路與旁道攻擊
9.5.1硬件木馬
9.5.2旁道攻擊
9.6談信息安全之美
習題9
第10章機器學習概論
10.1人工智能與機器學習簡介
10.1.1人工智能簡介
10.1.2AlphaBeta剪枝搜索
10.1.3機器學習簡介
10.2最小二乘分類器
10.3Logistic分類器
10.4樸素貝葉斯分類器
10.5人工神經網絡
10.6深度學習
習題10
參考文獻