Part two will give an introduction to first-order algorithms, including recent developments in the area of proximal gradient methods, and alternating minimization and splitting algorithms.