An introduction to programming with Mathematica - Wellin, Paul R.; Gaylord, Richard J.; Kamin, Samuel N. (Cambridge University Press, 2005)
First 2 eds. under Richard J. Gaylord