NOC-S18
NOC-S18 copied to clipboard
Course repo and syllabus for Nature of Code Spring 2018 at ITP.
The Nature of Code, Spring 2018
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.
Info
- 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
Mailing List
Schedule
Week 1 - Introduction: Make-Up Date: Friday, Jan 26, 12:10 - 2:40pm
- Notes and Examples
- Homework
Week 2 - Build a Physics Engine, Jan 30
- Notes and Examples
- Homework
Week 3 - Oscillating Motion, Feb 6
- Notes and Examples
- Homework
Week 4 - Particle Systems, Feb 13
- Notes and Examples
- Homework
Week 5 - Autonomous Agents, Feb 20
- Notes and Examples
- Simulation Project
Week 6 - Physics Libraries, Feb 27
- Notes and Examples
- Simulation Project
Week 7 - Simulation Project Presentations, March 6
No class Tuesday, March 20
Week 8 - Genetic Algorithms, March 27
- Notes and Examples
- Homework
Week 9 - Neural Networks, April 3
- Notes and Examples
- Homework
Week 10 - Neuro-evolution, April 10
- Notes and Examples
- Final Project Proposals
Week 11/12 - Final Project Proposals
- Regular meeting April 17 for Final Project Proposal presentations
- Individual Final Project Meetings Friday April 20: Sign up here!
Week 13 - User Testing Workshop, April 24
Week 14 - Final Project Presentations, May 1
Requirements
- 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%)
Resources
- 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.