In recent years, convex optimization has become a computational tool of central importance in mathematics and economics, thanks to its ability to solve very large, practical mathematical problems reliably and efficiently. The goal of this project is to give an overview of the basic concepts of convex sets, functions and convex optimization problems, so that the reader can more readily recognize and formulate basic problems using modern convex optimization. This helps in solving real world problems.