計算機科學導論——以Python為舟(第3版)

沙行勉

  • 計算機科學導論——以Python為舟(第3版)-preview-1
  • 計算機科學導論——以Python為舟(第3版)-preview-2
  • 計算機科學導論——以Python為舟(第3版)-preview-3
計算機科學導論——以Python為舟(第3版)-preview-1

買這商品的人也買了...

商品描述

本書用深入淺出的語言講解了電腦科學的基礎知識。主要內容包括電腦學什麽、神奇的0與1、程序是如何執行的、學習Python語言與數據庫知識、計算思維的核心——算法、操作系統、並行計算、電腦網絡與物聯網、信息安全、機器學習等。本書不僅讓讀者能夠清楚、完整地瞭解如何用電腦解決問題,而且通過Python程序的巧妙演繹與動手實踐,讓讀者切實體會到電腦科學的廣博與趣味,帶領讀者體會電腦科學之美。 本書可作為電腦科學入門課程的教科書,也可作為廣大讀者理解電腦科學基本知識的科普讀物及學習Python語言的參考書。

作者簡介

沙行勉 (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.1ifelse選擇語句
3.3.2分支跳轉指令
3.3.3ifelse選擇語句的執行
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.2AlphaBeta剪枝搜索
10.1.3機器學習簡介
10.2最小二乘分類器
10.3Logistic分類器
10.4樸素貝葉斯分類器
10.5人工神經網絡
10.6深度學習
習題10
參考文獻