Mathematics, Computer Science, and Statistics
Bloomsburg University
Spring 2011
Professor:
Drue Coles
Email:
dcoles@bloomu.edu
Office: 235 Ben Franklin Hall
Phone: 389-4626
Office Hours: MWF 1:00-2:00 and T/R 2:00-3:00
Text: Nothing to purchase. Reading materials will be provided or are freely available on the web.
Prerequisites: There are no formal prerequisites, but the course is designed for people who like to read, write, think, discuss, and experiment. You will need to learn some programming, but no computing background is assumed — we cover programming basics in class.
Overview. Artificial Life is an area of computer science devoted to the study of living systems through the use of computers to simulate biological phenomena. It was initiated in the late 1940s by John von Neumann, one of the giants of 20th century science and mathematics, who worked out the logical form of a self-replicating machine. One of the central ideas of Artificial Life is emergence. An emergent property of a system is a complex pattern or behavior that arises from the local interactions of autonomous components. This happens everywhere in nature: individual ants, for example, self-organize into highly sophisticated ant colonies without any external guidance or centralized control. Emergence is a common theme in biology, chemistry, ecology, economics, physics and other areas.
We will experiment with a number of free and open-source software packages for generating lifelike behavior in simulated populations of locally interacting components. These components may adapt, reproduce, or evolve over computer-simulated time. For example, we will study the emergence of complex behaviors in Conway's Game of Life, the fight for survival among mechanical structures evolving in a virtual ecosystem, and algorithms that find solutions to computational problems by mimicking the processes of natural selection. We will also survey ideas about artificial life that philosophers have considered, such as the prospect of genuine life emerging from artificial systems.
This course has a strong research component that requires both reading and active experimentation. You will implement your own software systems for exploring emergent structures and patterns, and for that you will need to know some programming. We will learn the basics of Python, a popular, powerful, general-purpose programming language with a very clear and simple syntax.
Home | Topics | References