The Nature of Code: Motion (Topics in Computation and Data)
Show Course DescriptionCan we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world help us to create digital worlds? This course covers the first six chapters of Daniel Shiffman’s The Nature of Code, introducing how motion and behavior emerge from simple physical rules. Students will explore randomness, noise, vectors, forces, oscillations, autonomous agents, and particle systems. Through hands-on coding projects in JavaScript and p5.js, students learn to translate natural forces into digital motion, bridging physics, art, and computation to create lifelike kinetic systems. The course concludes with a look ahead to the book’s later chapters, which move beyond motion into emergent complexity and offer a glimpse of how similar principles give rise to intelligence and self-organization.
Prerequisites: Creative Computing