<div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)">When I started to play with groups I implemented finite groups as objects that explicitly contain all their elements. This is fun to do, and works well for very small groups. The class Permutation is a good reference for implementing elements of permutation groups.</div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)"><br></div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)">For fields, I think implementing integers modulo a prime (i.e. Z/pZ, or more generally rings Z/mZ with m not necessarily prime) is a good starting point, they are easy to implement and there’s lots of interesting things to do with them.</div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)"><br></div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)">Also, as an introduction it might be enough to implement only elements (for example permutations and modular integers), but for more advanced studies it is important to implement the categories (Smalltalk objects for the groups and the rings themselves, and group homomorphisms, ring homomorphisms, etc).</div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)"><br></div><div dir="auto" style="border-color:rgb(0,0,0);color:rgb(0,0,0)">Perhaps some of my code can serve as a guide. I think the most fun for a student is not to *use* my code as they would use any other computer algebra system, but to actually implement the stuff from scratch again in a clean image and discover Smalltalk and mathematics along the way.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 1 Jul 2021 at 4:57 PM Gerald Klix <<a href="mailto:cuis.01@klix.ch">cuis.01@klix.ch</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Thank you very much!<br>
<br>
I gathered that Mathematics is overkill if I only want<br>
to introduce someone to the basic concepts of abstract algebra,<br>
like groups and fields.<br>
<br>
<br>
Best Regards,<br>
<br>
Gerald<br>
<br>
<br>
<br>
On 6/30/21 8:59 AM, Luciano Notarfrancesco via Cuis-dev wrote:<br>
> The code at those repos might be useful as a reference for someone wanting<br>
> to implement some basic objects such as polynomial rings or vector spaces<br>
> for example. But there’s been lots of changes since then, some big<br>
> refactorings and important fixes. The ultimate goal is to implement<br>
> something like Magma, at least covering the parts of algebraic geometry,<br>
> commutative algebra, number fields and function fields, and in order to do<br>
> that it requires a higher level of abstraction and there’s still lots of<br>
> work to do. For speed, at some point it will be necessary to move some code<br>
> to a plugin, and it turns out that the bottle neck for most of the project<br>
> is just operating with matrices and tuples over integers modulo a small<br>
> integer (32 bits will probably be enough), so making a plugin will be very<br>
> straight forward and I’m designing everything in such a way that adding the<br>
> plugin will be easy with almost no changes required in the image.<br>
> <br>
> On Mon, 28 Jun 2021 at 8:20 PM Gerald Klix via Cuis-dev <<br>
> <a href="mailto:cuis-dev@lists.cuis.st" target="_blank">cuis-dev@lists.cuis.st</a>> wrote:<br>
> <br>
>> Thank you! I am aware of that port, I am also aware of this repo:<br>
>> <a href="https://github.com/hbcbh1999/Mathematics" rel="noreferrer" target="_blank">https://github.com/hbcbh1999/Mathematics</a><br>
>><br>
>> I would like to know, whether the Cuis<br>
>> version is still working or if the aforementioned<br>
>> Cuis repo is up to date.<br>
>><br>
>><br>
>> Thanks in advance,<br>
>><br>
>> Gerald<br>
>><br>
>><br>
>> On 6/28/21 2:43 PM, Ralf Barkow via Cuis-dev wrote:<br>
>>> Gerald Klix via Cuis-dev:<br>
>>>><br>
>>>> What became of '<a href="https://github.com/len/Mathematics" rel="noreferrer" target="_blank">https://github.com/len/Mathematics</a>' ?<br>
>>>><br>
>>><br>
>>> <a href="https://github.com/PolyMathOrg/Domains" rel="noreferrer" target="_blank">https://github.com/PolyMathOrg/Domains</a><br>
>>><br>
>>>       "Domains is a Pharo port of <a href="https://github.com/len/Mathematics" rel="noreferrer" target="_blank">https://github.com/len/Mathematics</a><br>
>>> <<a href="https://github.com/len/Mathematics" rel="noreferrer" target="_blank">https://github.com/len/Mathematics</a>> a computer system algebra running<br>
>>> on Cuis."<br>
>>><br>
>>> --  /rgb<br>
>>><br>
>>><br>
>> --<br>
>> Cuis-dev mailing list<br>
>> <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank">Cuis-dev@lists.cuis.st</a><br>
>> <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev" rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
>><br>
> <br>
> <br>
<br>
</blockquote></div></div>