The field of computational fluid dynamics (CFD) has already had a significant impact on the science and engineering of fluid dynamics, ranging from a role in aircraft design to enhancing our understanding of turbulent flows. It is thus not surprising that there exist several excellent books on the subject. We do not attempt to duplicate material which is thoroughly covered in these books. In particular, our book does not describe the most recent developments in algorithms, nor does it give any instruction with respect to programming. Neither turbulence modelling nor grid generation are covered. This book is intended for a reader who seeks a deep understanding of the fundamental principles which provide the foundation for the algorithms used in CFD. As a result of this focus, the book is suitable for a first course in CFD, presumably at the graduate level. The underlying philosophy is that the theory of linear algebra and the attendant eigenanalysis of linear systems provide a mathematical framework to describe and unify most numerical methods in common use for solving the partial differential equations governing the physics of fluid flow. This approach originated with the first author during his long and distinguished career as Chief of the CFD Branch at the NASA Ames Research Center.