1.3. Prerequisites for Success with Swarm.

Swarm was originally conceived as a set of standardized methods for the design of multi-agent simulation models. One need not be a highly accomplished computer program to user the Swarm libraries. In fact, as the installation process for Swarm becomes increasingly streamlined, it is quite easy for anyone with suitable hardware to test some of the sample applications. For people who have Windows 98/NT or Linux operating systems, compiled versions of the Swarm libraries are available and installation is quite painless

However, it is not easy to create new Swarm applications. Doing so requires the creation of a computer program. While one need not be an expert programmer, one must have a rudimentary understanding of vital computing concepts. The required knowledge will vary with the sort of model that one is intending to create, of course, but, at the bare minumum, users must have:

Java is a straightforward language to learn, and has the advantage of being a mainstream, well-supported language in terms of both tools and documentation. Objective-C is, well, truly elegant and fun to use and people who know C say it is fairly easy to learn (C is also a highly useful language and it is relatively easy to learn).

People who have not done computer programming will thus need to do some background preparation before they try to make a serious effort at building a Swarm model.

If you choose to implement your models in Objective C, we suggest that the first step is to find one of the many elementary guides to computing with C, such as The C Programming Language, [Kernighan & Ritchie, 1988]. Written by the authors of C, Brian Kernighan and Dennis Ritchie, it is a truly readable and informative manual that all users ought to investigate.

If you choose to implement your models in Java, there are literally thousands of introductory programming-in-Java resources on the market, both in paper and electronic form (see Section A.1 for some starting points).

A manual with examples and exercises is vital. These will teach the basics about writing code and compiling it into programs.

The Objective-C language is best learned from the online book Object Oriented Programming and the Objective C Language [NeXT, 1993].



in the Objective C case, an understanding of the C computer language, is also helpful, since Objective C is a superset of the C language