university of california, santa cruz / department of film & digital media

foundations of digital media

f i l m  &  d i g i t a l   m e d i a   1 7 0 a

assignment five: 

For this assignment you will work alone.  However, you can consult others in the class if you (a) produce your own work rather than copy others; and, (b) acknowledge the others you have consulted; your acknowledgements should look something like this: "Acknowledgements: I would like to thank Benoit Mandelbrot for his explanations of self-similar structures." To understand the main issue of this assignment -- recursion -- you will need to read the Hofstadter article on recursion, reread the Hillis chapter on programming, and spend some time with the code of the implementation of Logo that you can find here: logo_commands.dbn. If you want to review what we went over in class, you might also want to have a look at the iterative and mutually-recursive definitions of the Fibnacci series: fibonacci.dbn

There are three parts to this assignment:

First, after you have finished the readings, implement the two commands that Hillis lists and explains on pages 47 and 48. Hint: you will need to predefine one of the two commands as was explained in class; i.e., before you define the real tree command, for example, you will need to define an empty placehold that is simply something like this: COMMAND TREE SIZE { }.

Second, write another command, treeFlower, that uses your tree command to make images that look like this:

Third, find three visual or mathematical examples of structures, processes, or things that can be defined in a self-similar or recursive manner. Don't use Hofstadter's examples. Hint: Good search terms include "Mandelbrot, fractal geometry, Ralph Abrahams, non-linear dynamics, Ron Eglash."