A course in creative computing that uses p5.js to capture natural phenomena in the physical world started on May 3rd on Kadenze. Taught by Dan Shiffman, Processing Foundation's co-founder, with guest lectures from Lauren McCarthy, artist, programmer and creator of p5.js.
The cryptic name of this course, The Nature of Code is explained is this course description:
Can 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 class focuses on the programming strategies and techniques behind computer simulations of natural systems. We explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered include physics simulation, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples are demonstrated using the p5.js environment with a focus on object oriented programming.
For more information see this video from the ever-exuberant Dan Shiffman.
The course opened its doors on May 3rd and has the following timetable:
Session 1: Introduction / Overview (May 3, 2016) In this session we’ll review the basics of p5.js and get everyone up and running with posting sketches online. We’ll look at how object-oriented programming works in JS and create simple sketches of objects moving around a canvas.
Session 2: Vectors / Forces (May 17, 2016) This session will look at the concept of a vector and implement sketches using a p5.Vector object. By creating objects with vectors for position, velocity, and acceleration, we’ll build a simple “hello world” physics engine.
Session 3: Steering Behaviors (May 31, 2016) This session, we’ll examine a special kind of force (pioneered by Craig Reynolds) — a steering force — that moves an object according to its own goals or desires. Examples are wandering, seeking a target, path following, obstacle avoidance, and more. We’ll then look at how group behaviors can be simulated by combining multiple steering behaviors according to local interactions between objects.
Session 4: Fractals (June 14, 2016) In this session we will cover the concept of a fractal and look at ways of generating fractal patterns with code.
Session 5: Genetic Algorithms (June 28, 2016) This session will look at the key concepts of Darwinian evolution — variation, selection, heredity — and examine how they can be applied in a computer simulation.
Kadenze’s free tier allows you to the video lectures and participate in Forum discussions. If you want to submit assignments receive grades and a certificate of accomplishment, premium membership is $10 a month.
Shiffman is also the author of a book with the same name as the course. It covers much of the same subject matter - understanding the mathematical principles behind the physical world to help us to create digital worlds and programming strategies and techniques behind computer simulations of natural systems - but the book's examples are in Processing.
Two 4-week online courses from the Raspberry Pi Foundation have just opened on the Future Learn Platform. Although aimed primarily at teachers, anyone can enroll and the discussion boards are already [ ... ]