Modern Classical Mechanics is an open, computational, project-based course in classical mechanics. Rather than starting from lectures and closed-form solutions, each unit pairs an activity notebook with formal notes so that students build equations of motion, simulate them numerically, and interpret the results themselves.
What’s in the book¶
The course runs 13 units, moving from foundations to the Lagrangian formulation:
Units 1–4 — what classical mechanics is, computing as a modeling tool, the Euler method, and building equations of motion (including fluid drag).
Units 5–6 — conservation of energy and momentum, stability, and equilibria.
Units 7–10 — phase space and critical points, oscillators, driven oscillations and resonance, and chaotic dynamics.
Units 11–13 — the calculus of variations, the principle of least action, and Lagrangian mechanics.
Each unit’s start notebook is a hands-on activity — usually simulating a system in Python with numpy, matplotlib, and scipy.integrate before working out the theory — and each notes notebook develops the formalism, worked examples, and derivations, with Taylor’s Classical Mechanics and Strogatz’s Nonlinear Dynamics and Chaos as running references. Eight homework sets apply these tools to new problems. See the Activities page for the full unit-by-unit list and Resources for the texts and software behind it.
How to Use This Site¶
Students: Work through each unit’s activity notebook before its notes, run the code yourself, and use the homework sets to practice. Everything is a Jupyter notebook, so you can also download it and run it locally.
Educators: Reuse or remix any unit’s notebooks for your own course; the source Markdown cells are the thing to edit, and
myst.ymlcontrols the table of contents.Developers: Help with the MyST build or site tooling — see How to Contribute below.
How to Contribute¶
We welcome contributions from anyone including students who want to help improve the site and its resources. The best way is to create an issue or issue a pull request on the GitHub repository.
Questions and suggestions are welcome through the project’s issue tracker or pull-request workflow.