В рамках курса рассмотрим задачи оптимизации (по преимуществу выпуклые, но не только) и некоторые приложения, в которых они возникают. В первой части будут даны наиболее важные и применимые на практике сведения из выпуклого анализа и теории двойственности. Во второй части мы рассмотрим наиболее важные и эффективные численные методы оптимизации и будем существенно опираться на результаты из первой части при обосновании их корректности. Особое внимание будет уделено использованию структуры задачи оптимизации для выбора наиболее быстрого метода её решения. Помимо теории и численных методов будут также рассмотрены основные принципы построения современных пакетов для решения задач оптимизации. Рассмотренные темы будут проиллюстрированы приложениями. В домашних заданиях будут предложены задачи как на отработку стандартных навыков, так и творческие задачи, в которых необходимо адаптировать изложенные подходы к новым постановкам задач.