商品详情

本书评价

这本书就是我们期待已久的“计算思维”图书:不拘泥于技术细节,详尽展现了计算机科学的广度和乐趣。第二版收录了很多全新的材料,帮助读者聚焦计算,包括理解数据、完善传统计算问题的解决方案。
-Jeannette M.Wing,微软研究院副总裁,卡耐基梅隆大学计算机科学系顾问教授、前系主任

本书作者既是一位优秀的教师,也是杰出的作家。虽然你将通过本书学习Python,但这并不是“一本Python书”;虽然你也会学习编程,但这同样不是一本“编程书”,本书叙述严谨,可读性强,详细介绍了计算问题解决方法以及数据科学。第二版进行了扩展与重构,充分反映了python作为数据科学语言所扮演的重要角色。
-Ed Lazowska,比尔和梅琳达.盖茨基金会计算机科学与工程部门主席,华盛顿大学电子科研学院导师

用Python3讲授一门小型计算机科学课程时,我选择了这本书,看重的是书中关于计算机科学和编程更广阔视野和更多思路。

这本书非常棒,涵盖了计算机科学的众多基础领域。作者用Python讲解了计算相关知识,并且教你如何以计算机科学家的身份思考并解决问题。书中的示例也能让你切身实践习得的知识。

读者评价

书是一名大四生翻译的,有些地方表达的不地道,姑且随手找出几处吐吐槽。
p1: [从内存的角度来说,一台普通的计算机可能有几百GB]
我从来没见过一台普通计算机的内存个能有几百GB,我猜测原文应该用的是memory,这里翻译成存储设备比较合适。
p3:[当一个整数整数存在整数立方根时]
给出的程序代码只能求解正整数的整数立方根,所以还是把文字说明改改吧。
p4:解释python2.7中的range函数和xrange函数区别那段,讲解的十分混乱,让人摸不到头脑,想来这应该是原文的问题。没想到美帝大学教授的表达能力也这么让人捉急。表达的时候切记不能跳跃,中间不能有重大步骤的遗漏,否则讲出来就让人摸不到头脑。
p36-37:help命令里面输出的是英文,代码里面却翻译成中文了,要么全翻译、要么全不翻译,不要只翻译了一半,容易让人看着不明就里。
整体来说这本书还算是不错的,但是要是能找到一个工作多年,富有经验的程序员来翻译就更好了。

一开始想着应该有400+页,结果不到300页。
python语言、一般的算法理论、一些数学问题的算法、软件测试、机器学习都有所涉及,但是书本身太薄,这样很多地方势必写得不清楚。
要举例子的话,我觉得类和面向对象编程说得太简略。
另外python现在应该普及3.x了,没必要再以2.x为主,兼顾3.x.

本书特色

在这里还是要推荐下我自己建的Python开发学习群:483546416,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴

掌握多种不同的思维方式是每个人大学时代的必修课。具备使用计算思维解决问题的能力是程序员入门的基本技能。本书基于作者开授的MIT热门MOOC教程编写,旨在培养读者的计算思维,为其日后的IT生涯打下坚实的编程基础。

  • - 以Python 3为示例,涵盖Python大部分特性,重在介绍编程语言可以做什么
  • - 如何系统性地组织、编写、调试中等规模的程序
  • - 理解计算复杂度
  • - 将模糊的问题描述转化为明确的计算方法,以此解决问题,并深刻理解整个过程
  • - 掌握有用的算法以及问题简化技术
  • - 使用随机性和模拟技术清晰阐述很难得到封闭解的问题
  • - 使用计算工具(包括简单的统计、可视化以及机器学习工具)对数据进行理解与建模

内容简介

本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计算思维解决现实问题的能力。书中以Python 3 为例,介绍了对中等规模程序的系统性组织、编写、调试,帮助读者深入理解计算复杂度,还讲解了有用的算法和问题简化技术,并探讨各类计算工具的使用。与本书* 1版相比,* 2版全面改写了后半部分,且书中所有示例代码都从Python 2 换成了Python 3。
本书适合对编程知之甚少但想要使用计算方法解决问题的读者。

作者介绍

