Computational Techniques for Fluid Dynamics 1: Fundamental And General Techniques