Computational Techniques for Differential Equations