Optimisation problems arise in a variety of disciplines, for e.g., machine learning, reinforcement learning, signal processing, networks. This course covers the core concepts of continuous optimisation and includes a thorough introduction to unconstrained and constrained optimisation problems. Popular algorithms such as gradient and Newton methods will be introduced and analysed for both convex and non-convex optimisation settings. The evaluation will be based on the exams and home-works(which will involve both theoretical and programming components).