Introduction to Computation and Programming Using Python, second edition
With Application to Understanding Data
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.
This is the 'computational thinking' book we have all been waiting for! With humor and historical anecdotes, John Guttag conveys the breadth and joy of computer science without compromising technical detail. The second edition includes brand new material that focuses on computational approaches to understanding data, complementing traditional computational problem solving.
Jeannette M. Wing
Director of Columbia University's Data Sciences Institute
John Guttag is an extraordinary teacher and an extraordinary writer. This is not 'a Python book,' although you will learn Python. Nor is it a 'programming book,' although you will learn to program. It is a rigorous but eminently readable introduction to computational problem solving, and now also to data science—this second edition has been expanded and reorganized to reflect Python's role as the language of data science.
Bill & Melinda Gates Chair in Computer Science & Engineering, and Director of the eScience Institute, University of Washington