MathematicaTM programming: an advanced introduction