The course focuses on the optimal control of dynamical systems subject to constraints and uncertainty by studying analytical and computational methods leading to practical algorithms. Topics include calculus of variations, nonlinear local optimization, global stochastic search, dynamic programming, linear quadratic (gaussian) control, numerical trajectory optimization, model-predictive control. Advanced topics include approximate dynamic programming and optimal control on manifolds. The methods and algorithms will be illustrated through implementation of various simulated examples. Recommended Course Background: Linear Algebra and Differential Equations; experience with control systems; programming in MATLAB and/or Python.