“You must attend the AMSI Summer School since it is highly
worth it. Not only you will enhance your knowledge and skills
in the area of mathematical sciences, but also you can broaden
your networking.”

Abdul Hadi Asfarangga, The University of Adelaide

Mathematical Optimisation and Modern applications with Python


Dr Scott Lindstrom, Curtin University
Dr Hoa Bui, Curtin University


Techniques of mathematical optimization are ubiquitous in today’s world. They constitute the spine of operations research and associated tools like CPLEX. They motivate the popular backpropagation method used in training neural networks. And they are foundational in modern machine learning and data science, where their canonical problem structures model essential applications such as classification and regression. In this course, we sample the discipline with a big-picture approach.

Course Overview

  • In week 1, we introduce essentials from convex optimization theory, with emphasis on intuitively gleaning why that theory is so flexible. Particular emphasis will be given to Lagrangian duality, and its utility for reformulating constrained problems into unconstrained ones.
  • In week 2, we will sample the many powerful algorithms that this theory motivates.
  • In week 3, we apply the algorithms, and we sample the popular packages that use them, such as scikit-learn, cvxpy, and neural network libraries.
  • In week 4, we introduce decomposition methods — the most important techniques to tackle large scale mixed integer linear problems — building upon the theory of duality introduced in week 1. By the end of week 4, we provide several real world applications of optimisation and operations research, along with the popular tool CPLEX

This course is intended to be more foundational. It briefly introduces the foundational theory from mathematical optimization, and then it bridges between that theory a broad range of popular contemporary topics and tools that students are likely to work with in either academic or occupational contexts. The intended learning outcome is that students will develop a familiarity with tools they are likely to work with, and appreciate how those tools apply mathematical techniques to solving problems in canonical model forms.


At a minimum, the successful student will have taken courses in linear algebra and real analysis, and they should be familiar with the basics of programming (an introductory course or equivalent experience in C++, Julia, Python, Matlab, or similar should suffice). We will provide detailed instructions in advance of the class for students to install Anaconda Python and other add-ons prior to the course. If students run into problems, we can work to sort those problems out in week 1. We will not begin programming until week 2


  • Final assessment details to be confirmed

Attendance requirements

  • For those completing the subject for their own knowledge/interest, final attendance requirements to be confirmed


  • TBC

Not sure if you should sign up for this course?

Take this quiz and look at some of the expected foundational skills in this topic

Dr Hoa Bui, Curtin University

Dr. Hoa Bui is an applied mathematician working in variational analysis, convex analysis, non-smooth and non-convex optimisation, and operations research. Hoa’s current focus is on developing efficient algorithms for solving large-scale optimisation problems in industry.

Hoa obtained a B.Sc. in Mathematics from the University of Pedagogy, Ho Chi Minh City, Vietnam, in 2016. Soon after graduation, she moved to Australia to pursue a PhD in applied mathematics at Federation University, graduating in 2020.

Hoa is a research fellow at the ARC Centre for Transforming Maintenance through Data Science, which Curtin University hosts. The Centre is funded by Alcoa, BHP, and Roy Hill, and aims to develop the next generation of mathematical and statistical methods for transforming the way maintenance is planned, scheduled, and analysed.

Dr Scott Lindstrom, Curtin University

Scott Lindstrom earned his M.S. at Portland State University, followed by a PhD at the University of Newcastle Computer-Assisted Research Mathematics and its Applications Priority Research Centre. His supervisors included Jonathan Borwein, Brailey Sims, and Heinz Bauschke. He was a postdoctoral fellow at Hong Kong Polytechnic University for two and a half years, and is now Research Fellow at Curtin Centre for Optimisation and Decision Science. He uses variational analysis and computational tools to tackle problems in nonlinear optimisation from a geometric standpoint. He develops splitting methods, with applications including machine learning, data science, and inverse problems.