Stochastic programming (SP) is an area of mathematical optimisation which deals with problems that involve uncertainty. Its foundation was laid out by a seminal work of Dantzig published in 1955 which introduced linear programming under uncertainty. In this book we consider two research problems, namely, (i) language constructs for modelling SP problems and (ii) solution methods for processing instances of different classes of SP problems. We first describe a new design of an SP modelling system which provides greater extensibility and reuse. We also investigate in detail the following important classes of SP problems: single-stage SP with risk constraints, two-stage linear and stochastic integer programming problems.