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.