Aarhus University Seal

Exploring Your Hypotheses with Individual-Based Models (IBMs)

ECTS credits: 3

Course parameters:

Language: English

Level of course: PhD Course

Time of year: Fall Semester 2026 (see below)

No. of contact hours/hours in total incl. preparation, assignment(s) or the like: Total 75 hrs: 25 hrs preparation, 36 Contact hrs (in person only); 14 hrs assignment

Capacity limits: 10

Course fee: none.

Objectives of the course:
Mathematical models can be used to test our hypotheses regarding biological systems, allowing us to consolidate our theories of the many ways physiology, ecology, evolution and the environment interact to result in observed variability. In so doing, we can use models to assess how well our current theories can predict observed dynamics. Where there are gaps between our model results and in situ observations, we can use the models to identify knowledge gaps towards which future research can be directed.  When our model results are able to match observations, we can use our modelling tools to make predictions as to how dynamics might change in the future.

Individual-based models (IBMs; also known as agent-based models) track each individual as it e.g. is born/spawned, develops, and dies.  These models are based on the concept that the environment (physical, chemical and biological forcing) acts through an individual's physiology. Effects are integrated among individuals to produce modelled population dynamics.  Basing the model at the scale of the individual allows for intuitive model development as well as the inclusion of biologically meaningful variability among individuals that can be used to model uncertainty and/or test hypotheses regarding fitness and adaptation. 

This course will introduce students to IBMs as hypothesis-testing tools that can be used in their biological research.  It will focus on the steps involved in moving from biological theory to a conceptual model to code. We will develop a simple IBM for an aquatic system together in class; modelling how a population of individuals changes over space and time. We will discuss ways that the model can be expanded, including discussions of the students' own modelling applications. Students will practice model development through hands-on coding exercises using a free, open-source programming language.  Course instruction will be given in R (www.r-project.org/), but students may choose to use their programming language of choice for the in-class exercises (e.g. Python, Julia, Matlab, etc.).

Learning outcomes and competences:
At the end of the course, the student should be able to:

• Describe motivation for IBM applications to biological research

• Import, review, and manipulate gridded datasets of physical, chemical and biological forcing in R

• Develop conceptual models of biological changes over space and time

• Represent conceptual models in code and run code to model population changes over time and space

• Communicate model results including assumptions

• Understand and critique examples of mathematical modelling use in modern biological peer-reviewed literature

Compulsory programme:
Active participation in all aspects of the course.

Course contents:
The course will be divided into 3 parts:

Part 1) Course preparation: Before the in-class portion of the course begins (see Part 2 below), students will collect the background knowledge needed for building the conceptual and mathematical models of their chosen study organism.  Students will be guided in this preparation.  Students will also be given programming tutorials to get them started with skills we will use to build the model in R.  Students will complete a worksheet submitted before the in-class portion of the course begins as evidence of their preparations and to guide the instructor to topic areas needing review.

Part 2) In-class (in person): Students will gather for 6 days (2 x 3 hours per day) of in-class combined lecture-computer tutorial sessions. Students are expected to bring their own laptop (Mac, PC or Unix-based) to each session (all software is free; links will be provided before the class). Topics covered (and a tentative schedule): 

Day 1

Follow up from Part 1: Programming strategies and tips

Introduction to modelling and IBM/ABM theory

Conceptual models to computational logic and code

Day 2

Initializing a population of individuals

Developing model structure to track changes in time and space

Modelling development

Day 3

Environmental forcing: Handling forcing data in R

  • Introduction to gridded environmental datasets
  • Importing, manipulating and using data (e.g. netCDF files) in R 

Linking environmental forcing to an individual in time and space

Day 4

Modelling growth

Modelling reproduction

Modelling mortality

Day 5

Modelling transport & movement

Including and reporting model uncertainty

Day 6

Exploring and presenting model results

Next steps 

Part 3) Paper review: After the in-class portion, students will work independently on a review of a current paper that uses mathematical modelling to test a biological hypothesis. Students will submit a ~ 3 page report summarizing the paper and presenting a critique of the paper with respect to topics discussed in class. 

Prerequisites:
This course is aimed at PhD students but would be applicable to interested faculty, postdoctoral fellows and researchers. The course expects students to

  • have a foundational understanding of biology
  • have no previous programming experience (but GREAT if you do!)
  • be motivated enough to work through the learning curve associated with learning any programming language.

Name of lecturer[s]:
Anna B. Neuheimer, Associate Professor, Department of Biology, Aarhus University

Type of course/teaching methods:
Lectures
In class exercises
Assignment

Literature:
To be announced

Course homepage:
None

Course assessment:
Course grade will be Credit/No-credit (Pass/Fail) based on participation in i) course preparation exercises (Part 1), ii) lecture/lab exercises (Part 2), and iii) paper review (Part 3). 

Provider:
Department of Biology

Time:
Part 1 Course preparation (weeks 36 – 40)
Part 2 In class (weeks 40 & 41)

  • Wednesdays, Thursdays and Fridays (d. 30/09, & 01/10, 02/10, 07/10, 08/10, & 09/10)
  • kl. 09.00-12.00 & kl. 13.00-16.00

Part 3 Assignment (due before d. 01/12/2026)

Place:
Campus Aarhus – details to be announced.

Course fee:
None

Registration:
Register by sending an email to Anna B. Neuheimer (abneuheimer@bio.au.dk). In the email, include your motivation for the course as well as the system/organism you are interested in modelling.

Deadline for registration is d. 31/08/2026. 
If you have any questions, please contact Anna B. Neuheimer at abneuheimer@bio.au.dk

PLEASE NOTE

Deadline for registration is d. 31/08/2026

If you have any questions, please contact Anna B. Neuheimer at abneuheimer@bio.au.dk

32370 / i43