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 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, self-organization, genetic algorithms, and neural networks. Examples are demonstrated in JavaScript using p5.js. Much of the class time will be dedicated to in-class exercises and self-study as much of the course is available online through a video series and textbook.
- Daniel Shiffman, Tuesdays, 12:10pm-2:40pm
- All class dates
- note first class is rescheduled to Friday, Jan 26, 12:10-2:40pm
- Office Hours
- Regular meeting April 17 for Final Project Proposal presentations
- Individual Final Project Meetings Friday April 20: Sign up here!
- You are required to attend all class meetings and submit all weekly assignments and a final project.
- Grading (pass/fail) will be based on a combination of factors:
- Attendance, participation in class discussion, and engagement in other students' projects (25%)
- Quality of assignments (50%)
- Final Project (25%)
- All course videos -- If you would like offline access to the videos and/or just prefer to watch them somewhere other than YouTube, let me know.
- Nature of Code Kadenze Course
- Online textbook
- p5.js code examples
- Processing (Java) code examples
- Other ports
- Further Reading
- Some assignments and materials based on Mimi Yin's Nature of Code course.