Can we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world world help us to create digital worlds? This class, a companion to the book The Nature of Code, is a series of video lessons focused on the programming strategies and techniques behind computer simulations of natural systems.
Free Online Access
We explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples are demonstrated using the Processing (http://www.processing.org) environment with a focus on object oriented programming.
All code for the examples is available for download on GitHub. The course itself is available on shiffman / The-Nature-of-Code-Course on GitHub.