This is a textbooklet on solving Initial Value Problems (IVPs) with numerical methods. The target audience is advanced undergrads and masters students. It is meant as a set of course notes for MATH 7205, Numerical Analysis 2 taught at Northeastern every fall. The booklet covers basic Euler solvers, Runge-Kutta, and linear multistep methods. It discusses explicit vs. implicit methods. It discusses stability and the stability domains of some of the methods. It talks about adaptive methods and the concept of stiffness. Finally, it ends up with a chapter on symplectic methods and why they are important. Beyond the solver algorithms, the book includes many example ODEs and shows their solutions using the methods discussed. Accompanying the book are Matlab programs which implement the methods described in the text. Many figures in the text were produced using the Matlab programs.