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.
Access no. | Call number | Location | Status |
---|---|---|---|
00351/18 | 005.133 Gut I | Library - 7th Floor | Available |