Lesson 1

You will examine:

- the abstract base class for the lifeforms in the ecological simulation
- the lifeform inheritance hierarchy
- the lifeform interaction rules
- how the simulation is initialized and displayed

Many recent advances in theoretical ecology and evolution have been made by bringing together biological, mathematical, and
computational approaches, yet there are very few books available that contain this particular mix of information. This book is one of
the first to consider all three approaches in one volume, using the widely available computer programming language C and
biologically motivated individual-based simulations involving processes such as competition, foraging, predation, mating systems,
and life-history optimization. All of the important features of C are covered, providing an excellent resource for those seeking to adopt
a computational approach.

The goal of this to module is to combine mathematical and simulation approaches within a common framework to pursue interesting questions in *population biology*^{[1]}. The perspective reflects my interest in linking population-level phenomena and individual-level interactions. I address upper-level undergraduates, graduate students, and researchers familiar with theoretical concepts in ecology and having a strong mathematical foundation.

The main challenge in this module that three concurrent goals must be addressed simultaneously. One goal is teaching the C language to students who may have never programmed in any language. Another goal is teaching new mathematical concepts to students, in particular the mathematics associated with analyzing spatial problems, as well as standard approaches such as the stability analysis of a nonspatial model. A third goal is using simulation and mathematical approaches together to understand ecological dynamics by comparing and contrasting deterministic and stochastic modeling frameworks.

These three concurrent goals are reflected in the book, which serves much like a workbook for students learning C and applying it to ecological and evolutionary problems. Most of the theoretical tools I have needed in my work (programming concepts, mathematics) are mentioned in the course, along with useful references having more complete treatments.

The main challenge in this module that three concurrent goals must be addressed simultaneously. One goal is teaching the C language to students who may have never programmed in any language. Another goal is teaching new mathematical concepts to students, in particular the mathematics associated with analyzing spatial problems, as well as standard approaches such as the stability analysis of a nonspatial model. A third goal is using simulation and mathematical approaches together to understand ecological dynamics by comparing and contrasting deterministic and stochastic modeling frameworks.

These three concurrent goals are reflected in the book, which serves much like a workbook for students learning C and applying it to ecological and evolutionary problems. Most of the theoretical tools I have needed in my work (programming concepts, mathematics) are mentioned in the course, along with useful references having more complete treatments.

At the end of this module, you will have a chance to design and code a more complex version of this simulation program.

[1]*population biology:*
Population is a group of organisms of one species that interbreed and live in the same place at the same time.