About the Course
The course is concerned with different ways of representing computational devices, and approaches to using evolutionary computation to search and optimize the spaces they define. The course will start with a primer on evolutionary computation techniques; then it will discuss computational devices in real evolution, genetics, and morpholology. Following this, we will move to various evolutionary representations of computation: neural networks, finite-state automata, rule-systems, tree-based and linear genetic programming, lindenmayer systems, cellular automata, etc. Some topics include: the evolutionary landscapes formed; complications introduced with multiagent systems; bloating in variable-lenth representations; how and why biology is able to do the task; non-evolutionary approaches to searching the space.This is a bleeding-edge subject, and so the class will be flexible and open to topic suggestions and revisions.
Further information will appear on the Course Web Page
Requirements
There are no textbooks for this course: readings will focus on current journal articles and conference papers, plus excerpts from texts.Projects may be done in a variety of languages, but the library code will be provided in Java.
Grading Policies
At present, the course will consist of one or two exams, a few small projects, presentations, and a final project. The breakdown will be approximately:
| Projects and Presentations | 20% |
| Final Project | 30% |
| Final Exam | 50% |