Bio/Bot/Zoo 293 --- Simulating Ecological and Evolutionary Systems Instructor: Will Wilson Meeting Details: BioSci Rm 107, Mondays 1 to 3 (or so) Office and such: BioSci 033, 660-7346, wgw@duke.edu This course will cover the use of C programming applied to ecological and evolutionary problems, ranging from stochastic birth-- death models to foraging models to resource allocation in plants. Each simulation will be accompanied by analytic modelling, including differential equations and the like, providing a stronger theoretical foundation, but the primary tool will be simulation and computational techniques. There are no prerequisites for taking the course, for example, students are not expected to know how to program or work within the UNIX computer environment. All students enrolled at Duke have access to the acpub computer system and its resources (a UNIX operating system, an ANSI-standard C compiler, and the textedit editor), however, students are encouraged to use their own computers with whatever operating system (UNIX, Windows or Macintosh), editors, and C compilers. I may not be able to provide much detailed assistance with those systems, however. At the beginning of the term, I will cover the basic UNIX commands and how to use the textedit file editor (my personal favorites). Then, during the first part of the term (8 weeks or so), I'll cover basic C programming by examining ``simple'' birth-death population models from both individual-based simulation and analytic perspectives. I'll assign a series of computing projects to familiarize students with essential programming concepts and the language C. These projects begin with very straightforward programs designed to initiate students with editing files, and compiling and running a computer program. After a few programming projects, I'll introduce more advanced aspects of C, including pointers, structures, and compiler directives, and important numerical algorithms including random number and bit generation, numerical integration, and visualization techniques. I might give a midterm on the above topics. The important part of the course is an individually motivated programming project. It could be either a computational technique (genetic algorithm, neural networks, numerical analysis, random number generation, etc.) or a biological application of a computational method (a published paper or general area). Ideally, two aspects should come together in your project: One, the project should relate to your thesis topic (and ideally be a publishable piece of work), and two, I want you to demonstrate a mastery of programming skills. After 4 or 5 weeks, students will turn in a written outline and give overview talks on their proposed project. Towards the end of the term, each student will give a talk and write up a paper on the project. An alternative route might be to examine recent papers covering current topics in theoretical ecology and use them as foundations for individual or group programming projects. One goal might be to extend these works and produce publishable manuscripts. I might also use such papers as the basis of a class assignment.