This is the first post in a series on Mathematica. The series is meant to complement and supplement a five-day course in basic Mathematica that I shall be giving at Cambridge in June 2016. I will post after each lesson if I feel that there is something that needs to be clarified, or if some example code will be useful, but these might not be complete course notes.

## About this course

I plan to begin with a basic introduction, where I will give an overview of some of the mathematical features that Mathematica offers. In particular, we will cover random number generation, Fourier transforms and `NDSolve`. We will also use `Plot`, `ListPlot` and related functions.

We will introduce `Import`, which is used for importing data and including code from source files.

I will also introduce the basic concepts of functional programming. Mathematica is a functional programming language; while it provides control structures such as `If`, `For` and `While`, there are often much neater ways of doing things using the likes of `Map` (or `/@`), `Select` and `Nest`. In fact, `If`, `For` and `While` are themselves treated as functions. We will learn about anonymous functions and the `/.` and `//` operators.

My aim will be to focus on concepts and style, not fluency: Mathematica functions tend to have a complicated and difficult-to-remember syntax, but the inbuilt help is very useful for looking up the details.