
Explore maths for design optimization and how multidisciplinary design optimization enhances complex engineering designs through convex and gradient-based methods, gradient-free algorithms, and practical coding exercises.
Explore the grounded definition of optimization: selecting the best feasible solution under a metric and constraints to maximize a chosen objective, illustrated by Dido's problem and engineering design.
Explore the three design phases: conceptual, preliminary, and detailed design, and learn to formulate optimization problems with design variables, objectives, and constraints through iterative exploration.
Learn how to use Python in Deepnote notebooks to explore design optimization. Explore package structure, dependencies with requirements.txt, and running code blocks in a cloud-based virtual machine.
Learn how to formulate optimization problems for design optimization: define the objective function, design and state variables, governing equations, and inequality and equality constraints in a matrix form.
Visualize a two-variable minimization problem using 3d surface and 2d contour plots, showing how the unconstrained minimum becomes the constrained optimum along the equality line within the inequality region.
Form a feasible optimization problem by identifying active inequality constraints and replacing them with equalities. Use contour plots of f(x)=x1+2x2 to reveal the feasible region.
Classify optimization problems by design variables (continuous, discrete, mixed), objectives (single or multi-objective), and constraints, then assess function features: smoothness, linearity, modality, convexity, and stochasticity to guide algorithm choice.
Classify optimization algorithms by order, search direction, principle, function evaluation, and stochasticity, highlighting gradient-free and gradient-based methods, local versus global search, and the use of surrogate models.
Visualize optimization problems by plotting the objective as a 3d surface and the optimum on a 2d contour, then plot equality and inequality constraints.
Explore convex optimization, with a unique optimum and easy solution. Learn linear and quadratic programs, their linear objectives and constraints, matrix forms, and applications in operations research and production scheduling.
Minimize an objective function f(x) subject to g(x) ≤ 0 and h(x) = 0, identifying feasible points and the closest feasible solution to the unconstrained minimum.
Learn the Basics of Multidisciplinary Design Optimisation for Engineering Design
If you’ve heard about design optimisation or Multidisciplinary Design Optimisation (MDO) and wondered how it actually works in practice, this course is the ideal place to start.
In this beginner-friendly, hands-on course, you’ll build a solid foundation in the mathematics of design optimisation — the methodology that powers modern complex systems engineering. You’ll learn what optimisation really means, how optimisation problems are structured, and how engineers translate real design questions into mathematical formulations.
Starting from first principles, we’ll walk through the optimisation process, from defining objectives and constraints to visualising feasible regions and solution spaces. You’ll learn how to formulate optimisation problems clearly and correctly, explore how optimisation problems and algorithms are classified, and develop intuition for why some problems are easy to solve while others are not.
A key focus of this course is visual understanding. Rather than treating optimisation as a black box, you’ll build intuition by visualising and interacting with optimisation problems step by step. You’ll also get hands-on experience solving simple but important classes of problems, including linear and quadratic programming, to see how theory connects to real engineering applications.
Throughout the course, you’ll work through practical coding exercises based on real-world engineering problems such as optimisation for manufacturing production using Python, with quizzes to reinforce your understanding and help you check your progress.
By the end of this course, you’ll:
Understand what optimisation is and how it fits into engineering design
Be able to formulate optimisation problems with objectives and constraints
Develop intuition through visualising optimisation problems and feasible regions
Recognise different classes of optimisation problems and algorithms
Gain hands-on experience with linear and quadratic programming using Plotly and Scipy
Feel confident moving on to more advanced optimisation methods in later courses
This course is designed for engineers, students, and technical professionals who want to understand optimisation from the ground up — whether you’re preparing to use MDO, numerical optimisation tools, or advanced algorithms later on.
No prior optimisation experience is required. A basic familiarity with maths and programming is helpful, but everything you need is introduced step by step.
If you’re ready to build strong optimisation instincts and lay the groundwork for advanced design optimisation methods, this is where your journey begins.