John V. Guttag
The MIT Press
Students who have had little to no prior experience with programming will find this book to be an excellent resource for learning the art of computational problem solving with Python and a variety of Python modules, including PyLab. It teaches students the abilities that will allow 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. It does this by providing students with skills that will allow them to make productive use of computational techniques. The book, which was intended for use not only in traditional classrooms but also in massive open online courses, is based on a course that was taught at MIT and eventually became the most popular course that was made available through MIT's OpenCourseWare (MOOC). This new edition has been brought up to date for Python 3, it has been rearranged to make it simpler to use for classes that cover only a fraction of the content, and it provides more material, which includes five new chapters.
Students are given an overview of Python as well as the fundamentals of programming within the framework of various concepts and approaches to computing, such as exhaustive enumeration, bisection search, and effective approximation methods. The book focuses on a wide range of topics that are not found in the majority of introductory texts. These topics include information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform). Additionally, the book focuses on two related but relatively advanced topics: optimization problems and dynamic programming. This edition adds new chapters on frequentist and Bayesian statistics, in addition to expanding the previous material on statistics and machine learning.