This textbook takes an innovative approach to the teaching of classical mechanics, emphasizing the development of general but practical intellectual tools to support the analysis of nonlinear Hamiltonian systems. The development is organized around a progressively more sophisticated analysis of particular natural systems and weaves examples throughout the presentation. Explorations of phenomena such as transitions to chaos, nonlinear resonances, and resonance overlap to help the student to develop appropriate analytic tools for understanding. Computational algorithms communicate methods used in the analysis of dynamical phenomena. Expressing the methods of mechanics in a computer language forces them to be unambiguous and computationally effective. Once formalized as a procedure, a mathematical idea also becomes a tool that can be used directly to compute results.The student actively explores the motion of systems through computer simulation and experiment. This active exploration is extended to the mathematics. The requirement that the computer be able to interpret any expression provides strict and immediate feedback as to whether an expression is correctly formulated. The interaction with the computer uncovers and corrects many deficiencies in understanding.