This short course provides the participants with the main tools to optimise the design of engineering structures. As designers, we are always looking for the best structure that satisfies a set of design constraints. Today, we have efficient mathematical algorithms and powerful finite element analysis software, which can be combined to allow the designer to achieve the optimum structural design, without increasing the development cycle, and reducing manufacturing costs. The goal of this course is to present the fundamental concepts of structural optimisation from an applied point of view, and to provide the participants with enough autonomy to formulate and solve a general structural optimisation problem for themselves. The course combines brief lectures, for the explanation of the basic concepts, with hands-on workshops using spreadsheets, Python programming, and the commercial software Altair Optistruct, to solve selected application examples.