The course is divided into three main parts. The first one introduces the concept of model predictive control (MPC) and shows its analogies to optimal control. Second part describes mathematical fundaments required to formulate MPC problems as convex optimization problems. The final part discusses various formulations of MPC, including regulation towards non-zero references, removal of regulation offsets, and output regulation.