In this course, we start by introducing the basic concepts of optimization and their application scenarios, such as machine learning. Then, we delve into the mathematical theories related to convex optimization and common optimization algorithms. Finally, we learn how to understand and solve machine learning problems from the perspective of optimization. In addition to these three points, this course also covers how to use common optimization tool-kits to solve optimization and machine learning problems. The focus of this course is on basic theories and classical algorithms of optimization and machine learning.