Fluid simulation is becoming increasingly common in the film industry and in computer games, however, understanding and implementing a numerical solution to the Navier-Stokes equation can be a daunting task. In this thesis we present an introduction to fluid simulation in computer graphics with a full derivation of the compressible and incompressible Navier-Stokes equation from Newton's Second Law, explaining concepts such as pressure and viscosity as they are derived. We also present a survey and comparison of four different methods for solving the advection equation: a simple 1st order differencing method, a 4th order QUICK scheme, the popular semi-lagrangian method, and the PIC & FLIP particle based methods. We present these advection scheme comparisons in a series simplified 1D channel plots, and a set of 2D fluid animations. Based on these results, we classify algorithms as stable or unstable, and discuss methods to prevent divergence in unstable solvers.