Mastering Mathematica: Programming Methods and Applications