John V. Guttag
1999年~2004年任MIT电气工程与计算机科学系主任,所授计算机科学系列导论课程深受学生欢迎。目前为计算机科学与人工智能实验室网络及移动系统组联合负责人,还进行软件工程、机器定理证明、硬件验证等领域的研究以及培训工作。获美国布朗大学英语专业学士学位、应用数学硕士学位,多伦多大学计算机科学博士学位。

目录

  • 第1章 启程 1
  • 第2章 Python简介 6
  • 2.1 Python基本元素 7
  • 2.1.1 对象、表达式和数值类型 8
  • 2.1.2 变量与赋值 9
  • 2.1.3 Python IDE 11
  • 2.2 程序分支 12
  • 2.3 字符串和输入 14
  • 2.3.1 输入 15
  • 2.3.2 杂谈字符编码 16
  • 2.4 迭代 17
  • 第3章 一些简单的数值程序 20
  • 3.1 穷举法 20
  • 3.2 for循环 22
  • 3.3 近似解和二分查找 24
  • 3.4 关于浮点数 27
  • 3.5 牛顿 拉弗森法 29
  • 第4章 函数、作用域与抽象 31
  • 4.1 函数与作用域 32
  • 4.1.1 函数定义 32
  • 4.1.2 关键字参数和默认值 33
  • 4.1.3 作用域 34
  • 4.2 规范 37
  • 4.3 递归 39
  • 4.3.1 斐波那契数列 40
  • 4.3.2 回文 42
  • 4.4 全局变量 45
  • 4.5 模块 46
  • 4.6 文件 47
  • 第5章 结构化类型、可变性与
  • 高阶函数 50
  • 5.1 元组 50
  • 5.2 范围 52
  • 5.3 列表与可变性 52
  • 5.3.1 克隆 57
  • 5.3.2 列表推导 57
  • 5.4 函数对象 58
  • 5.5 字符串、元组、范围与列表 60
  • 5.6 字典 61
  • 第6章 测试与调试 65
  • 6.1 测试 65
  • 6.1.1 黑盒测试 66
  • 6.1.2 白盒测试 68
  • 6.1.3 执行测试 69
  • 6.2 调试 70
  • 6.2.1 学习调试 72
  • 6.2.2 设计实验 72
  • 6.2.3 遇到麻烦时 75
  • 6.2.4 找到“目标”错误之后 76
  • 第7章 异常与断言 77
  • 7.1 处理异常 77
  • 7.2 将异常用作控制流 80
  • 7.3 断言 82
  • 第8章 类与面向对象编程 83
  • 8.1 抽象数据类型与类 83
  • 8.1.1 使用抽象数据类型设计程序 87
  • 8.1.2 使用类记录学生与教师 87
  • 8.2 继承 90
  • 8.2.1 多重继承 92
  • 8.2.2 替换原则 93
  • 8.3 封装与信息隐藏 94
  • 8.4 进阶示例:抵押贷款 99
  • 第9章 算法复杂度简介 103
  • 9.1 思考计算复杂度 103
  • 9.2 渐近表示法 106
  • 9.3 一些重要的复杂度 107
  • 9.3.1 常数复杂度 107
  • 9.3.2 对数复杂度 108
  • 9.3.3 线性复杂度 108
  • 9.3.4 对数线性复杂度 109
  • 9.3.5 多项式复杂度 109
  • 9.3.6 指数复杂度 111
  • 9.3.7 复杂度对比 112
  • * 10章 一些简单算法和数据结构 114
  • 10.1 搜索算法 115
  • 10.1.1 线性搜索与间接引用元素 115
  • 10.1.2 二分查找和利用假设 116
  • 10.2 排序算法 119
  • 10.2.1 归并排序 120
  • 10.2.2 将函数用作参数 122
  • 10.2.3 Python中的排序 123
  • 10.3 散列表 124
  • * 11章 绘图以及类的进一步扩展 128
  • 11.1 使用PyLab绘图 128
  • 11.2 进阶示例:绘制抵押贷款 133
  • * 12章 背包与图的* 优化问题 139
  • 12.1 背包问题 139
  • 12.1.1 贪婪算法 140
  • 12.1.2 0/1背包问题的* 优解 143
  • 12.2 图的* 优化问题 145
  • 12.2.1 一些典型的图论问题 149
  • 12.2.2 * 短路径:深度优先搜索和
  • 广度优先搜索 149
  • * 13章 动态规划 155
  • 13.1 又见斐波那契数列 155
  • 13.2 动态规划与0/1背包问题 157
  • 13.3 动态规划与分治算法 162
  • * 14章 随机游走与数据可视化 163
  • 14.1 随机游走 163
  • 14.2 醉汉游走 164
  • 14.3 有偏随机游走 170
  • 14.4 变幻莫测的田地 175
  • * 15章 随机程序、概率与分布 178
  • 15.1 随机程序 178
  • 15.2 计算简单概率 180
  • 15.3 统计推断 180
  • 15.4 分布 192
  • 15.4.1 概率分布 194
  • 15.4.2 正态分布 195
  • 15.4.3 连续型和离散型均匀分布 199
  • 15.4.4 二项式分布与多项式分布 200
  • 15.4.5 指数分布和几何分布 200
  • 15.4.6 本福德分布 203
  • 15.5 散列与碰撞 204
  • 15.6 强队的获胜概率 206
  • * 16章 蒙特卡罗模拟 208
  • 16.1 帕斯卡的问题 209
  • 16.2 过线还是不过线 210
  • 16.3 使用查表法提高性能 213
  • 16.4 求π的值 214
  • 16.5 模拟模型结束语 218
  • 第* 章 抽样与置信区间 220
  • 17.1 对波士顿马拉松比赛进行抽样 220
  • 17.2 中心极限定理 225
  • 17.3 均值的标准误差 228
  • 第* 章 理解实验数据 231
  • 18.1 弹簧的行为 231
  • 18.2 弹丸的行为 238
  • 18.2.1 可决系数 240
  • 18.2.2 使用计算模型 241
  • 18.3 拟合指数分布数据 242
  • 18.4 当理论缺失时 245
  • 第* 章 随机试验与假设检验 247
  • 19.1 检验显著性 248
  • 19.2 当心P-值 252
  • 19.3 单尾单样本检验 254
  • 19.4 是否显著 255
  • 19.5 哪个N 257
  • 19.6 多重假设 258
  • 第* 章 条件概率与贝叶斯统计 261
  • 20.1 条件概率 262
  • 20.2 贝叶斯定理 263
  • 20.3 贝叶斯更新 264
  • 第* 章 谎言、该死的谎言与统计学 267
  • 21.1 垃圾输入,垃圾输出 267
  • 21.2 检验是有缺陷的 268
  • 21.3 图形会骗人 268
  • 21.4 Cum Hoc Ergo Propter Hoc 270
  • 21.5 统计测量不能说明所有问题 271
  • 21.6 抽样偏差 272
  • 21.7 上下文很重要 273
  • 21.8 慎用外推法 273
  • 21.9 得克萨斯神枪手谬误 274
  • 21.10 莫名其妙的百分比 276
  • 21.11 不显著的显著统计差别 276
  • 21.12 回归假象 277
  • 21.13 小心为上 278
  • 第* 章 机器学习简介 279
  • 22.1 特征向量 281
  • 22.2 距离度量 283
  • 第* 章 聚类 288
  • 23.1 Cluster类 289
  • 23.2 K-均值聚类 291
  • 23.3 虚构示例 292
  • 23.4 更真实的示例 297
  • 第* 章 分类方法 303
  • 24.1 分类器评价 303
  • 24.2 预测跑步者的性别 306
  • 24.3 K-* 邻近方法 308
  • 24.4 基于回归的分类器 312
  • 24.5 从“泰坦尼克”号生还 320
  • 24.6 总结 325
  • Python 3.5速查表 326
声明

1、链接失效请联系客服人员。
2、购买后如果链接失效可联系客服人员完善资源或进行退款办理。
3、资源均来源于网友分享及网络公开发表文件,所有资料仅供学习交流。
4、所收取费用仅用来维系网站运营,性质为用户友情赞助,并非售卖文件费用。
5、如侵犯您的权益,请联系客服人员,我们将会在第一时间进行处理。

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
相关推荐