There are many practical problems where one has to make decisions sequentially based on data (observations) available at the time of the decision. Trying to make such decisions under uncertainty in some optimal way, looking forward in time, leads to the area of multistage stochastic optimization. In this thesis, we develop methodologies, algorithms, and a software package for large-scale multistage stochastic programming problems with applications in energy, airline and finance.