School in the year 2000

Assignment I

Cellular automata

The first assignment is to construct a new cellular system. You can start from one of the existing systems we have looked at and modify it, or design and create a new one to explore an idea you have. For this assignment, I prefer that you use the starter-kit from the labs.

Look through the cellular systems page for ideas of variations to try and implement. You might spend roughly a third of your time choosing what to try and designing, a third actually implementing it, and a third exploring it for interesting parameters, initial conditions, rule variations etc. If you end up with more than one system that is interesting, you can submit them all.

If you had an idea that seemed interesting but was difficult to implement or did not lead to interesting results, submit that too (with an explanation of why you think it did not work or did not do what you expected); this is just as important a part of research.

Document your work using comments in the code. Comment all the important operations in the code. Use helpful variable names, e.g. width is more communicative than var3.

Submit via this online form.

It will ask for:

Course grade contribution: 15%


Assignment II

Agent-based system

The second assignment is to construct a new agent-based system. You can start from one of the existing systems we have looked at and modify it, or design and create a new one to explore an idea you have. As with the first assignment, I still prefer that you use the starter-kit from the labs.

Look through the agent systems page for ideas of variations to try and implement. You might spend roughly a third of your time choosing what to try and designing, a third actually implementing it, and a third exploring it for interesting parameters, initial conditions, rule variations etc. If you end up with more than one system that is interesting, you can submit them all.

If you had an idea that seemed interesting but was difficult to implement or did not lead to interesting results, submit that too (with an explanation of why you think it did not work or did not do what you expected); this is just as important a part of research.

Document your work using comments in the code. Comment all the important operations in the code. Use helpful variable names, e.g. width is more communicative than var3.

Submit via this online form.

It will ask for:

Course grade contribution: 15%


Assignment III

Evolutionary system

For this assignment, you can either create a new system or re-use your assignment I or II, or one of the CA or agent-based systems from the labs. The crucial addition you must make is to demonstrate an evolving population. You can choose a pre-defined fitness function (for problem-solving), or a more general viability condition (as in ecological models), or use interaction to select fitter candidates manually (as in aesthetic selection). More important is to identify some novel way of applying what we've learned -- maybe some idea sparked in your mind that you'd like to try -- if so, comment on how you addressed the idea, what challenges you find, etc. (rather than whether it works). Comment also on the impact of evolution on your system. Is it converging on better results? Is it consistent each time you restart the simulation, or does it vary widely? Did you try different mutation rates, mutation/recombination operations, different genome or population sizes, etc.?

For this assignment, you can either use the same starter-kit from the labs, or you can use another programming environment if you prefer (but only if you feel confident to translate the necessary code quickly enough). If you choose another environment, please make sure I can access the code and you can explain where it is -- perhaps best to talk to me to confirm details first.

Otherwise, submission details remain as before.

Submit via this online form.

Course grade contribution: 15%


Final project

Your final project should incorporate more than one class of system, building upon previous assignments, ideas we have worked through in labs, or models that you independently researched from the reading matter or online. You are also encouraged to integrate the systems we have explored with other media systems or research-creation projects you are using from outside the class. You are encouraged to move beyond the lab starter kit and integrate your project into a more general platform if this will improve your result. You may work in teams, but roles and expectations must be clearly explained.

We will develop projects over the last few weeks of class, in order to result in significant and original pieces of work suitable for public exhibition or presentation.

In the first phase, establish your groups and project concept, outline the design and produce initial sketches (at least two). I will visit each of you during the class to discuss the proposal and assist with progress. At this point you should have:

You will also be required to submit a short paper description (2 pages) as well as an edited video excerpt (around 1 minute length).

Course grade contribution: 40%


Assignment/project grading criteria

  1. Execution: How well instructions were followed and conceptual goals of the assignment were met.
  2. Aesthetic qualities: The clear and consistent articulation and composition of a creative whole, and the experiential and/or conceptual depth thereof, within the frame of the given assignment and context of the course.
  3. Technical completeness: Functionality, accuracy, efficiency, creativity, and clear structure in the development and in the results.
  4. Novel contribution: Ingenuity in response to unanticipated challenges, comprehension and creativity beyond what is demonstrated in labs, and vision in further extension.