└── README.md /README.md: -------------------------------------------------------------------------------- 1 | The Nature of Code (Spring 2014) 2 | ================================ 3 | 4 | Key info 5 | -------- 6 | * Daniel Shiffman 7 | * Mondays, 11:00am - 1:55pm, ITP Room 50 8 | * [Office Hours Signup](https://itp.nyu.edu/inwiki/Signup/Shiffman) 9 | 10 | Key Links 11 | --------- 12 | * [All coures videos](http://video.natureofcode.com/) 13 | * [Online textbook](http://natureofcode.com/book/) 14 | * [All code examples in Processing](https://github.com/shiffman/The-Nature-of-Code-Examples) 15 | * [Code examples ported to p5.js](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js) 16 | * [Other ports](https://github.com/shiffman/The-Nature-of-Code-Examples/blob/master/README.md) 17 | * [Further Reading](http://natureofcode.com/book/further-reading/) 18 | 19 | Related Reading and Watching 20 | ---------------------------- 21 | * [Coding Math Video Series](http://www.youtube.com/user/codingmath) 22 | * [Generative Design with Processing](http://www.amazon.com/gp/product/1616890770/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1616890770&linkCode=as2&tag=natureofcode-20) 23 | * [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1435457331/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1435457331&linkCode=as2&tag=learniproces-20) 24 | * [Computational Beauty of Nature](http://www.amazon.com/gp/product/0262561271/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0262561271&linkCode=as2&tag=natureofcode-20) 25 | * [Form and Code](http://formandcode.com/) 26 | 27 | Mailing List 28 | ------------ 29 | - [Sign up here](https://groups.google.com/a/itp.nyu.edu/forum/#!forum/natureofcode) 30 | 31 | Week 1 - Introduction - 1/27/14 32 | ------------------------------- 33 | 34 | * Class Intro / Overview 35 | * [Related and Past Projects](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Nature-of-Code-Related-and-Past-Projects) 36 | * [Processing](http://www.processing.org) review 37 | * [p5.js Discussion](https://github.com/lmccart/p5.js) 38 | * [Eloquent JavaScript A Modern Introduction to Programming by Marijn Haverbeke](http://eloquentjavascript.net/) 39 | * [Object-Oriented JavaScript](http://www.objectplayground.com/) 40 | * Github 41 | * [Introduction to Git & the Command Line by Steve Klise](http://skli.se/2012/09/22/introduction-to-git/) 42 | * [Git workflow beginner by Steve Klise](http://skli.se/2012/10/07/git-workflow-beginner/) 43 | * Randomness, Probability, and Perlin Noise 44 | * [Nature of Code Introduction](http://natureofcode.com/book/introduction/) 45 | * [Videos I.1 - I.5](http://video.natureofcode.com/i.1/) 46 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/introduction) 47 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/introduction) 48 | * Object Oriented Programming Review & Vectors 49 | * [Nature of Code Chapter 1](http://natureofcode.com/book/chapter-1-vectors/) 50 | * [Videos 1.1 - 1.6](http://video.natureofcode.com/1.1/) 51 | * Note the above videos will be screened Thursday, Jan 30th in room 15 from 1-2pm. Mimi Yin is working on a video annotation project and will be using this session user testing (and also available to answer your questions about vectors!) 52 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp1_vectors) 53 | * p5.js examples coming soon 54 | * Assignment 55 | * [Sign up for class mailing list](https://groups.google.com/a/itp.nyu.edu/forum/#!forum/natureofcode) 56 | * [Complete the homework exercise outlined here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Homework-Week-1). 57 | * Supplemental Reading 58 | * [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/) Chapter 5 59 | * [Computational Beauty of Nature](http://www.amazon.com/gp/product/0262561271/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0262561271&linkCode=as2&tag=natureofcode-20), Introduction 60 | * [Probability Theory](http://www.probabilitytheory.info/) 61 | 62 | 63 | Week 2 - Forces - 2/3/14 64 | ------------------------ 65 | * [Nature of Code Chapter 2: Forces](http://natureofcode.com/book/chapter-2-forces/) 66 | * [Videos 2.1 - 2.6](http://video.natureofcode.com/2.1/) 67 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp2_forces) 68 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp02_forces) 69 | * Assignment: [Complete the homework exercise outlined here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Homework-Week-2). 70 | * Supplemental Reading 71 | * [Newtonian Physics, An Online Textbook](http://www.lightandmatter.com/area1book1.html) (This is long, you may find Chapter 4 to be particularly relevant to this week's discussion.) 72 | * [The Physics Classroom -- Newton's Laws](http://www.physicsclassroom.com/Class/newtlaws/newtltoc.html) 73 | * [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/), Chapters 12 and 14 74 | 75 | Week 3 - Oscillation - 2/10/14 76 | ------------------------------- 77 | * [Nature of Code Chapter 3: Oscillation](http://natureofcode.com/book/chapter-3-oscillation/) 78 | * [Videos 3.1 - 3.5](http://video.natureofcode.com/3.1/) 79 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp3_oscillation) 80 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp03_oscillation) 81 | * [Simple Harmonic Motion by Memo Akten](http://www.memo.tv/simple-harmonic-motion/) 82 | * Assignment: [Complete the homework exercise outlined here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Homework-Week-3). 83 | * Supplemental reading 84 | * The Mathematics of Oscillatory Motion (refer to e-mail to class list.) 85 | * [Trigonometry, What is it good for?](http://www.phy6.org/stargaze/Strig1.htm) 86 | * [Mathematics and Physics for Programmers](http://www.amazon.com/gp/product/1584503300/), Chapter 4 87 | 88 | ### No class, 2/17/14, Presidents Day 89 | 90 | Week 4 - Systems - 2/24/14 91 | ------------------------------- 92 | * [Nature of Code Chapter 4: Particle Systems](http://natureofcode.com/book/chapter-4-particle-systems/) 93 | * [Videos 4.1 - 4.9](http://video.natureofcode.com/4.1/) 94 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp4_systems) 95 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp04_systems) 96 | * Assignment: [Complete the homework exercise outlined here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Homework-Week-4). 97 | * Supplemental Reading 98 | * ["Particle animation and rendering using data parallel computation", Karl Sims](http://doi.acm.org/10.1145/97879.97923) (available via NYU network/proxy) 99 | * ["Particle Systems, a Technique for Modeling a Class of Fuzzy Objects", Reeves](http://doi.acm.org/10.1145/357318.357320) (available via NYU network/proxy) 100 | * [How my Dog learned Polymorphism](http://www.javaranch.com/campfire/StoryPoly.jsp) 101 | * [Particle System API, by David K. McAllister](http://www.siggraph.org/education/materials/HyperGraph/animation/particle.htm) 102 | * [Particle Systems by Allen Martin](http://web.cs.wpi.edu/~matt/courses/cs563/talks/psys.html) 103 | 104 | Week 5 - Physics Libraries - 3/3/14 105 | ----------------------------------- 106 | * [Nature of Code Chapter 5: Physics Libraries](http://natureofcode.com/book/chapter-5-physics-libraries/) 107 | * Box2D 108 | * [Box2D web site](http://box2d.org/) 109 | * [JBox2D web site](http://www.jbox2d.org/) 110 | * [PBox2D github repo](https://github.com/shiffman/PBox2D) 111 | * [Videos 5.1 - 5.9](http://video.natureofcode.com/5.1/) 112 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp5_physicslibraries/box2d) 113 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp05_libraries/box2dweb) 114 | * Toxiclibs 115 | * [Videos 5.13 - 5.16](http://video.natureofcode.com/5.1/) 116 | * [Processing examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp5_physicslibraries/toxiclibs) 117 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp05_libraries/toxiclibs) 118 | * [ToxicLibs](http://toxiclibs.org/) 119 | * [The Making of Nokia Friends](https://vimeo.com/1472427) 120 | * [Advanced Character Physics](http://www.gamasutra.com/resource_guide/20030121/jacobson_pfv.htm) 121 | * Bullet 122 | * [bRigid Processing Library](http://www.lab-eds.org/bRigid) 123 | * [simple 3d box demo](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp5_physicslibraries/bRigid_jBullet) 124 | * Other libraries? 125 | * Assignment: [Complete the homework exercise outlined here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Homework-Week-5). 126 | 127 | 128 | Week 6 - Autonomous Agents - 3/10/14 129 | ----------------------------------- 130 | * [Nature of Code Chapter 6](http://natureofcode.com/book/chapter-6-autonomous-agents/) 131 | * [Processing Examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp6_agents) 132 | * [Videos 6.1 - 6.8](http://video.natureofcode.com/6.1/) 133 | * p5.js examples coming soon 134 | * Related 135 | * [Reas Process Compendium](https://vimeo.com/22955812) 136 | * [Braitenberg Vehicles](http://books.google.com/books/?id=7KkUAT_q_sQC) 137 | * [Craig Reynolds' Steering Behaviors for Autonomous Characters](http://www.red3d.com/cwr/steer/) 138 | * Your midterm project is due next class. Guidelines: https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Midterm 139 | 140 | ### No class, 3/17/14, Spring Break 141 | 142 | Week 7 - Mid-Semester Project Presentations - 3/24/14 143 | ----------------------------------------------------- 144 | * [Documentation Links and Presentation Order](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Midterm) 145 | 146 | Week 8 - Cellular Automata / Fractals - 3/31/14 147 | ----------------------------------------------- 148 | * Cellular Automata 149 | * [Nature of Code Chapter 7](http://natureofcode.com/book/chapter-7-cellular-automata/) 150 | * [Processing Examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp7_CA) 151 | * [Videos 7.1 - 7.4](http://video.natureofcode.com/7.1/) 152 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp07_CA) 153 | * [A New Kind of Science](http://www.wolframscience.com/nksonline/toc.html) 154 | * [Elementary Cellular Automaton](http://mathworld.wolfram.com/ElementaryCellularAutomaton.html) 155 | * [Original Game of Life Scientific American Article](http://ddi.cs.uni-potsdam.de/HyFISCH/Produzieren/lis_projekt/proj_gamelife/ConwayScientificAmerican.htm) 156 | * [2D Water Ripples CA](http://freespace.virgin.net/hugo.elias/graphics/x_water.htm) 157 | * Fractals 158 | * [Nature of Code Chapter 8](http://natureofcode.com/book/chapter-8-fractals/) 159 | * [Processing Examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp8_fractals) 160 | * [Videos 8.1 - 8.5](http://video.natureofcode.com/8.1/) 161 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp08_fractals) 162 | * [PBS Nova - Fractals - Hunting the Hidden Dimension](http://www.pbs.org/wgbh/nova/physics/hunting-hidden-dimension.html) 163 | * [Fractal Geometry of Nature](http://en.wikipedia.org/wiki/The_Fractal_Geometry_of_Nature) 164 | * [How Long is the Coastline of Britain by Benoit Mandelbrot](http://en.wikipedia.org/wiki/How_Long_Is_the_Coast_of_Britain%3F_Statistical_Self-Similarity_and_Fractional_Dimension) 165 | * [Toby Schachman's Recursive Drawing](http://recursivedrawing.com/) 166 | * [Algorithmic Beauty of Plants](http://algorithmicbotany.org/papers/#abop) 167 | * [L-Systems in Computational Beauty of Nature](http://books.google.com/books?id=0aUhuv7fjxMC&pg=PA78) 168 | * Assignment: Final Project Proposal. 169 | * Prepare a final project proposal. [Guidelines and schedule are here](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Final-Proposals). 170 | 171 | Week 9 - Genetic Algorithms / Final Project Proposals - 4/7/14 172 | -------------------------------------------------------------- 173 | * [Nature of Code Chapter 9](http://natureofcode.com/book/chapter-9-the-evolution-of-code/) 174 | * [Processing Examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp9_ga) 175 | * [GA Presentation @ Kickstarter](http://video.natureofcode.com/9.1/) 176 | * [p5.js examples](https://github.com/shiffman/The-Nature-of-Code-Examples-p5.js/tree/master/chp09_ga) 177 | * References 178 | * [Ann Chen & Danne Woo - Galapagos Evolutionary Type Design NOC 2012](http://www.typegalapagos.com/) 179 | * [Flexible Muscle-Based Locomotion for Bipedal Creatures](https://vimeo.com/79098420) 180 | * [BoxCar2D](http://boxcar2d.com/) 181 | * [Evolved Virtual Creatures](http://www.karlsims.com/evolved-virtual-creatures.html) 182 | * [Digital Babylon NOC 2005](http://joan.cat/en/dbn/) 183 | * [Final Project Proposal Schedule](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Final-Proposals) 184 | 185 | # Week 10 - 4/14/14: CANCELLED 186 | * **Note Monday, April 14th is CANCELLED, Make-Up Time is Thursday, April 10th, 12:30 - 3:00 pm in Room 15, See below** 187 | 188 | # Week 10 - 4/10/14: MAKEUP, 12:30 - 3:00 PM, Neural Networks / Final Project Proposals 189 | * [Nature of Code Chapter 10](http://natureofcode.com/book/chapter-10-neural-networks/) 190 | * [Processing Examples](https://github.com/shiffman/The-Nature-of-Code-Examples/tree/master/chp10_nn) 191 | * p5.js examples coming soon 192 | * [Final Project Proposal Schedule](https://github.com/shiffman/The-Nature-of-Code-S14/wiki/Final-Proposals) 193 | 194 | Week 11 - User Testing Week - 4/21/14 195 | ------------------------------------- 196 | * This week you will "user test" your project with fellow classmates. You must have some implementation that you can test completed by this time. User testing can mean different things for different projects. For a game, it can mean that the user tries to play it. For an art piece, it could mean showing it to a classmate and asking for them to say what they think it is about or how it made them feel. We'll show projects in a "one on one" / round robin / speed dating-style session. 5 minutes then switch. You cannot not explain your project, just show and let the user try it and give you feedback. Then you can answer questions. User testing schedule will be provided on a wiki. 197 | 198 | Week 12 - Final Project Presentations - 4/28/14 199 | ----------------------------------------------- 200 | * Presentation Schedule and Guidelines TBA 201 | --------------------------------------------------------------------------------