In some cases I have written programs to help with evaluating and illustrating mathematical topics (see this page) but writing a general purpose abstract algebra program is not really sensible when there already exist such programs so I have also used Axiom/FriCAS:
Axiom
Axiom is a free general purpose computer algebra system. It has been in development since 1971 originally as Scratchpad by researchers at IBM under the direction of Richard Dimick Jenks. In the 1990s it was sold to NAG and given its current name. In 2001 it was withdrawn from the market and released to Tim Daly, the project lead developer, under the Modified BSD License. In 2007, Axiom was forked into two different open source projects: OpenAxiom, and FriCAS.
It is a pity that the developer effort and user resources are fragmented by these forks in this way but sometimes it can help to have several varients because if one fork does not work very well with your operating system then there is a chance that another fork will work better.
So I suggest you try one or more of the versions availible and see which works best with your computer and operating system etc. For more information see:
No slight to OpenAxiom intended, Once I found a setup that worked then I just havent got round to trying anything else yet.
Just to explain the issues involved I will go through some of my experiences in using these programs with the openSUSE operating system, you may have different expeiences so I'm not suggesting you make the same choices as me, if you have any problems both forks have very helpful email groups.
My Expieriences using openSUSE 11.1

Just by chance I first tried Axiom (see this page for details). At first this went very well except that anything involving the draw function failed with:
>> System error:
Unknown bfd format
This was a bit annoying, but since I did not need to use the draw function it did not hold be back, however when I first compiled an SPAD program and tried to use it I got the exact same error:
>> System error:
Unknown bfd format
This was a big problem so I asked on the email group and altough they are helpful and friendly there were no answers to this particular problem.
So at this stage I thought I would try another fork: FriCAS (see this page for details). At first this was worse, I could not even get the program to start, every time I ran the script to run FriCAS, the cursor steped down about 3 lines and then, after a short delay, returned to the command line prompt without any error messages on the system at all.
So I asked about this on the FriCAS email group and they also are are helpful and friendly there, in the end Bill Page found the answer, it seems that on SuSE the virtual memory limit is set rather low by default. The command:
ulimit -v unlimited
added to the startup script removed this limit and now the FriCAS program works perfectly, including draw function and user compiled programs.
Other Computer Algebra Programs
Axiom/FriCAS/OpemAxiom
Gap
Macaulay2
http://www.math.uiuc.edu/Macaulay2/
Maxima
http://maxima.sourceforge.net/
Octave
http://www.gnu.org/software/octave/



