出版社:人民郵電出版社 ISBN:9787115535542 版次:1 商品編碼:12878426 品牌:異步圖書 包裝:平裝 開本:16開 出版時間:2020-06-01 用紙:膠版紙 頁數:210 正文語種:中文 作者:克裡斯汀·阿爾瓦拉多,扎卡裡·道茲,吉奧夫·昆寧,蘭·列別斯科,王海鵬
" 編輯推薦 ·美國知名的理工高校哈維瑪德學院開發的“計算機科學通識”課程教材 ·美國克萊蒙特學院聯盟的眾多名校采用 ·用獨特的方法介紹計算機科學,帶領讀者進入這一充滿智慧和活力的知識領域 ·隨書附贈大量教學資源,包括完整的授課PPT、豐富的每周作業集、一些附帶的軟件和文檔,下載方式請見前言部分的配套網站 內容簡介 本書是美國哈維瑪德學院 “計算機科學通識”課程的配套教材,用獨特的方法介紹計算機科學,帶領讀者進入這一充滿智慧和活力的知識領域。 全書共7章。第1章介紹計算機科學的概念,引入了用於控制虛擬的“Picobot”機器人的一種簡單的編程語言;第2章和第3章介紹Python編程語言,並且結合Python介紹了函數式編程的思想和概念;第4章深入計算機的內部工作原理,從數字邏輯到機器組織,再到用機器語言編程;第5章探討計算中更復雜的思想,同時探討諸如引用和可變性等概念,以及包括循環在內的構造、數組和字典;第6章探討面向對像編程和設計中的一些關鍵思想;第7章針對問題解決,在計算復雜性和可計算性方面,提供了一些優雅的,但數學上非常合理的處理方法,最終證明了計算機上無法解決的許多計算問題。 本書適合想要通過Python編程來繫統學習和了解計算機科學的讀者閱讀,也可以作為高等院校計算機相關專業的教學參考書。 作者簡介 克裡斯汀·阿爾瓦拉多(Christine Alvarado),美國加州大學聖地亞哥分校教授,她曾經在哈維瑪德學院任教。 扎卡裡·道茲 (Zachary Dodds),美國哈維瑪德學院計算機科學教授。 吉奧夫·昆寧(Geoff Kuenning),美國哈維瑪德學院教授。 蘭·列別斯科(Ran Libesk),美國哈維瑪德學院教授。 目錄 目 錄
第1章 引言1 1.1什麼是計算機科學1 1.1.1數據2 1.1.2算法2 1.1.3編程4 1.1.4抽像5 1.1.5解決問題和創造力5 1.2Picobot5 1.2.1Roomba問題6 1.2.2環境6 1.2.3狀態8 1.2.4局部思考,全局行動9 1.2.5不管怎樣11 1.2.6算法和規則12 1.2.7Picobot的挑戰13 1.2.8一個迷宮,朋友們13 1.2.9不可計算的環境15 關鍵術語15 練習15 判斷題15 討論題15 編程題16 第2章 函數式編程(第 一部分)17 2.1人類、黑猩猩和拼寫檢查程序17 2.2Python入門18 2.2.1命名事物19 2.2.2名稱中有什麼20 2.3更多數據:從數字到字符串20 2.3.1關於長度的簡短說明21 2.3.2索引21 2.3.3切片21 2.3.4字符串算術22 2.4列表23 一些好消息23 2.5在Python中使用函數24 2.5.1關於文檔字符串的簡短 說明25 2.5.2關於注釋的同樣簡短的 說明26 2.5.3函數可以有多行26 2.5.4函數可以有多個參數26 2.5.5為什麼要編寫函數27 2.6做出決策27 2.6.1第二個函數示例29 2.6.2縮進31 2.6.3多重條件32 2.7遞歸33 2.7.1第 一個遞歸示例: 階乘34 2.7.2回到編輯距離函數36 2.8遞歸揭秘37 2.8.1調用函數的函數37 2.8.2遞歸,真正的揭秘39 2.9我們來使用遞歸吧44 2.9.1遞歸設計44 2.9.2基本情況44 2.9.3使用遞歸進行設計44 2.9.4遞歸模式47 2.9.5可視化工具47 2.10取之棄之48 2.11編輯距離52 2.11.1distance的基本情況52 2.11.2distance的遞歸情況53 2.12結論54 關鍵術語55 練習56 判斷題56 填空題57 討論題57 編程題58 第3章函數式編程(第二部分)59 3.1密碼學和素數59 3.2一等函數61 3.3生成素數61 3.4過濾65 3.5lambda67 3.6將Google放在map上69 3.6.1map70 3.6.2reduce73 3.6.3組合與mapReduce74 3.7函數作為結果75 3.7.1用Python做微積分76 3.7.2高階導數77 3.8再談RSA密碼學78 3.9結論82 關鍵術語82 練習83 判斷題83 填空題83 討論題84 編程題84 第4章計算機組織86 4.1計算機組織概論86 4.2表示信息87 4.2.1整數87 4.2.2算術88 4.2.3負數思維89 4.2.4分數:拼接在一起90 4.2.5字母和字符串90 4.2.6結構化信息91 4.3邏輯電路92 4.3.1布爾代數92 4.3.2產生其他布爾函數93 4.3.3使用電路的邏輯95 4.3.4邏輯計算97 4.3.5內存99 4.4構建完整的計算機100 馮諾依曼架構102 4.5Hmmm104 4.5.1一個簡單的Hmmm 程序105 4.5.2試用106 4.5.3循環107 4.5.4函數109 4.5.5使用棧來遞歸111 4.5.6保存“珍貴財產”113 4.5.7完整的Hmmm指令集115 4.5.8最後幾句話116 4.6結論117 關鍵術語117 練習118 判斷題118 選擇題和簡答題119 討論題120 邏輯設計與編程題120 第5章命令式編程122 5.1計算機了解你(比你更了解你 自己)122 我們的目標:音樂推薦繫統124 5.2從用戶那裡獲取輸入125 類型轉換125 5.3重復任務:循環126 5.3.1底層的遞歸與迭代127 5.3.2有限迭代:for循環128 5.3.3如何使用循環控制 變量129 5.3.4累積答案130 5.3.5處理非預期的輸入134 5.3.6不確定迭代:while 循環134 5.3.7for循環與while循環135 5.3.8故意創建無限循環137 5.3.9迭代是高效的137 5.4引用以及可變和不可變數據138 5.4.1按引用賦值138 5.4.2可變數據類型能用其他 名稱更改142 5.5可變數據+迭代:挑選藝人143 5.5.1為什麼要排序?因為運行 時間很重要143 5.5.2一種簡單的排序算法:selectionSort146 5.5.3為什麼selectionSort 有效148 5.5.4一種不同排序的swap149 5.5.5二維數組和嵌套循環151 5.5.6字典153 5.6讀寫文件155 5.7整合在一起:程序設計156 5.8結論161 關鍵術語161 練習162 判斷題162 選擇題和簡答題163 討論題164 編程題165 第6章面向對像的程序167 6.1簡介167 6.2對像式思考167 6.3有理數解決方案169
6.4重載173 6.5打印一個對像175 6.6關於對像主題的更多討論176 6.7用OOP實現圖形178 6.8最後,機器人大戰僵尸181 6.9結論187 關鍵術語188 練習188 判斷題188 填空題189 討論題189 編程題190 第7章問題有多難192 7.1永不結束的程序192 7.23種問題:容易、困難和 不可能193 7.2.1容易的問題193 7.2.2困難的問題194 7.2.3不可能的問題198 7.3停機問題:不可計算的問題205 7.4結論208 關鍵術語208 練習209 判斷題209 填空題209 簡答題和討論題210 查看全部↓
" |