Introduction to Computation and Programming Using Python (2/e)

John V. Guttag

出版社

The MIT Press

出版时间

2016-08-12

ISBN

9780262529624

评分

★★★★★
书籍介绍
The new edition of an introductory text that teaches students the art of computational problem solving, covering topics ranging from simple algorithms to information visualization. This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of data science for using computation to model and interpret data. The book is based on an MIT course (which became the most popular course offered through MIT's OpenCourseWare) and was developed for use not only in a conventional classroom but in in a massive open online course (MOOC). This new edition has been updated for Python 3, reorganized to make it easier to use for courses that cover only a subset of the material, and offers additional material including five new chapters. Students are introduced to Python and the basics of programming in the context of such computational concepts and techniques as exhaustive enumeration, bisection search, and efficient approximation algorithms. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. This edition offers expanded material on statistics and machine learning and new chapters on Frequentist and Bayesian statistics.
AI导读
核心看点
  • MIT经典课程教材,系统讲授计算思维与Python编程
  • 涵盖算法、数据可视化及数据科学基础工具应用
  • 强调抽象艺术与计算瓶颈优化,而非单纯语法教学
适合谁读
  • 零基础或初学者,希望建立计算机科学的整体认知
  • 有强烈应用目的,需利用Python解决实际问题者
  • 希望结合MIT公开课资源进行系统学习的自学者
读前提醒
  • 建议搭配MIT OpenCourseWare课件与习题同步学习
  • 注意区分Python 2与3版本差异,关注代码兼容性
  • 重视后半部分模拟与概率概念,需具备初步数学基础
读者共识
  • 作者掌控力强,文字活泼且兼具深度,雅俗共赏
  • 重在讲解用Python实现目的,而非单纯教技法
  • 部分读者认为内容略薄,面向对象章节讲解较简略

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "务必记住,最高效的算法不一定是最合适的算法。 通常来说,最高效的算法都很难理解。 一种比较好的解决策略是:首先找到最简单直接的解决方法,然后通过找到它的计算瓶颈,接着想办法提高和瓶颈相关的代码的计算复杂度,从而提高性能。"
  • "It is possible to deceive students into thinking that they have learned how to program by having them complete a series of highly constrained "fill in the blank" programming problems. However, this does not prepare students for figuring out how to harness computational thinking to solve problems."
  • "For centuries, this was the prevailing scientific wisdom; then along came quantum mechanics and the Copenhagen Doctrine. The doctrine’s proponents, led by Bohr and Heisenberg, argued that at its most fundamental level the behavior of the physical world cannot be predicted. One can make probabilistic"
  • "参数有一个特性,被称为Lambda抽象它允许程序员编写的代码不操作特定的对象,而是直接操作函数调用时传入的实参,类似与其他语言中的引用"
  • "如果在函数体中的一个名称出现时没有被绑定到一个对象,那解释器会搜索函数外层的栈帧。如果找到了对应的名称,会使用他绑定的值。"
  • "只要一个对象在函数体内被绑定到一个名称(即使它在赋值之前被使用),它就被当作函数的局部对象"
  • "列表与元祖的最大区别:列表是可变的.元组,整数,浮点数和字符串的类型都是不可变的."
  • "散散步,明天再尝试。……也就是说,可以用休息时间来换取效率。"
作者简介
John V. Guttag is the Dugald C. Jackson Professor of Computer Science and Electrical Engineering at MIT.
用户评论
MITx: 6.00.1x 对应教材。作者对CS整体的掌控太强,整本书可算雅俗共赏,入门者易学,老成者也有很多收获。老头用得文字也很活泼,信手拈来即是典故,真是高人
好书。尤其讲同类型书讲不好的内容比如测试、异常、通俗的解释算法,这本书都讲的很容易懂。推荐给所有对计算机有兴趣的朋友。MIT真会选教材啊。看了1-10章,后面的选择不看
MITx: 6.00.1x & 6.00.2x
作者挺喜欢用括弧和注脚抖机灵,一副堪布雷奇左胶的形象跃然纸上。也许大学生喜欢这样的吧,但是中年人就觉得得啦快点讲重点!#人间悲剧之学python的中年人
ch1~12
MIT羊毛真香
best introduction–level book!
这本书不是教技法的,重在讲解实用python去实现目的。尤其后半部分的simulation,probability,须得对这些概念有初步的理解。个人觉得,本书适合有强烈应用目的的同学,而非单纯的coding初学者。plus后面一些sampling的概念讲得挺好的。
下载
收藏