Thanks to Professor Szymon Rusinkiewicz, who last taught this course in 2006, for passing on many of his improvements. I'll be using some of his assignments and lecture notes.

The following students participated in the original development of this course, especially the assignments: in 1997, Mike Carreno, Niki Kittur, J. Sheehan Maduraperuma; and in 1998, Roger Ahn, Liadan O'Callaghan, Hide Oki.

Thanks to Perry Cook for partnering the experimental precursor to this course, "Simulation of Systems, Real and Imagined", back in 1996, Dannie Durand for help in developing the material on population genetics, and David Dobkin for contributing to the lectures on root-finding and optimization. Adam Finkelstein and Tom Funkhauser have administered header therapy for ppm and bmp files for visualization, and Perry Cook helped me with sonification.

I'm also grateful to the President's 250th Anniversary Fund, the School of Engineering and Applied Science, and the Computer Science Department for generous development support.