Introduction to Computation and Programming Using Python with Application to Understanding Data, Second Edition

  • 6h 24m
  • John V. Guttag
  • The MIT Press
  • 2016

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

About the Author

John V. Guttag is the Dugald C. Jackson Professor of Computer Science and Electrical Engineering at MIT.

In this Book

  • Getting Started
  • Introduction to Python
  • Some Simple Numerical Programs
  • Functions, Scoping, and Abstraction
  • Structured Types, Mutability, and Higher-Order Functions
  • Testing and Debugging
  • Exceptions and Assertions
  • Classes and Object-Oriented Programming
  • A Simplistic Introduction to Algorithmic Complexity
  • Some Simple Algorithms and Data Structures
  • Plotting and More about Classes
  • Knapsack and Graph Optimization Problems
  • Dynamic Programming
  • Random Walks and More about Data Visualization
  • Stochastic Programs, Probability, and Distributions
  • Monte Carlo Simulation
  • Sampling and Confidence Intervals
  • Understanding Experimental Data
  • Randomized Trials and Hypothesis Checking
  • Conditional Probability and Bayesian Statistics
  • Lies, Damned Lies, and Statistics
  • A Quick Look at Machine Learning
  • Clustering
  • Classification Methods
  • PYTHON 3.5 Quick Reference
SHOW MORE
FREE ACCESS