In the last decade or so, many fundamental problems in computer science have immensely benefited from viewing the underlying discrete problems through the lens of analytic methods. These methods are in the process of revolutionizing CS and many are crucial components in a computer scientist’s toolbox. In this course we will introduce a selection of such techniques and explore their applications, with a focus on recent developments. Techniques introduced would include those from numerical linear algebra, spectral methods, convex optimization. Applications would be to problems in CS, Optimization and Machine Learning.