The Analytical Engine

In 1837, Charles Babbage invented The Analytical Engine, a mechanical card-programmed digital computer which anticipated almost every aspect of the electronic computers which would not appear for more than a century afterward. These pages are a virtual museum where you can explore the Engine both through historical documents and an emulator which allows you to experience for yourself what it would have been like to program a steam-powered computer. New: 2017 update adds a JavaScript/HTML5 Web-based emulator and several new sample programs.


Cellular Automata Laboratory invites you to explore the world of cellular automata with the aid of high-speed programmable simulators for both MS-DOS and Windows. Cellular automata rules are defined by short programs written in Java, C, Pascal, or BASIC; rule definitions in Java can be compiled even if you don't have a Java compiler by using a Web-based compilation server. The accompanying on-line laboratory manual, equivalent to more than 250 printed pages, explains the theory of cellular automata, how to use the simulator programs, documents the many ready-to-run rules included, describes how to create your own original experiments, and contains a comprehensive bibliography.

What's Your Erdös Number?


Neural Network on a Commodore 64

A neural network simulator memory demonstration for the Commodore 64--really! Includes complete source code in BASIC.

Introduction to Probability and Statistics

An informal introduction to analysis of experiments to determine whether results are significant or consistent with chance. Independent binary processes such as coin flipping and the output of hardware random bit sequence generators are the focus of the discussion.

The Probability Pipe Organ

The Probability Pipe Organ lets you run interactive experiments which demonstrate how the results from random data approach the normal distribution expectation as the number of experiments grows large. Update: HTML5 animation eliminates the need for Java applet support. (The Java version remains available.)

Random Sequence Tester

A program for the analysis (not generation) of random and pseudorandom sequences. A variety of tests, including many from Knuth, are applied to the contents of a file and the results reported on standard output. In portable C; public domain. October 1998 update adds frequency histogram display, optional analysis of input as a bitstream, CSV output for postprocessing by other programs, and improved HTML documentation.

Slide Rule

Before computers and calculators, there were slide rules. It is difficult for people today to appreciate just how magic it was to be able to carry a small tool, made of bamboo and plastic, that could perform many of the computations of engineering and science which used to be so tedious in mere seconds, as long as you were happy with its limited precision. This document explores this vintage computing tool, using it to solve a variety of problems ranging from loading a turnip truck to interstellar flight.

Sum of Uniformly Distributed Random Numbers

A simple mathematical game reminiscent of blackjack invites you to flex both your intuitive and formal analytical skills, while demonstrating how superficially unrelated topics in mathematics may be deeply connected when examined in more detail.

Three Years of Computer Time

What can you learn, in three years of computer time, about an obscure problem in recreational mathematics? Not very much, at least in this case. But hey, negative results are still results, right? And still the Quest beckons to your idle loop. In 1995, Tim Irvin continued the Quest to two million digits. His story illustrates both how fast computers have gotten in the the last five years, and how much of that power is often devoted to the idle loop.