An Introduction to Programming with Mathematica(R) is designed to introduce the Mathematica programming language to a wide audience. Since the last edition of this book was published, significant changes have occurred in Mathematica and its use worldwide. Keeping pace with these changes, this substantially larger, updated version includes new and revised chapters on numerics, procedural, rule-based, and front-end programming, and gives significant coverage to the latest features up to, and including, Mathematica 5.1 Mathematica notebooks, available from www.cambridge.org/0521846781, contain examples, programs, and solutions to exercises in the book. Additionally, material to supplement later versions of the software will be made available. This is the ideal text for all scientific students, researchers, and programmers wishing to deepen their understanding of Mathematica, or even those keen to program using an interactive language that contains programming paradigms from all major programming languages: procedural, functional, recursive, rule-based, and object-oriented.