This course?is for students interested in solving nonsmooth convex optimization problems. Because of the wide?(and growing) use of optimization in science, engineering, economics, and industry, it is?essential for students and practitioners alike to develop an understanding of optimization?algorithms.?This course introduces the basic concepts of convex function, subdifferential, conjugate, proximal operator and the analysis of convergence of typical optimization algorithms. The goal of this course is to give a comprehensive description of the most powerful, state-of-the-art, techniques?for solving nonsmooth optimization problems.