計算機科學導論——以Python為舟(第3版)(清華科技大講堂)
定 價:¥69.8
中 教 價:¥59.33 (8.50折)
庫 存 數: 0
本書用深入淺出的語言講解了計算機科學的基礎知識。主要內容包括計算機學什么、神奇的0與1、程序是如何執行的、學習Python語言與數據庫知識、計算思維的核心——算法、操作系統、并行計算、計算機網絡與物聯網、信息安全、機器學習等。本書不僅讓讀者能夠清楚、完整地了解如何用計算機解決問題,而且通過Python程序的巧妙演繹與動手實踐,讓讀者切實體會到計算機科學的廣博與趣味,帶領讀者體會計算機科學之美。 本書可作為計算機科學入門課程的教科書,也可作為廣大讀者理解計算機科學基本知識的科普讀物及學習Python語言的參考書。
本書融合作者中美兩國幾十年計算機教學和研發心得,前版暢銷3萬余冊
筆者深信專業的基礎課程對學生至關重要,應當由最優秀的教授用最好的教材來講授,不僅能激發學生的興趣,開拓學生的思維,更能夠使學生領略“學通”的廣度與“貫穿”的高度。同學們得以感受優秀教授的親炙、熏陶,興起對本學科高山仰止的孺慕之情,如此初學者方能端正學風,熱情向學。然而筆者從事教學工作多年以來,無論中外,總覺得缺少一本合意的計算機導論教科書,能兼顧廣度與高度,同時趣味盎然。憑此愿望,感謝因緣具足,得以成書。以筆者在計算機領域三十多年的科研經驗和人生積累為因,著作此書,為學子們提供一本內容豐實、形式活潑的計算機導論教科書,為學子們揭示計算機科學的美與真意。筆者在2012年以國家特聘專家的身份全職回國,以此因緣寫出這回旋已久的心聲,歷經了數年來第1版、第2版的完善,此次改版又補充了“機器學習概論”一章,使內容更加充實。相信各位讀者在讀了本書以后,將會對計算機科學建立正確而全面的認識,必將功力大增!
筆者寫這本書的目的就是希望本書成為“計算機科學導論”的經典之作。信息類各專業的學生都可以把本書作為基礎教材,了解計算機科學的核心知識,或在畢業前復習及補充知識,求職面試前做準備所用; 非信息類專業的學生可以借助本書較為完整地理解計算機科學的相關基礎知識; 各個年齡層的讀者都可以把它當作一本有趣又有真材實料的書去閱讀。我相信本書就有這樣的趣味、廣度與深度,值得再三玩味。
第2版內容比第1版增加了一章“并行計算”,而本版內容比第2版又增加了一章“機器學習概論”。為了將機器學習原理和技術用深入淺出、有趣而不失嚴謹的方式介紹給初學者,筆者著實煞費苦心,最后成果令人欣喜。筆者認為這本書至此可以說是計算機導論教材中最全面的教材之一,包含了相關的各方面知識: 計算機組織結構,數字邏輯基礎,匯編語言,程序語言基礎和Python,算法基礎,操作系統,并行計算,網絡原理,信息安全基礎,機器學習等。希望讀者能自行學習,多多利用本書,或合并閱讀筆者的另外一本書《編程導論——以Python為舟》(ISBN 9787302505976),相信對讀者將來的相關面試、筆試,乃至于整體提高計算機素養都會大有裨益。
沙行勉 (Edwin Sha),博士生導師,2000年起作為終身職正教授任教于美國得克薩斯州大學達拉斯分校(UTD)計算機科學系。任上海交通大學、山東大學、北京航空航天大學等客座、兼任教授或博導。2008年被評為海外杰出青年學者,2010年起任教育部長江學者講座教授。2011年起任中國q人計劃特聘專家,2012—2017年任重慶大學計算機學院院長。現任華東師范大學終身特聘教授。
第1章計算機學什么
1.1探索黑匣子——從一個程序談起
1.1.1探索黑匣子之計算機硬件
1.1.2探索黑匣子之計算機軟件
1.1.3探索黑匣子之操作系統
1.1.4計算機系統的層次
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嵌入式系統
1.4.3未來的計算機
1.5計算機前沿知識——大數據
1.5.1數據
1.5.2大數據
1.5.3大數據的應用
1.5.4對數據和邏輯的正確態度——沙老師的話
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電路實現邏輯(課時不足時,可不講本節)
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章程序是如何執行的
3.1引例
3.2a=a+1的執行過程
3.2.1分解a=a+1的執行步驟
3.2.2CPU中的核心部件
3.2.3匯編指令的概念
3.2.4a=a+1的完整執行過程
3.3控制結構的執行
3.3.1ifelse選擇語句
3.3.2分支跳轉指令
3.3.3ifelse選擇語句的執行
3.3.4while循環語句的執行
3.3.5for循環語句的執行
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循環語句
4.4.3for循環語句
4.5Python函數調用
4.6Python自定義數據結構
4.6.1面向過程與面向對象
4.6.2面向對象基本概念——類與對象
4.7基于Python面向對象編程實現數據庫功能
4.7.1Python面向對象方式實現數據庫的學生類
4.7.2Python面向對象方式實現數據庫的課程類
4.7.3Python創建數據庫的學生與課程類組
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動態規劃
5.6以老鼠走迷宮為例
5.7談計算思維的美
5.7.1遞歸思想的美
5.7.2計算思維求解問題的基本方式的美
5.7.3問題復雜度的研究之美
習題5
第6章操作系統簡介
6.1計算機的啟動
6.1.1啟動自檢階段
6.1.2初始化啟動階段
6.1.3啟動加載階段
6.1.4內核裝載階段
6.1.5登錄階段
6.2認識操作系統
6.3操作系統對硬件資源的管理——硬件中斷與異常
6.3.1操作系統對I/O設備的管理——硬件中斷
6.3.2操作系統對CPU的管理——硬件中斷
6.3.3操作系統對內存的管理——“異常”中斷
6.4操作系統對應用程序提供較安全可靠的服務——軟件中斷
6.4.1內核態與用戶態
6.4.2系統調用——軟件中斷
6.4.3常用系統調用
6.4.4系統調用實例: read系統調用
6.5操作系統對多運行環境的管理
6.5.1進程
6.5.2進程狀態
6.5.3進程調度
6.6文件系統
6.6.1文件基本概念
6.6.2目錄樹結構
6.6.3Python中的文件操作
6.6.4學生實例的擴展
習題6
第7章并行計算
7.1并行計算簡介
7.1.1并行計算能加速程序執行
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醫療物聯網
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系統安全
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
參考文獻