Introduction to Programming with Mathematica by Richard J. Gaylord & Paul R. Wellin