Mathematica Tutorial -------------------- Wolfgang Windsteiger In this course, we present the Computer Algebra System Mathematica with an emphasis on its programming language. The features of the system are investigated and we try to show how the potential of the system can be used for modelling and solving mathematical problems and for visualizing eventual results. In practice, it has often been observed that the real power of Mathematica can only be exploited if the user is able to use the system's programming language in order to adapt available algorithms to one's personal needs in a certain context. Therefore, after introducing basic system features, we will concentrate on the following aspects of Mathematica as a programming environment: - Datastructures in Mathematica - Pattern-matching - Recursive and procedural programming - Rule-based programming - Graphics - Communication with other programs: MathLink - GUI programming: Active elements, notebooks, buttons, palettes, etc. - etc. etc.