Please note! Course description is confirmed for two academic years (1.8.2018-31.7.2020), which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.


  1. Understand how several important problems arising from diverse fields can be cast and solved as nonlinear optimisation problems;
  2. Know the main techniques for solving nonlinear optimisation problems and how to apply them in practice;
  3. Know how to use optimisation software for implementing and solving nonlinear optimisation problems.

Credits: 5

Schedule: 10.09.2020 - 17.12.2020

Teacher in charge (valid 01.08.2020-31.07.2022): Fabricio Pinheiro de Oliveira

Teacher in charge (applies in this implementation): Fabricio Pinheiro de Oliveira

Contact information for the course (valid 11.08.2020-21.12.2112):

This edition of the course will be provided exclusively online. The lectures and exercise sessions will be recorded pre-recorded. Zoom sessions will be held during the original lecture hours for discussion and questions.

For questions regarding the organisation, contact 

Lecturer: Prof. Fabricio Oliveira (

TA: Nikita Belyak (

CEFR level (applies in this implementation):

Language of instruction and studies (valid 01.08.2020-31.07.2022):

Teaching language: English

Languages of study attainment: English


  • Valid 01.08.2020-31.07.2022:

    In this course, the student will learn the basic optimisation theory behind the main numerical algorithms available and how they can be applied to solve optimisation problems. At the end of the course, it is expected that the student will be capable of analysing the main characteristics of an optimisation problem and decide what is the most suitable method to be employed for its solution.

  • Applies in this implementation:

    1. Admin. and introduction
    2. Topology - Convex sets
    3. Analysis - Convex functions
    4. Optimality conditions I
    5. Unconstrained optimisation methods I
    6. Unconstrained optimisation methods II
    7. Optimality conditions II
    8. Lagrangian duality
    9. Constrained optimisation methods I
    10. Constrained optimisation methods II
    11. Constrained optimisation methods III
    12. Closing session

Assessment Methods and Criteria
  • Valid 01.08.2020-31.07.2022:

    Homework and project assignments.

  • Applies in this implementation:

    Homework assignments

    A total of 5 homework assignments will be handed out. Each homework is worth 20 points, adding to a total of 100 points. The homework for each week will be available on Wednesdays from Mycourses website and will have as deadline the Sunday evening of the following fortnight (two weeks). The submission of the solutions must be made through the course Mycourses website. Homework submissions will not be accepted after the deadlines. 

    Students that have an attendance to classes and exercise sessions greater or equal than 80\% (20/24 sessions) will automatically earn 20 points in this component. Otherwise, points will be given proportionally to attendance.

    The homework will be composed by theoretical and computational exercises. The computational skills required to solve the exercises will be introduced during the exercise sessions, but it is expected that the student learn and practise the language on its own. Supporting material for that will be provided. The programming language that will be used in this course is Julia ( 

    Project assignments

    The students will be requested to develop guided projects on two distinct topics to be provided. The objective of the projects is to use the acquired knowledge in nonlinear optimisation in practice and discuss related technical aspects. 

    The projects can be conducted individually or in pairs. Each project will comprise an implementation using Julia that address the requirements of the projects and a 5-to-7-page report. Each report will be graded by the course lecture.

  • Valid 01.08.2020-31.07.2022:

    Contact hours: 48h (12 x 2h lectures and 12 x 2h exercises). Attendance is not compulsory.

    Self study: 93h (5 home exercises - 5h each plus 2 project assignments - 10h each; remainder for revising content of lectures and exercise sessions)


Study Material
  • Valid 01.08.2020-31.07.2022:

    Lecture notes and course slides available at course's MyCourses homepage 

    Additional supplementary bibliography indicated in the lecture notes.


  • Applies in this implementation:

    Main study material: lecture notes, exercises, homework assignments, course book.

    Main course book: M. Bazaraa et al., Nonlinear Programming, Wiley-Interscience, 2006. 

Substitutes for Courses
  • Valid 01.08.2020-31.07.2022:

    Mat-2.3139 Nonlinear Programming P, MS-E2139 Nonlinear Programming

  • Valid 01.08.2020-31.07.2022:

    MS-A00XX Matrix Algebra, MS-A01XX Differential and integral calculus 1, and MS-A02XX Differential and integral calculus 2.



Registration and further information