This course provides a comprehensive coverage of the theoretical foundation and numerical algorithms for convex optimization with engineering applications. Topics include: convex sets and convex functions; convex optimization problems; least-square problems; optimal control problems; Lagrangian duality theory. Karush-Kuhn-Tucker (KKT) theorem; Slater’s condition; generalized inequalities; minimiax optimization and saddle point; introduction to linear programming, quadratic programming, semidefinite programming and geometric programming; numerical algorithms: descent methods, Newton’s method, interior-point method; convex relaxation; applications to communications and signal processing.