Course Description:

    This offering of MAT 200C will focus on mechanisms of pattern formation. Many complex visual patterns can be generated from surprisingly small amounts of code (less than 100 lines), or from simple sets of equations. Some examples include the ubiquitous patterns of the Mandelbrot and Julia set fractals, reaction-diffusion systems, Conway's Game of Life, and the Lorenz attractor. We will examine a wide variety of these pattern generation techniques. We will implement these techniques in class, and homework assignments will focus on experimenting with and generating novel patterns. By the end of the class, you will have developed a suite of pattern generation tools.


    Theodore Kim,
    Office Hours: By appointment
    Elings 2201

Teaching Assistant:

    David Adams,


    Tuesday and Thursday, 2-4 PM
    Elings 2810


    It will be assumed that you have a basic level of programming experience, and you must have a laptop that you can bring to class. You will be provided with a significant amount of basic substrate code so that you can focus on the task of writing pattern formation code. The substrate code will be written in C++ and designed to be run on a Mac, but it should be generic enough to run on Linux and Cygwin with minor modifications. You are free to implement using any language or platform that you want, with the understanding that we will primarily support C++ on the Mac.

Grading Scheme:

    · In-class exercises - 25% The first half of each class will be a lecture on some pattern formation algorithm. The second half of each class will be a lab session during which we will implement the actual algorithm. You will be expected to have made substantial progress on your implementation by the end of lab.

    · Experimentation - 25% In between classes, you will be asked to experiment with the pattern formation mechanism developed during lab, and asked to post the most interesting structure you generate to a shared forum.

    · Final Project - 50% You will have the opportunity to further explore one of the pattern formation mechanisms from class, or a related topic of your own choosing, as a class project.