About the Author

Daniel Shiffman works as an Assistant Arts Professor at the Interactive Telecommunications Program at NYU’s Tisch School of the Arts. Originally from Baltimore, Daniel received a BA in Mathematics and Philosophy from Yale University and a Master’s Degree from the Interactive Telecommunications Program. He is the author of Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction and a founder of Page Seventy Three Productions, Inc. a non-for-profit theater company dedicated to producing and developing the works of emerging playwrights.

About the Class

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

Get the book!

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.

Sample Code on Github

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.