- Online book Numerical Computing with Matlab is an excellent introductory course in numerical methods with real world examples like Google's PageRank algorithm in the linear algebra chapter or touch-tone dialing in the fourier analysis chapter. Uses Matlab as its computing platform.
- You can use Octave, an open source alternative to Matlab to run the m-files from the Numerical Computing with Matlab book.
- Mathematics of Program Construction is a collection of papers by Roland Backhouse, a champion of program calculations and derivations of algorithms. To get an idea read an inaugural lecture and for an example of the power of the mathematical approach consider the use of regular algebras to derive graph algorithms.
April 2005 Archives
With this theorem taken from "Elementary Number Theory in Nine Chapters" by James J. Tattersall (p. 204, Theorem 6.20) we can choose m and p such that f(x) = x^m mod(p) is bijective: choose m and p so gcd(m, p - 1) = 1.
To convince yourself that f is not always bijective try m = 5 and p = 11 for an example with lots of collisions.

