Introduction to Computation and Programming Using Python
- Length: 280 pages
- Edition: 1
- Language: English
- Publisher: The MIT Press
- Publication Date: 2013-01-18
- ISBN-10: 0262519631
- ISBN-13: 9780262519632
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.
Table of Contents
Chapter 1: Getting Started
Chapter 2: Introduction To Python
Chapter 3: Some Simplenumerical Programs
Chapter 4: Functions And Abstr Action
Chapter 5: Structured Types, Mutability, And Higher-Order Functions
Chapter 6: Testing And Debugging
Chapter 7: Exceptions And Assertions
Chapter 8: Classes And Object-Oriented Programming
Chapter 9: A Simplistic Introduction To Algorithmic Complexity
Chapter 10: Some Simple Algorithms And Data Structures
Chapter 11: Plotting And More About Classes
Chapter 12: Stochastic Progr Ams, Probability, And Statistics
Chapter 13: Random Walks And More About Data Visualization
Chapter 14: Monte Car Lo Si Mulation
Chapter 15: Understanding Experimental Data
Chapter 16: Lies, Damned Lies, And Statistics
Chapter 17: Knapsack And Graph Optimization Problems
Chapter 18: Dynamic Programming