1A) Complexity, Evolution and the Origin Of Life

This is a tutorial session that will provide an introduction to key theoretical and philosophical topics in the study of complexity, evolution and the origin of life. The first half of the session will introduce key concepts that help us to understand and describe order, emergence and complexity. We will then consider the origin and evolution of biological life. The nature and limitations of neo-Darwinism will be explained, followed by a tour of some research directions that may help us unlock some of life’s secrets.

Intended audience: Anyone interested in the included topics, and researchers working on complexity theory or evolutionary systems.

Prerequisites: None

Preliminary list of topics (subject to change):
  • Emergence
  • Causation
  • Defining and measuring complexity
  • The origin of life
  • Neo-Darwinism
  • Levels of selection
  • The major evolutionary transitions
  • Artificial life

1B) Finite Difference Modelling – how to deal with messy, continuous processes (FOR DUMMIES)

Finite difference models are often used to simulate messy physical phenomena such as fluid flow, diffusion and mechanical processes. This workshop focuses on providing a practical toolbox of tips and tricks for the layman interested in using the method, including a lecture on the potential applications and basics. A practical session on constructing a very simple finite difference scheme will illustrate the basic components and method. Supplementary material on the web will provide more instruction on the methods and software available, for those interested in learning more.

Intended audience: Those who may at some point need to model non-agent based, physical processes. This course is a very basic, maths-light introduction to the method and is not suitable for those already familiar with the method.

Prerequisites: No personal skills (though if you can do very basic differentiation, it would help!), please have python installed on your laptop.

Workshop materials:

1C) Software Project Planning & Management

The workshop will teach you how to plan and organise your software development work in order to achieve code reliability, readability and effectiveness. Agile development techniques, with focus on working within a remote team of people will also be introduced.

Intended audience: Researchers who tend to work on long-term software projects and / or in collaboration with others

Prerequisites: None

Preliminary list of topics (subject to change):
The workshop will cover topics related to software engineering that are NOT about programming, but general things you do before you start writing code, including:
  • Agile development techniques and associated project planning in small teams
  • Object-oriented software design vs functional design
  • Most commonly used software development design patterns (finite-state-machines, model-view-controller, factory, etc.)
  • Planning your code - flow charts, class diagrams
  • Making your code easy to understand for other people (naming conventions, commenting, separating program into reusable functions, etc), sharing code
  • Introduction to managing your code in a remote repository
  • Management of feature creep

2A) The Power of Model Validation

This workshop aims to arm participants with an overview of how even very general, basic theoretical models of natural or human processes can be validated against freely available data, with just a few adjustments for comparability! There are often unrecognised opportunities for models to be proven – or at least compared – with observational data that go unused simply because it is not obvious how to rephrase either the model or the data into comparable formats. This can be the case in fields like synthetic biology and climate modelling through to financial models. Validating with observational data allows for easier interpretation of a model's functioning and gives the research focus and a stronger impact.

Intended audience: Anyone interested in real-world validation, possibly especially useful to ecologists & climatologists

Prerequisites: Please have python installed on your laptop.

Workshop materials:

2B) Tools From a Productivity Toolbox - streamlining your workflow as a computational scientist

Lost in your data or your simulation code? Frustrated by repetitive tasks or tools getting in your way? Need to quickly share & publish your computational results? Read on!

Virtually all branches of science have profited from the vast increase in computational power in recent decades. However, given that scientists are rarely trained computer programmers (and more often than not self-taught), there is a substantial barrier to harnessing this power as it is easy to lose track of your work or get lost in the subsequent data analysis.

This workshop will provide a hands-on introduction to a variety of tools to make your workflow as a computational scientist more efficient, productive and reproducible.

This is *not* a workshop about programming. Rather, it is about the infrastructure and tools surrounding your daily simulation work. The aim is to help you build a solid framework for your computations so that you can focus on your research rather than wasting all your time trying to manage data and simulations.

Intended audience: Any computational scientist who feels that parts of their workflow are unstructured or inefficient and is looking for ways to improve it.

  • Basic programming experience will help but is not strictly required (Python is preferred, but the language mostly shouldn’t matter).
  • We will work quite a bit from the command line, so you should feel moderately comfortable in a terminal and know the basic commands for navigating between directories etc.
  • Participants are asked to install some necessary software on their laptops beforehand (detailed instructions will be sent around in advance).

Preliminary list of topics (subject to change):
  • The IPython Notebook: a versatile, interactive computing environment and electronic notebook (not just for Python!)
  • Basic version control with git
  • Makefiles for reproducible workflows and automation
  • Sumatra: a tool for keeping track of simulation & data anaysis runs (in particular for large parameter spaces), with the aim of supporting reproducible research

The focus will be on providing minimal working knowledge of these tools to enable participants to immediately start using them, rather than covering advanced features in great depth.