GAP TUTORIAL
============
Alexander Konovalov
GAP is a system for computational discrete algebra, with
particular emphasis on Computational Group Theory. GAP provides
a programming language, a library of thousands of functions
implementing algebraic algorithms written in the GAP language
as well as large data libraries of algebraic objects.
GAP is used in research and teaching for studying groups and
their representations, rings, vector spaces, algebras,
combinatorial structures, and more. The system, including
source, is distributed freely. You can study and easily modify
or extend it for your special use. The current release is GAP
4.4.12.
In these lectures I will start with some of the basics of using
the GAP system. There will be a brief discussion of the
structure of the system, including hints on how to get help and
learn more. We will look at programming in GAP and consider how
the system can be extended to meet the needs of the user. In
particular, GAP packages will be discussed. There will be
working examples throughout and some exercises for participants
to try during the afternoon sessions.
In the final part of the course I will introduce the GAP
package SCSCP (http://www.cs.st-andrews.ac.uk/~alexk/scscp.htm)
which is an implementation of the Symbolic Computation Software
Composibility Protocol
(http://www.symbolic-computation.org/scscp/) for the GAP
system. By means of SCSCP a computer algebra system may offer
services which may be accessed by a number of clients,
including:
* A Web server which passes on the same services as Web services using
SOAP/HTTP protocols to a variety of possible clients;
* Grid middleware;
* Another instance of the same CAS (in a parallel computing context);
* Another CAS running on the same computer system or remotely.
I will demonstrate examples of communication between GAP SCSCP
server and client, and will give a tutorial on how to design
and provide SCSCP services using the GAP system.