Note, this is an old syllabus. The current one is here.

Course Mailing List: http://forums.nyu.edu/cgi-bin/nyu.pl?enter=itp-noc
Course Wiki (for homework posting): http://www.shiffman.net/coursewiki
Course Presentation Schedule: http://www.shiffman.net/coursewiki/index.php?title=Presentations_NOC_F06
Office Hours Sign-Up: http://www.shiffman.net/coursewiki/index.php?title=Office_Hours
Class del.icio.us: http://del.icio.us/tag/natureofcode/

Syllabus (Fall 2006)

Week 1 — Random Numbers and Probability (Sep 11)
  • Class Intro / Overview
  • Processing review
  • Probability Basics
  • Distributions of Random Numbers (Uniform, Non-Uniform, Normal)
  • Perlin Noise
  • PART I: Motion

    Week 2 — Vectors (Sep 18)
  • Review of object oriented programming
  • Motion 101 — Location, velocity, and acceleration
  • Week 3 — Forces (Sep 25)
  • Attraction/Repulsion
  • Friction/Drag
  • Week 4 — Oscillations (Oct 2)
  • Trigonometry
  • Polar vs. Cartesian Coordinates
  • Pendulum
  • Graphing waves (perlin noise waves)
  • 2D trig equation graphing (”graphing inequalities”)
  • Week 5 — Particle Systems (No class Oct 9th! Make-up 3:30 to 6:00 in 442 Friday, Oct 13th)
  • ArrayLists
  • Advanced Object Oriented Programming — Inheritance and Polymorphism
  • Week 6 — Review, Midterm Workshop (Oct 16)

    PART II: Life, the Universe, but not Everything

    Week 7 — Simple Rule-Based Systems (Oct 23)
  • Recursion and Fractals
  • 1D Cellular Automata — Wolfram
  • 2D Cellular Automata — Conway’s Game of Life
  • Week 8 — Steering Behaviors (Oct 30)
  • Autonomous Agents
  • Craig Reynolds’ Boids — Alignment, Cohesion, Separation
  • Week 9 — Genetic Algorithms Part I (Nov 6)
  • Searches
  • Week 10 — Genetic Algorithms Part II (Nov 13)
  • Interactive evolution
  • Week 11 — Neural Networks (Nov 20)
  • Final Project Proposals
  • NO CLASS ON WED, NOV 22
    Week 12 — Final Project Proposals
    Week 13 — Final Project Presentations (Dec 4)
    Week 14 — Final Project Presentations (Dec 11)

    Description:
    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 will focus on the programming strategies and techniques behind computer simulations of natural systems. We’ll explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered will include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples will be demonstrated using Processing with a focus on object oriented programming.

    Homework
    Students are required to complete a programming exercise each week (assignments to be specified on the weekly handouts linked above). Links to each assignment should be posted to the course wiki http://www.shiffman.net/coursewiki . Please come prepared each class to demo your work.

    Presentations
    Each student is required to make a “research” presentation once during the course of the semester to supplement the material presented in class the previous week. 3 or 4 people should sign up for one of the available weeks and create a presentation as a group. The format for the presentations is extremely open (feel free to think creatively here). They should be brief (15-20 minutes) and could include any of the following: information on related projects, live physics demonstrations, instructional videos, links to online sources and tutorials, book reviews, source code examples, diagrams, etc. You should include a link to documentation of your talk on the presentation schedule wiki.

    Requirements: (no incompletes)

  • 40% homeworks
  • 30% final project
  • 10% presentation
  • 20% class participation, attendance
  • Reading Materials

  • The Computational Beauty of Nature, Gary William Flake (required)
  • Mathematics and Physics for Programmers, Danny Kodicek.
  • Algorithmic Beauty of Plants, Przemyslaw Prusinkiewicz
  • Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Microworlds (Complex Adaptive Systems), Mitchel Resnick
  • Creative Code, John Maeda
  • Just about any book by Ian Stewart

  • No Responses to “The Nature of Code (Fall 2006)”  

    1. No Comments

    Leave a Reply