| Date | Topic | |
|---|---|---|
| 1 | 2026-10-23 | Introduction |
| 2 | 2026-10-30 | Learning to model processes |
| 3 | 2026-11-06 | Preparing as a software developer |
| 4 | 2026-11-13 | Programming for simulation modelling |
| 5 | 2026-11-20 | Pond Trade (I): basics and cellular automata |
| 6 | 2026-11-27 | Pond Trade (II): agents and mechanisms |
| 7 | 2026-12-04 | Pond Trade (II): agents and mechanisms |
| 8 | 2026-12-11 | Pond Trade (III): advanced mechanisms, output stats and modularity |
| 9 | 2026-12-18 | Pond Trade (III): advanced mechanisms, output stats and modularity |
| 10 | 2027-01-15 | Messara Trade (I): case, design and spatial input data |
| 11 | 2027-01-22 | Messara Trade (II): time-series input data and plugging modules |
| 12 | 2027-01-29 | Messara Trade (III): verification, optimisation, refactoring and extension |
| 13 | 2027-02-05 | Designing and running Simulation experiments and Analysis of simulation results |
Agent-based modelling for archaeologists. From concept to application and publication
Course overview

Agent-based modelling for archaeologists. From concept to application and publication (14436.0398)
Time slot: Friday, 14:00-15:30
Place: Küpperstift, Kerpener Str., 30, 2nd floor (125/02) CoDArchLab / Virtual
Course instructor: Andreas Angourakis
Course summary
This course introduces the basic concepts and workflow of simulation and agent-based modelling (ABM), as used in archaeology.
More specifically, we will cover the prototyping of a conceptual model into a working simulation model, the ‘refactoring’ of code (cleaning, restructuring, optimising), the re-use of published model parts and algorithms, the exploration of alternative designs, and the use of geographic, climatic and archaeological data to frame the model in a specific case study.
During this course, we will use NetLogo, a flexible, well-established modelling platform known for its relatively low programming-experience requirements. It is widely used in social sciences and ecology for research and educational purposes.
The course includes implementation examples of least-path-cost algorithms, hydrological and land productivity modelling, network dynamics, and cultural evolution. We also cover the basics of Git and GitHub for version control, which will help us organise, maintain, and share models and related materials. Students will also be exposed to minimal use of R for data analysis and visualisation in the final sessions.
No previous knowledge of modelling and simulation is required. Programming experience is not required, but it would certainly ease students’ progress in the practical exercises.
Course schedule
Course Learning Objectives
By the end of this course, students will be able to:
- Design and deconstruct conceptual agent-based models (ABMs) relevant to archaeology and related disciplines using structured frameworks like the ODD protocol and UML diagrams.
- Evaluate published simulation models to propose theoretically sound modifications, extensions, or alternative architectural designs.
- Manage complex simulation codebases collaboratively using industry-standard version control systems (GitHub), including branching, forking, and documented commit histories.
- Develop and implement programmatic simulation code within the NetLogo environment, translating abstract conceptual designs into functional code architectures.
- Deconstruct existing codebase modules to adapt, integrate, and extend foundational algorithmic patterns into customised model functionalities.
Acquired Competencies
Upon successful completion of the course, students will have developed the following competencies:
- Methodological & Conceptual Competency
- Systems Thinking: Ability to translate complex cultural or historical phenomena into operational abstract models, identifying critical agents, environments, interaction rules, and system boundaries.
- Scientific Communication & Standardisation: Proficiency in documenting scientific workflows and model designs transparently according to established academic protocols (e.g., ODD).
- Technical & Development Competency
- Version Control Mastery: Advanced capability to utilise git-based workflows for project management, collaborative engineering, and continuous deployment of scientific models.
- Simulation Programming: Core proficiency in NetLogo syntax, object-oriented concepts (turtles, patches, links), global and local variable state management, and algorithmic procedure design.
- Analytical & Critical Competency
- Code Literacy & Reverse Engineering: Ability to read, interpret, debug, and critique third-party simulation codebases.
- Iterative Design & Troubleshooting: Capacity to incrementally test programming changes, document operational variations, and justify technical choices based on theoretical hypotheses.
Evaluation
Attendance and completion of small exercises, individually or as a group.
There are mainly three types of activities to address:
Conceptual modelling: Create your own conceptual model and document it as a text description or a diagram (task in chapter 7). If not developing an entirely new idea, consider a published ABM model applied to archaeology or keen disciplines (see References), summarise the corresponding conceptual model using text and diagrams and propose one or more modifications to the original design. You may use conventions such as UML diagrams and the ODD protocol if you need a more structured guideline for describing a model (see chapters 4 and 5).
GitHub repository for a model: Create your simulation model repository (task in chapter 10). It should eventually include files related to the conceptual model and the NetLogo implementation (see the next point). If you are extending a published model, upload a copy of the reference model you chose, or fork the original repository on GitHub if it exists. We will check your work directly in GitHub, so commit and push everything you do, even if it’s in progress.
Implementing a model in NetLogo: When working with your own model, create a minimal NetLogo version that can run simulations that represent your conceptual model. At a minimum, the implementation code should contain all the basic elements required by an ABM model: global parameters and variables, any agent variables (both patches and turtles), and the main procedures, even if unfinished. When extending a previously published model, such as the Pond Trade or Messara Trade models, propose at least one modification or extension to the original code, based on the changes proposed in the conceptual model. Implement the necessary changes and test them. Document your changes and briefly explain the reasoning behind them (images or text). To create new functionalities, you may use any code snippet or modules from the Pond Trade and Messara Trade examples (chapters 15-30), as well as any other sources of code elsewhere. Store all files in your repository according to the logic explained in Chapter 10.
You pass the course by completing all assignments. You can request an exam paper linked to this course for extra credit.
Acknowledgements
The conception of the course structure, as well as the short summaries, exercises, and images shown in each chapter, greatly benefited from Large Language Models used as companion writer and programmer, as well as language corrector. As such, we owe much to the rich reference information freely available on the Internet.
The models and services used are:
- ChatGPT (GPT-4o) by OpenAI for brainstorming, text and code drafting and writing suggestions, code refactoring and documentation, and collection and articulation of references.
- Google NotebookLM for summaries of references and text writing suggestions.
- WebChatGPT, a free browser extension that enhances ChatGPT by providing Internet access directly within the chat interface, used to aid Internet search.
- Leonardo.ai (user tokens) for generating purely aesthetic visual assets.