新書推薦:
《
虚拟资本:金融怎样挪用我们的未来
》
售價:HK$
77.3
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
《
快人一步:系统性能提高之道
》
售價:HK$
110.9
《
算法图解(第2版)
》
售價:HK$
78.2
《
科学的奇幻之旅
》
售價:HK$
77.3
《
画艺循谱:晚明的画谱与消闲
》
售價:HK$
143.4
編輯推薦:
掌握多种不同的思维方式是每个人在大学时代的必修课。具备使用计算思维解决问题的能力是程序员入门的基本技能。本书基于作者开授的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 IDE11
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 01背包问题的* 优解143
12.2 图的* 优化问题145
12.2.1 一些典型的图论问题149
12.2.2 * 短路径:深度优先搜索和
广度优先搜索149
* 13章 动态规划155
13.1 又见斐波那契数列155
13.2 动态规划与01背包问题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 哪个N257
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 Hoc270
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