This introductory course deals with mathematical modeling and numerical simulation of various flow phenomena which play an important role in everyday life and are subject to extensive research in both academia and industry. The flow models to be considered give rise to partial differential equations which express the conservation of mass, momentum and energy. Their derivation, mathematical behavior, and the choice of boundary conditions will be presented before proceeding to the numerical solution tools, the main topic of this course. An introduction to classical finite difference, finite volume, and finite element methods will be given and the properties of the resulting schemes will be analysed in detail. The limitations of standard discretization techniques will be exposed and a number of state-of-the-art numerical algorithms(stabilized and high-resolution schemes for convection-dominated flows, nonlinear iteration schemes, projection / Schur Complement methods for the incompressible Navier-Stokes equations, operator-splitting tools and iterative solution of strongly coupled PDE systems) will be introduced to give a flavor of modern CFD tools available for a numerical investigation of complex applications.