Algorithmic botany
Pre-class coding survey
Part of the Algorithmic Botany course will involve hands-on programming. We know that folks come to SFPC from a variety of different backgrounds; some folks may not have programmed before, whereas others might be professional coders. We’d like to understand what your background is so that we can tailor the material to you. You are absolutely not expected to know all of the concepts listed here, so don’t worry if any of it is not familiar.
-
How much experience do you have with computer programming?
- Never programmed!
- I’ve learned a little programming
- I’ve learned a lot of programming
- I’ve programmed professionally
-
Have you used JavaScript before?
- Yes
- No
-
Have you used p5.js before? (It’s okay if you’ve never heard of it!)
- Yes
- No
-
Have you implemented an L-System before? (Also okay if you’ve never heard of it!)
- Yes
- No
-
Have you implemented a cellular automaton before? (“What’s that??” you say? Don’t worry, we’ll cover it!)
- Yes
- No
-
Are you comfortable with any of the following coding concepts? Please check all that apply. (We are not necessarily expecting you to be familiar with all of these!)
- functions
- variables
- for loops
- if statements
- strings
- recursion
- random numbers
- graphics transformations
L-Systems
Prerequisites
- JavaScript
- functions with parameters
- variables
- for loop
- if statements
- strings
- recursion
- Math.random
- p5 graphics
Lecture
- Motivation
- Fibonacci sequence
- Anabaena catenula
- Rewriting systems
- Turtle graphics
- Koch snowflake & other fractals
- Plant-like L-Systems
Cellular automata
Prerequisites
- JavaScript
- arrays
- 2D arrays
- doubly-nested for loops
- p5 graphics
Lecture
- 1D cellular automata
- 2D cellular automata
- Game of life
- Exciteable media
- Philosophy of CA
- Simple rules creating emergent behavior
- Small units working together