The course will, through presentation of actual working cases and project work, enable the student to produce and/or appropriately use software tools for the support to complex decisions (mainly at the corporate/industrial level), in particular those based on mathematical optimization techniques. The course is focussed on practical aspects of these tools (modeling languages and systems, solvers and interfaces, algorithmic parameters, ...) and has a strong project aspect in order to familiarize the students, in particular, with the specific computer science aspects of these activities. However, since these tools are based on complex algorithmic schemes and rigorously defined mathematical properties, it is at the same time necessary to provide the students with appropriate consciousness of these foundational aspects, in particular whenever this is necessary to better understand their use or design more efficient and effective approaches; a particularly relevant case is that of handling the issue of uncertainty in the data of the problem.