Overview and Key Concepts

Core course materials:

The course is organised around three central themes:

   Data processing

This represents the classic scheme for using spatial data. At any point in an investigation we might end our path through this sequence, for example, choosing only to do processing and analysis without going on to do modelling, but we generally have to do each in order if we want to do the next.

Nevertheless, the course is really here for you to pick up skills, and so, while materials are provided for the whole course, you can, if you like, drop part of the data processing and analysis elements and use this time to pick up an additional skill in an area you're interested in, providing we think we can support you. Under this scenario you would do:

Parts 1 to 4 inclusive: ArcGIS programming.
Freeform section
Parts 9 to 12 inclusive: Modelling

Suggestions for things you might like to investigate in the freeform section include: Python, Javascript, Android programming, Processing, Computer ethics, and Linux admin; but feel free to suggest others.

Data processing :

  1. Introduction to the course and programming in ArcGIS [Lecture Powerpoint]
  2. Programming ArcGIS: Talking to the ArcObject Framework [Lecture Powerpoint]
  3. Programming ArcGIS: Getting, searching, and sorting data [Lecture Powerpoint]
  4. Programming ArcGIS: Editing and communication [Lecture Powerpoint]
  5. Connecting to Databases / SQL [Lecture Powerpoint]
  6. XML [Lecture Powerpoint]

Analysis :

  1. Science libraries I: Visualisation [Lecture Powerpoint]
  2. Science libraries II: Maths, stats, graphs, text processing [Lecture Powerpoint]

Modelling :

  1. Modelling I: Agent-based Modelling basics [Lecture Powerpoint]
  2. Modelling II: The Modelling process [Lecture Powerpoint]
  3. Modelling III: Parallel supercomputing [Lecture Powerpoint]
  4. Modelling IV: Model structure [Lecture Powerpoint]


Where we need a specific language, we use Java, because this builds on the core course; however we also cover non-Java programming, including SQL, XML-centred languages, Arc Model Builder, and others.

Most of the core ideas, including the Arc Objects Framework, are broadly transferable to other languages. Where another language is much better for something, we'll mention this and the key libraries.


The modelling sections concentrate on Agent-Based Modelling for the examples, because this has a really good balance of ease-for-starters and power. It also allows us to explorer elements of Artificial Intelligence. Agent-Based programming is a technique used in modern computer games like the SIMs series and First-Person Shooters, but which can also be used for advanced spatial modelling. If you did the core course Robocode practicals, you've already built an Agent-Based system.

However the core ideas of model building, calibration, sensitivity testing, and validation are generic to almost all modelling techniques and we'll treat them like this.