| |
| |
| |
What Is Computation? | |
| |
| |
Computation as Transformation | |
| |
| |
Computation as Reaction to Events | |
| |
| |
Algorithms | |
| |
| |
From Algorithms to Software | |
| |
| |
Exercises | |
| |
| |
| |
Invoking A Computation | |
| |
| |
Expressions and Commands | |
| |
| |
Changing State: Assignment | |
| |
| |
A Variety of Notations | |
| |
| |
Parsing | |
| |
| |
Exercises | |
| |
| |
| |
Simple Types: Numbers, Text, Booleans | |
| |
| |
The Organization of Computer Memory | |
| |
| |
Text | |
| |
| |
Collections of Numbers and Plotting | |
| |
| |
Booleans: True or False | |
| |
| |
Logical Operators: Boolean Operators with Boolean Inputs | |
| |
| |
Example: Measuring Information in Bits | |
| |
| |
Exercises | |
| |
| |
| |
Numbers And Precision | |
| |
| |
The Precision of Computer Arithmetic | |
| |
| |
Example: Global Positioning | |
| |
| |
Exercises | |
| |
| |
| |
Collections And Indexing | |
| |
| |
Indexing | |
| |
| |
Matrices | |
| |
| |
Mixed Data Types | |
| |
| |
Exercises | |
| |
| |
| |
Files And Scripts | |
| |
| |
Filenames | |
| |
| |
File Operators | |
| |
| |
Importing and Exporting Data | |
| |
| |
Scripts | |
| |
| |
Scripts as Computations | |
| |
| |
Exercises | |
| |
| |
Project: Time for a Cool Cup of Coffee | |
| |
| |
| |
Functions | |
| |
| |
Computations without Effects | |
| |
| |
Creating Functions | |
| |
| |
Functions as Arguments and Values | |
| |
| |
Exercises | |
| |
| |
| |
Conditionals | |
| |
| |
The if Statement | |
| |
| |
More Than Two Cases | |
| |
| |
Completeness and Exclusivity | |
| |
| |
Switch/Case | |
| |
| |
Advanced: Parallelization of Conditional Operators | |
| |
| |
Exercises | |
| |
| |
Project: The Morse Code | |
| |
| |
| |
LOOPS | |
| |
| |
For Loops | |
| |
| |
Accumulators | |
| |
| |
Nested Loops | |
| |
| |
Example: Optimal Matching with Nested Loops | |
| |
| |
Element-by-Element Operators | |
| |
| |
Outputs of Unknown Size | |
| |
| |
Loop Termination | |
| |
| |
Conditional Looping | |
| |
| |
Example: Measuring Information II | |
| |
| |
Dimensions and Arrays | |
| |
| |
Exercises | |
| |
| |
Project: Cellular Automata | |
| |
| |
Project: The Mandelbrot Set | |
| |
| |
| |
Scope | |
| |
| |
Environments and Scope | |
| |
| |
The Debugger | |
| |
| |
Shared Environments | |
| |
| |
Scoping of Functions | |
| |
| |
Pass by Reference | |
| |
| |
Exercises | |
| |
| |
| |
Events | |
| |
| |
Activating Input Devices | |
| |
| |
Example: Recording the Times of Events | |
| |
| |
Example: Exploring the Mandelbrot Set | |
| |
| |
Inputs without Waiting | |
| |
| |
Warnings and Errors | |
| |
| |
Testing Functions | |
| |
| |
Optional and Default Arguments | |
| |
| |
Exercises | |
| |
| |
| |
Arranging Data: Searching And Databases | |
| |
| |
Datasets | |
| |
| |
Selecting Subsets from Lists | |
| |
| |
Efficient Searching for Matches | |
| |
| |
Combining Lists: Union and Intersection | |
| |
| |
Tables | |
| |
| |
Simultaneous Collection and Access of Data | |
| |
| |
Databases | |
| |
| |
Exercises | |
| |
| |
Project: A Bridge Database | |
| |
| |
| |
Trees And Recursion | |
| |
| |
Simple Recursion | |
| |
| |
Multiway Recursion | |
| |
| |
Accumulators | |
| |
| |
Example: Optimal Matching (Recursive) | |
| |
| |
Trees as Data Structures | |
| |
| |
Processing Trees | |
| |
| |
Example: Huffman Encoding of Information | |
| |
| |
Exercises | |
| |
| |
Project: Clustering of Data | |
| |
| |
| |
Sounds And Signals | |
| |
| |
Basics of Computer Sound | |
| |
| |
Perception and Generation of Sound | |
| |
| |
Synthesizing Complex Sounds | |
| |
| |
Transduction and Recording Sound | |
| |
| |
Aliasing and the Sampling Frequency | |
| |
| |
Exercises | |
| |
| |
Project: The Perception of Beats | |
| |
| |
Project: Speeding Up Sound | |
| |
| |
| |
Images | |
| |
| |
Black-and-White Images | |
| |
| |
Color | |
| |
| |
Digital Sampling of Images | |
| |
| |
Sampling and Storing Images in Files | |
| |
| |
Manipulating and Synthesizing Images | |
| |
| |
Example: Mona Lisa's Missing Blue | |
| |
| |
Exercises | |
| |
| |
Project: Landsat Images and False-Color | |
| |
| |
| |
Mathematical Relationships With One Unknown | |
| |
| |
Representing Mathematical Relationships | |
| |
| |
Zeroing in on Solutions | |
| |
| |
Derivatives | |
| |
| |
Going to the Extreme: Optimization | |
| |
| |
Fitting | |
| |
| |
Interpolation | |
| |
| |
Exercises | |
| |
| |
| |
Mathematical Relationships With Two Or More Unknowns | |
| |
| |
Visualizing Functions of Two Variables | |
| |
| |
Geometry of Functions: The Gradient | |
| |
| |
Optimization Using the Gradient | |
| |
| |
Finding Solutions | |
| |
| |
Solutions to Systems of Linear Equations | |
| |
| |
Best Solutions to Linear Systems | |
| |
| |
Solutions to Systems of Nonlinear Equations | |
| |
| |
Exercises | |
| |
| |
| |
From Equality To Similarity: Randomness And Variation | |
| |
| |
A Classification Problem | |
| |
| |
Describing Distributions | |
| |
| |
Processes and Distributions | |
| |
| |
Why the Gaussian is Important | |
| |
| |
Multiple Variables | |
| |
| |
Example: Handwritten Digit Recognition | |
| |
| |
Exercises | |
| |
| |
Project: Sums of Gaussians and Segmentation of Images | |
| |
| |
Appendices | |
| |
| |
Color Plates | |
| |
| |
ASCII Characters | |
| |
| |
Computations on Vectors and Matrices | |