Welcome to the 2017 edition of MATH36061 – Convex Optimization! This course consists of an introduction to the exciting field of convex optimization, with a focus on the theory, modelling, and algorithmic aspects. The development of Convex Optimization has been driven by countless applications. In this course we will focus on a few of these, in particular from signal processing and machine learning.

The course will attempt to balance rigorous mathematics with hands-on computational work. To accomplish the latter, the lecture will make use of Jupyter notebooks and the Python programming language – if you haven’t seen these, don’t worry, as everything you need will be introduced as we go along!

To get started, I recommend that you have a close look at the General Information section of this page. It contains all the relevant (and not so relevant) information about this course. Next, you might want to browse through the Preliminaries document on the Lectures page. Don’t worry if you are not familiar with all of it, the more advanced concepts will be introduced as needed. On the same page you will also find brief introduction to Python and Jupyter.

Hope to see you all for the first lecture!