Intended as a textbook for courses in computational fluid dynamics at the senior undergraduate or graduate level, this book is a follow-up to the book Fundamentals of Computational Fluid Dynamics by the same authors, which was published in the series Scientific Computation in 2001. Whereas the earlier book concentrated on the analysis of numerical methods applied to model equations, this new book concentrates on algorithms for the numerical solution of the Euler and Navier-Stokes equations. It focuses on some classical algorithms as well as the underlying ideas based on the latest methods. A key feature of the book is the inclusion of programming exercises at the end of each chapter based on the numerical solution of the quasi-one-dimensional Euler equations and the shock-tube problem. These exercises can be included in the context of a typical course and sample solutions are provided in each chapter, so readers can confirm that they have coded the algorithms correctly.