This book teaches how to use Mathematica to solve a wide variety of problems in mathematics and physics. It is based on the lecture notes of a course taught at the University of Illinois at Chicago to advanced undergrad and graduate students. Although there are several books on this topic in publication, this book does not assume a previous exposure of the reader to the mathematica software. The book is illustrated with many detailed examples that require the student to construct meticulous, step-by-step, easy to read Mathematica programs. The first part, in which the reader learns how to use a variety of Mathematica commands, contains examples, not long explanations; the second part contains attractive applications.