Needham (Mass.): Green Tea Press, 2018. — 255 p.
This book is an introduction to physical modeling using a computational approach. It is organized in three parts:
The first part presents discrete models, including a bikeshare system and world population growth.
The second part introduces first-order systems, including models of infectious disease, thermal systems, and chemical kinetics.
The third part is about second-order systems, including mechanical systems like projectiles, celestial mechanics, and rotating rigid bodies.
Taking a computational approach makes it possible to work with more realistic models than what you typically see in a first-year physics class, with the option to include features like friction and drag. Python is an ideal programming language for this material. It is a good first language for people who have not programmed before, and it provides high-level data structures that are well-suited to express solutions to the problems we are interested in.