This course provides a broad introduction to the field of nonlinear dynamics, focusing both on the mathematics and the computational tools that are so important in the study of chaotic systems. The course is aimed at students who have had at least one semester of college-level calculus and physics, and who can program in at least one high-level language (C, Java, Matlab, R, ...).