This book aims to provide a foundation to CFD which finds application in solving leading edge research problems. It includes both classical and recent methods of solving high Reynolds number incompressible flows. The first four chapters deal with the governing equations and discussions on ranges of temporal and spatial scales. This is followed by classical methods for PDEs, coordinate transformations and grid generation. A full chapter is devoted to spectral analysis tools developed by the author, and aliasing error which is least understood but important for DNS/LES. The last three chapters provide higher order methods, discussions on higher accuracy finite volume methods and their comparison to finite element methods. In the last chapter, applications of some of the methods highlighting the issues of unsteady and transitional/turbulent flows are presented.