Textbook: Foundations of Genetic Programming, W. B. Langdon and R. Poli , Springer, 2002.
Recommended textbooks:
Course Summary: This course will examine the major techniques and subfields of evolutionary computation (EC), with particular emphasis on genetic programming, and their application to various domains. There will be several small programming projects (in C++ or Java), in which students will use preexisting EC systems to derive solutions, or near solutions, to relatively simple problems. The course is organized as a seminar; students are expected to complete the assigned readings in a timely fashion so as to be able to participate during the lectures. A significant portion of each student's grade is determined by his or her class participation. So, don't be afraid to speak up! During lectures, always feel free to ask questions, raise doubts, or mention a topic you feel should be discussed in the current context. If you have a question, it is almost always the case that someone else has the same question.
Course Goals & Objectives: Students will complete a significant programming project that uses an evolutionary programming technique to solve a problem that would be difficult, if not impossible to solve without a self-adaptive approach. Students will be able to characterize genetic programming, genetic algorithms and evolutionary programming, and specify the conditions under which these techniques might be most applicable. Students will be able to write a brief essay explaining why the Scheme Theorem may explain why evolutionary techniques can succeed in some situations, and why they may fail in others.
Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted a full grade penalty for each class period (rounded up) that the assignment is late. E.g., if an assignment is worthy of an 'A', but is turned in after the due date, but up to an including the start of the following class, it will be marked as a 'B'.
Attendance Policy: We're all grown-ups: when and whether you attend class is up to you. However, missed exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day. Also, missing a number of classes will adversely affect the "class participation" component of your course grade.
Assignments: There will be several assignments, mostly involving pre-existing EC systems, written in Java or C++. These assignments will typically be experimental: students will design and implement a simple experiment, and present their results and conclusions in a short written report (a few pages each). I'm not looking for poetry here: I just need to be able to understand your experimental design and results. The final project will be multi-staged: students will submit a written project design, which I will have to approve, possibly with changes. This document will serve as the formal specifications for the final project. The grade for the project will be proportional to the degree to which it satisifies these specfications.
Week # | Text | Projects due |
1 | Chapter Machine Learning | |
2 | Chapter 2Basic biological genetics | |
3 | Chapter 3Combinatorics of EC | HW#1 ECJ |
4 | Koza ch3 (course pack)Intro to GA | |
5 | Koza ch4 (pack)Intro to GP | HW#2, Gazelles |
6 | Chapter 4GP as EC | |
7 | Chapter 5GP fitness functions, fine-tuning | HW#3, Lions |
8 | Koza ch7 (pack)Schema Theorem applied to GP | midterm |
9 | Chapter 6GP crossover | Select Final Project |
10 | Chapter 7 & 8Introns & bloat | Design for Final |
11 | Chapter 9Different flavors of GP (graph & tree based) | |
12 | Chapter 12Applications of GP | |
13 | Selected conference papers (pack) | |
14 | Selected conference papers (pack) | Final Project |
15 | Selected conference papers (pack) | Final Exam |