Differential Equation theory, technique and practice