A programmable modelling environment specifically aimed towards exploring decentralised systems via simulation. Starlogo is a specilaized version of logo (which was used for teaching in schools). Starlogo allows the user to create and control the behaviour of 'turtles' (a term kept over from Logo days). Turtles move around a user-defined landscape that is make up of 'patches'.
Whilst Starlogo can be considered 'agent-based' (for example, a turtle is an agent) its programming paradigm is procedural (as opposed to object-oriented for example). What does this mean in practice? Very broadly, there are several main programming paradigms (for example: procedural, object-oriented, declarative, etc.). A programming language may be categorized into one of the paradigms. One way to categorize a language is the 'style' of programming that it adopts. Thus, Pascal, Modula2, and basic are procedural languages; C++, Java and SmallTalk are object-oriented and Prolog is declarative. There are many differences between the different paradigms, but the main point for this paper is that if a person has experience with one particular programming paradigm, he or she will have to learn a new way of thinking about the problem to be able to model and code using another paradigm. So, back to Starlogo! Starlogo is procedural. It provides a set of commands which the programmer uses to create and control the turtles & patches.
In practice, Starlogo is very easy to use (even for those people who have very little experience of programming). Starlogo provides a graphical interface to help the developer code their simulations. It is very easy to create graphs of simulation data and to define buttons and slide bars which control the simulation and define the input data (e.g. number of turtles). However, whilst it is very easy to graph data in Starlogo there are some annoying problems associated with the graphing facility (for example, whilst many lines may be plotted on the same graph, it is not possible create more than one graph). With the current version of Starlogo (ver. 1.2), it is quite easy to put your simulations in a web page as an applet for viewing.
Figure 2: Example interface of a simulation model developed using Starlogo
Starlogo is available for the Mac or PC. However, simulations which are developed and run on one platform will NOT run on the other. Thus if a colleague has a Starlogo simulation running on a Mac, you won't be able to run it on your PC.
There are a lot of examples of Starlogo simulations available on the internet and there is a very good support mailing help group. One of the main downfalls of Starlogo (particularly if we are addressing social science problems) is its inflexibility. The set of commands offered by Starlogo may be quite restrictive if we are aiming to code complex social mechanisms. It is not impossible to code such things in Starlogo, but it may be quite frustrating and challenging to find ways to do exactly what you want given the commands provided. In addition, whilst it is unnecessary to have a lot of programming experience, care must be taken to avoid writing inefficient code which can make your simulations frustratingly slow.
Starlogo for the PC Home Page at MIT includes examples and tutorials, etc. http://www.media.mit.edu/starlogo/
Starlogo for the Macintosh Home Page at MIT http://www.media.mit.edu/macstarlogo/index.html
An introductory book covering designing, creating and investigating models using StarLogo: 'Adventures in Modeling' Vanessa Stevens Colella, Eric Klopfer, Mitchel Resnick. ISBN: 0807740829 http://www.media.mit.edu/starlogo/adventures/
Connected Mathematics Team at Northwestern University contains lots of models implemented in StarlogoT (for the Macintosh) and a useful list of links. http://www.ccl.sesp.northwestern.edu/cm/
Starlogo sites at Maine University. http://www.asap.um.maine.edu/starlogo/
The simulation of the Spread of Malaria in Haiti developed at GRIC IRIT by Fatima Rateb, Narges Bellamin and Bernard Pavard. Click here to see the simulation running.
Back to Report Contents