Happy.

I find that I’m spending more and more of my time studying computational algebra, which makes me incredibly happy. When I was a student at Caltech I took an abstract algebra class–which I did miserably at, because the material was presented without motivation. Computational algebra has the advantage of covering much of the same material I didn’t get the first time around–but this time, with a motivating reason which allows me to actually have a model for what the different types of objects really represent.

As a side note, I find it extremely interesting how much a background in object-oriented programming helps in understanding group theory. In a way, a group, a ring and a field are all essentially like interfaces: declarations of objects and operators which observe certain well-defined properties, but with different types of objects that can be plugged into our operators. For example, we could define a ‘group’ as a set of objects and an operator:

template class Group
{
	public:
		virtual Element add(Element, Element) = 0;
};

Then the Group Z of integers is:

class Integer: public Group
{
	public:
		inline int add(int a, int b)
		{
			return a+b;
		}
};

And the group ZN of integers from 0 to N-1 (which represents a finite integral group) could be represented by:

class IntegerN: public Group
{
	public:
		IntegerN(int m)
		{
			fModulo = m;
		}
	
		inline int add(int a, int b)
		{
			return (a+b)%fModulo;
		}
	private:
		int fModulo;
};

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s