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. 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, Corporate Vice President, Microsoft Research, and Consulting Professor of Computer Science and former Department Head,Carnegie Mellon University
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.
—Ed Lazowska, Bill & Melinda Gates Chair in Computer Science & Engineering, and Director of the eScience Institute, University of Washington
This textbook is recommended in many prestigious universities and institutes including
• Aligarh Muslim University
• Anna University
• GLA University
• Gujarat Technological University
• SRM University
• University of Calcutta
• University of Delhi
• Vishwakarma Institute of Technology