The Computational Beauty of Nature
This course will explore the concepts of emergence and complexity within natural and artificial systems. Simple computational rules interacting in complex, nonlinear ways can produce rich and unexpected patterns of behavior and may account for much of what we think of as beautiful or interesting in the world. Taking this as our theme, we will investigate a multitude of topics, including fractals and the Mandelbrot set, chaos theory and strange attractors, cellular automata such as Wolfram's elementary automata and Conway's Game of Life, self-organizing and emergent systems, formal models of computation such as Turing machines, artificial neural networks, genetic algorithms, and artificial life. The central questions motivating our study will be: How does complexity arise in nature? Can complexity be quantified and objectively measured? Can we capture the patterns of nature as computational rules in a computer program? What is the essence of computation, and what are its limits? Throughout the course, we will emphasize computer experimentation rather than programming, using the computer as a laboratory in which to design and run simulations of complex systems and observe their behaviors.