小苏子
小苏子PDF在线图书

编程导论 内容简介

编程导论 内容简介

编程导论 目录

编程导论 精彩文摘

《编程导论》基于麻省理工学院(MIT)的一门课程写成,主要目标是帮助读者掌握并熟练使用各种计算技术。本书涵盖了Python的大部分特性,重点介绍如何使用Python这门语言,共包含编程基础、Python程序设计语言、理解计算的关键概念、计算问题的解决技术等四个方面。本书将Python语言特性和编程方法贯穿全书,目的是帮助读者在学习Python的同时掌握如何使用计算来解决有趣的问题。本书适合那些对编程知之甚少却需要(或者想要)使用计算方法来解决问题的学生,是学习更高级计算机科学课程的基础。第1章 起步第2章 Python介绍2.1 Python的基本元素2.1.1 对象、表达式和数值类型2.1.2 变量和赋值2.1.3 IDLE2.2 分支程序2.3 字符串和输出2.4 循环第3章 一些简单的数值类程序3.1 穷举法3.2 for循环3.3 近似解和二分查找3.4 关于浮点数3.5 牛顿-拉夫逊方法第4章 函数、作用域和规范抽象4.1 函数和作用域4.1.1 函数定义4.1.2 关键字参数和默认值4.1.3 作用域4.2 规范4.3 递归4.3.1 斐波那契数4.3.2 文和分治4.4 全局变量4.5 模块4.6 文件第5章 结构化类型、可变性和高阶函数5.1 元组5.2 列表和可变性5.2.1 克隆5.2.2 列表解析5.3 数对象5.4 字符串、元组和列表5.5 字典第6章 测试和调试6.1 测试6.1.1 黑盒测试6.1.2 白盒测试6.1.3 执行测试6.2 调试6.2.1 学习调试6.2.2 设计实验6.2.3 如果遇到阻碍6.2.4 找到“目标”错误之后第7章 异常和断言7.1 处理异常7.2 把异常当作控制流来使用7.3 断言第8章 类和面向对象编程8.1 抽象的数据类型和类8.1.1 使用抽象的数据类型来设计程序8.1.2 使用类来记录学生和教师8.2 继承8.2.1 多层继承8.2.2 替代法则8.3 封装和信息隐藏8.4 进阶实例:抵押贷款第9章 算法复杂度简介9.1 思考计算复杂度9.2 渐近表示9.3 一些重要的复杂度9.3.1 常数复杂度9.3.2 对数复杂度9.3.3 线性复杂度9.3.4 对数线性复杂度9.3.5 多项式复杂度9.3.6 指数复杂度9.3.7 复杂度对比第10章 一些简单的算法和数据结构10.1 搜索算法10.1.1 线性搜索和间接访问元素10.1.2 二分查找和利用假设10.2 排序算法10.2.1 归并排序10.2.2 把函数当做参数10.2.3 Python中的排序10.3 散列表第11章 绘图以及类的扩展内容11.1 使用PyLab绘图11.2 扩展实例:绘制抵押贷款第12章 随机算法、概率以及统计12.1 随机程序12.2 统计推断和模拟12.3 分布12.3.1 正态分布和置信水平12.3.2 均匀分布12.3.3 指数分布和几何分布12.3.4 本福德分布12.4 强队的获胜概率12.5 散列和碰撞第13章 随机游动和数据可视化13.1 醉汉游动13.2 有偏随机游动13.3 危机重重的田地第14章 蒙特卡罗模拟14.1 帕斯卡的问题14.2 过还是不过14.3 使用查表提高性能14.4 寻找π14.5 模拟模型的结束语第15章 理解实验数据15.1 弹簧的行为15.2 弹丸的行为15.2.1 决定系数15.2.2 使用计算模型15.3 拟合指数分布15.4 当理论缺失时第16章 谎言和统计16.1 垃圾输入只能产生垃圾输出16.2 图表会骗人16.3 与此谬误16.4 统计方法并不能代替数据16.5 抽样偏差16.6 语境问题16.7 当心外推法16.8 得克萨斯神枪手谬误16.9 百分比会说谎16.10 小心谨慎第17章 背包和图的最优化问题17.1 背包问题17.1.1 贪婪算法17.1.2 0/1背包问题的最优解法17.2 图的最优化问题17.2.1 一些典型的图论问题17.2.2 疾病传播和最小割17.2.3 最短路径、深度优先搜索和广度优先搜索第18章 动态规划18.1 斐波那契数列18.2 动态规划和0/1背包问题18.3 动态规划和分治第19章 机器学习简介19.1 特征向量19.2 距离度量19.3 聚类19.4 类型示例和聚类19.5 K-means聚类19.6 人造案例19.7 稍微真实一些的示例19.8 小结附录 Python 2.7 快速参考第2章 Python介绍虽然每种编程语言都不同(尽管区别并没有设计者所说的那么大),但在某些方面它们是相关的。低级还是高级:指是否在机器层面使用指令和数据对象编程(例如,将64位数据从一个位置移动到另一个位置),或者是否使用由语言设计者提供的更加抽象的操作来编程(例如,在屏幕上弹出一个菜单)。通用还是指定应用领域:指编程语言的原始操作符应用领域是很广泛还是专门针对某一领域。例如,Adobe Flash的设计目的是快速为网页添加动画和交互,你绝对不想用它来构建一个股票投资组合分析系统。解释还是编译:指的是直接由解释器运行编程人员写的指令序列,还是先把这个序列用编译器转换成机器级别的原始操作符。编程人员写的代码称为源代码。(在计算机发展的早期,人们需要使用非常接近机器码的语言来编写源代码,从而让它可以直接被计算机硬件解释。)这两种方法各有优势。使用解释型语言编写的代码通常更容易调试,因为解释器可以提供和源代码联系更紧密的错误信息。而编译型语言通常可以让程序运行得更快并使用更少的空间。在本书中,我们使用Python。然而,这并不是一本关于Python的书。虽然本书的确会指导读者学习Python,但更重要的是可以让读者学会如何编写可以解决问题的程序。这项技能可以应用在各种编程语言上。

赞(0)
未经允许不得转载:小苏子图书 » 编程导论 内容简介