Syllabus

Animal Tracking in Conservation Biology — 2026-2027

Modified

September 30, 2026

Learning outcomes

By the end of the course you should be able to:

  1. Explain movement through the movement-ecology paradigm, and name the ecological drivers and trade-offs behind a path.
  2. Choose a tracking design — technology, fix interval, duration — for a species and a question, and state its biases.
  3. Handle spatial data in R — import, reproject, overlay, map — without hand-waving about coordinate reference systems.
  4. Turn fixes into a defensible trajectory: clean it, regularise it, and annotate it with environmental data matched in space and time.
  5. Quantify and classify movement with path descriptors, first-passage time and change-point methods, and test whether the result depends on the sampling.
  6. Simulate movement with random-walk models and use simulations as null models and as ground truth for estimators.
  7. Estimate space use with MCP, KDE, Brownian bridges and AKDE, and say which question each estimate answers.
  8. Fit and interpret resource and step selection functions, including integrated step selection analysis.
  9. Infer behavioural states with hidden Markov models, with covariates on the switching between them.
  10. Work reproducibly: scripted analyses that another person — including future you — can rerun.

The spine: the movement-ecology paradigm

Nathan et al. (2008) proposed that every movement path is the joint outcome of four components: the animal’s internal state (why move?), its motion capacity (how?), its navigation capacity (where to?), and the external factors acting on it. Tracking data record only the path. Every session opens by showing which of the four components its methods try to reach.

Eight sessions

# Session Theory Practical Core packages
1 Foundations paradigm; drivers and trade-offs; technologies; fix interval load a track; fixes per day, daily distance, gaps readr, ggplot2
2 Spatial data in R vector/raster; CRS and projections; the R spatial stack; remote sensing sf verbs; NDVI; a publication map sf, terra
3 From fixes to trajectories location error; bursts, gaps, truncation; regularity clean, resample, interpolate; NDVI matched in time amt, adehabitatLT
4 Quantifying movement NSD, straightness, FPT, fractal dimension; behavioural modes NSD classification; FPT; BCPA and fix rate adehabitatLT, bcpa
5 Movement models RW, CRW, BCRW, Lévy walks; simulation as a test write a simulator; MSD; homing; a null for buffalo circular
6 Home ranges UD; KDE bandwidth; Brownian bridges; AKDE; stationarity four estimators; variograms; ground truth adehabitatHR, ctmm
7 Habitat selection RSF, RSPF, SSF, iSSA; relative selection strength fisher RSF and iSSA; ground truth amt, survival
8 Hidden Markov models HMMs; covariates on switching; the frontier 2 vs 3 states; diel rhythm; pitches momentuHMM

Dates are on the calendar.

Structure of a session

Minutes What
0–5 Recap, and where today sits on the paradigm
5–50 Theory, with at least three pop quizzes
50–55 Break
55–120 Practical in R — you type, I circulate

Session 8 ends with mini-project pitches: its practical is shorter (~50 minutes) to leave ~20 minutes for them.

Pop quizzes

Multiple-choice questions are embedded in the slides. Click an option and the deck reveals the correct answer and a short explanation. They are not graded — they exist so that you, and I, find out in real time whether an idea landed.

Practicals

Every session has a practical page with the full R code. Solutions are in collapsible blocks: try first, then unfold. The practicals are cumulative — the track you clean in Session 3 is the one you classify in Session 4 and model in Session 8, and the animal you simulate in Session 5 is the ground truth for Sessions 6 and 7.

The worked examples are starting points. Extending them to another animal, another dataset or another parameter value is exactly what the weekly submissions ask you to do.

Assessment

Component Weight What
Reproducible report 50% Your mini-project, as a Quarto (or R Markdown) document
Weekly practical submissions 30% The “To hand in” item at the end of each practical
Participation 20% Quizzes, practicals, and your Session 8 pitch

The report

  • Pick one of the course datasets (or bring your own, with my approval).
  • Pose one clear question the data can answer, and pitch it in Session 8.
  • Produce a Quarto document (~4–6 pages rendered) with the question, the cleaning steps, one or two analyses from the course, the figures, and an honest paragraph on the limitations.
  • Submit the .qmd and the rendered HTML, so the analysis can be rerun.

Within the report: correctness of the analysis (40%), justification of the methodological choices (30%), reproducibility and code clarity (20%), clarity of figures and writing (10%).

Keeping your project in Git is strongly encouraged: a history of commits is the best evidence that your analysis is reproducible, and it is a skill worth having regardless of this course.

Note

The commonest way to lose marks is to run an analysis whose assumptions the data violate — fitting an HMM to wildly irregular data, or estimating a home range for an animal that is not range-resident. Saying “this is a limitation because X” earns marks; silently ignoring it does not. If you can, test your method on simulated data with a known answer first.

Weekly submissions

Each practical ends with a short To hand in item: a figure, a table or a paragraph that extends the worked example. Submit it before the next session. They are marked for completion and understanding, not for polish.

Prerequisites

No prior R experience is assumed, but the pace is brisk. If you have never opened R, work through the setup page before Session 1 and budget an evening for the linked introductory tutorial. Basic ecology and statistics (regression, likelihood, the idea of a probability distribution) are assumed.

Office hours and contact

By appointment — write to giuliano.colosimo@uniroma2.it. For anything about the material itself (typos, broken code, a figure that does not render), please open an issue on GitHub.