eBooks purchased from this site are not available as downloadable PDFs and are not compatible with Kindle or Android devices.
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.
An errata sheet for this book is available at http://people.csail.mit.edu/guttag/errataSpring.