Essentials of Programming in Mathematica