The course develops the necessary theory, algorithms and tools to formulate and solve convex optimization problems that seek to minimize cost function subject to constraints. The emphasis of the course is on applications in engineering applications such as control systems, computer vision, machine learning, pattern recognition, financial engineering, communication and networks.