Please take a moment to complete this survey below

Library's collection Library's IT development Cancel

Introduction to computation and programming using python with apllication to understanding data 2nd ed.

Author
  • Guttag, John V.
Additional Author(s)
-
Publisher
Cambridge: The MIT press, 2016
Language
English
ISBN
9780262529624
Series
Subject(s)
  • COMPUTER PROGRAMMING-TEXTBOOKS
  • PYTHON (COMPUTER PROGRAM LANGUAGE)
Notes
. . Index: p. 435-447
Abstract
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.
Physical Dimension
Number of Page(s)
xviii, 447 p.
Dimension
23 cm.
Other Desc.
ill.
Summary / Review / Table of Content
Preface –

1. Introduction –

2. Introduction to Python.
The basic elements of Python ;
Objects, expressions, and numerical types ;
Variables and assignment ;
Python IDE's ;
Branching programs ;
Strings and input ;
Input ;
A digression about character encoding ;
Iteration –

3. Some simple numerical programs.
Exhaustive enumeration ;
For loops ;
Approximate solutions and bisection search ;
Few words about using floats ;
Newton-Raphson –

4. Functions, scoping, and abstraction.
Functions and scoping ;
Function definitions ;
Keyword arguments and default values ;
Scoping ;
Specifications ;
Recursion ;
Fibonacci numbers ;
Palindromes ;
Global variables ;
Modules ;
Files –

5. Structured types, mutability, and higher-order functions.
Tuples ;
Sequences and multiple assignment ;
Ranges ;
Lists and mutability ;
Cloning ;
List comprehension ;
Functions as objects ;
Strings, tuples, ranges, and lists ;
Dictionaries –

6. Testing and debugging.
Testing ;
Black-box testing ;
Glass-box testing ;
Conducting tests ;
Debugging ;
Learning to debug ;
Designing the experiment ;
When the going gets tough ;
When you have found "the" bug –

7. Exceptions and assertions.
Handling exceptions ;
Exceptions as a control flow mechanism ;
Assertions –

8. Classes and object-oriented programming.
Abstract data types and classes ;
Designing programs using abstract data types ;
Using classes to keep track of students and faculty ;
Inheritance ;
Multiple levels of inheritance ;
Substitution principle ;
Encapsulation and information hiding ;
Generators ;
Mortgages, an extended example –

9. A simplistic introduction to algorithmic complexity.
Thinking about computational complexity ;
Asymptotic notation ;
Some important complexity classes ;
Constant complexity ;
Logarithmic complexity ;
Linear complexity ;
Log-linear complexity ;
Polynomial complexity ;
Exponential complexity ;
Comparisons of complexity classes –

10. Some simple algorithms and data structures.
Search algorithms ;
Linear search and using indirection to access elements ;
Binary search and exploiting assumptions ;
Sorting algorithms ;
Merge sort ;
Exploiting functions as parameters ;
Sorting in Python ;
Hash tables –

11. Plotting and more about classes.
Plotting using PyLab ;
Plotting mortgages, an extended example –

12. Knapsack and graph optimization problems.
Knapsack problems ;
Greedy algorithms ;
Optimal solution to the 0/1 Knapsack problem ;
Graph optimization problems ;
Some classic graph-theoretic problems ;
Shortest path : depth-first search and breadth-first search –

13. Dynamic programming.
Fibonacci sequences, revisited ;
Dynamic programming and the 0/1 Knapsack problem ;
Dynamic programming and divide-and-conquer –

14. Random walks and more about data visualization.
Random walks ;
The drunkard's walk ;
Biased random walks ;
Treacherous fields –

15. Stochastic programs, probability, and distributions.
Stochastic programs ;
Calculating simple probabilities ;
Inferential statistics ;
Distributions ;
Probability distributions ;
Normal distributions ;
Continuous and discrete uniform distributions ;
Binomial and multinomial distributions ;
Exponential and geometric distributions ;
Benford's distribution ;
Hashing and collisions ;
How often does the better team win? –

16. Monte Carlo stimulation.
Pascal's problem ;
Pass or don't pass? ;
Using table lookup to improve performance ;
Finding pi ;
Some closing remarks about simulation models –

17. Sampling and confidence intervals.
Sampling the Boston Marathon ;
Central limit theorem ;
Standard error of the mean –

18. Understanding experimental data.
The behavior of springs ;
Using linear regression to find a fit ;
The behavior of projectiles ;
Coefficient of determination ;
Using a computational model ;
Fitting exponentially distributed data ;
When theory is missing –

19. Randomized trials and hypothesis checking.
Checking significance ;
Beware of P-values ;
One-tail and one-sample tests ;
Significant or not? ;
Which N? ;
Multiple hypotheses –

20. Conditional probability and Bayesian statistics.
Conditional probabilities ;
Bayes' theorem ;
Bayesian updating –

21. Lies, damned lies, and statistics.
Garbage in garbage out (GIGO) ;
Tests are imperfect ;
Pictures can be deceiving ;
Cum hoc ergo propter hoc ;
Statistical measures don't tell the whole story ;
Sampling bias ;
Context matters ;
Beware of extrapolation ;
Texas sharpshooter fallacy ;
Percentages can confuse ;
Statistically significant differences can be insignificant ;
Regressive fallacy ;
Just beware –

22. A quick look at machine learning.
Feature vectors ;
Distance metrics –

23. Clustering.
Class cluster ;
K-means clustering ;
A contrived example ;
A less contrived example –

24. Classification methods.
Evaluating classifiers ;
Predicting the gender of runners ;
K-nearest neighbors ;
Regression-based classifiers ;
Surviving the Titanic ;
Wrapping up –

Python 3.5 quick reference.
Exemplar(s)
# Accession No. Call Number Location Status
1.00351/18005.133 Gut ILibrary - 7th FloorAvailable

Similar Collection

by author or subject