Introduction to Computation and Programming Using Python

John V. Guttag

出版社

The MIT Press

出版时间

2013-07-01

ISBN

9780262525008

评分

★★★★★
书籍介绍
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 (or MOOC) offered by the pioneering MIT--Harvard collaboration edX. 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. The book does not require knowledge of mathematics beyond high school algebra, but does assume that readers are comfortable with rigorous thinking and not intimidated by mathematical concepts. 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. Introduction to Computation and Programming Using Python can serve as a stepping-stone to more advanced computer science courses, or as a basic grounding in computational problem solving for students in other disciplines.
AI导读
核心看点
  • MIT经典教材,系统讲解Python编程与计算思维。
  • 涵盖算法复杂度、数据可视化及基础统计学知识。
  • 强调从简单解法入手,逐步优化代码性能的策略。
适合谁读
  • 零基础或初学者,希望系统学习Python编程的人群。
  • 对计算机科学、算法及数据科学感兴趣的学生。
  • 配合MIT公开课学习,追求高效入门的自学者。
读前提醒
  • 建议搭配MIT官方MOOC课程视频与习题同步学习。
  • 注意书中部分代码基于Python 2.x,需留意版本差异。
  • 中文版由学生翻译,部分术语表达可能不够地道。
读者共识
  • 配套课程极佳,习题设计用心,适合配合视频学习。
  • 作为入门书优于《笨办法》,讲解细致且逻辑清晰。
  • 内容略显杂糅,部分高级主题如OOP讲解较简略。

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

精彩摘录
  • "务必记住,最高效的算法不一定是最合适的算法。 通常来说,最高效的算法都很难理解。 一种比较好的解决策略是:首先找到最简单直接的解决方法,然后通过找到它的计算瓶颈,接着想办法提高和瓶颈相关的代码的计算复杂度,从而提高性能。"
  • "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抽象它允许程序员编写的代码不操作特定的对象,而是直接操作函数调用时传入的实参,类似与其他语言中的引用"
  • "如果在函数体中的一个名称出现时没有被绑定到一个对象,那解释器会搜索函数外层的栈帧。如果找到了对应的名称,会使用他绑定的值。"
  • "只要一个对象在函数体内被绑定到一个名称(即使它在赋值之前被使用),它就被当作函数的局部对象"
  • "列表与元祖的最大区别:列表是可变的.元组,整数,浮点数和字符串的类型都是不可变的."
  • "散散步,明天再尝试。……也就是说,可以用休息时间来换取效率。"
用户评论
无论computation或programming都很浅...也许真的只是intro
作为入门书比笨办法要好,讲的比较细
真是完爆我看过的任何一本国内老师原创编纂的programming入门
上课教材。比较杂,但是感觉用处好像也不是特别大。。。OOP那一块还不错
明白,简洁,有用,有趣,适合入门学生。跟EdX上MITx - 6.00.1x 和6.00.2x两门课结合起来学效果更佳。书比课程内容更全面讨论更深入,但课程上有书中没有的精心设计的练习题。
“You probably found some topics less interesting than others”(×) I found all topics less interesting.(√)
作为入门写的很不错,很细致,而且后半部分涉及到了很多关于统计学的知识点
收藏