SAGE in abstract algebra class

26 views
Skip to first unread message

Mike OS

unread,
Mar 8, 2010, 6:57:10 PM3/8/10
to sage-edu
I have some funding from my university to develop
materials in SAGE for use in my classes. I've hired
two sharp students, one with a good deal of programming experience,
to work on the project. I have two inter-related goals
1. Help to make SAGE more accessible to students:
Develop tutorials, materials for use in class, and
assignments/explorations.

2. Contribute to SAGE development.

This post concerns the educational issues. A post to sage-devel has
some
observations and questions about item 2. Our focus right now is on
group theory.

For both items we are anxious to have some guidance and
collaboration to make our effort broadly useful.

We have started a tutorial, once it's a bit more polished I'll post a
link.
(We've looked at others on the web, and are borrowing ideas, thank
you.)

Here is my wish list for using SAGE in courses, I'm interested in
hearing comments:

A. I'd like elements of A= AbelianGroup( [2,3,4]) to be shown as 3-
tuples.
Currently GAP notation is used, so (1,2,1) is f0*f1^2*f2.
I'd like to write A(1,2,3) to coerce a 3-tuple into A.

B. There is some functionality lacking in SAGE, that it would be very
nice to have
This gets to the development issues, and the relationship with
GAP, so I'll
just mention a few things.
- Some types of groups are absent or difficult to use in SAGE:
Finitely Presented Groups,
Unit Group of a Ring (e.g. U_n and F_p[x]/f(x) ). I'm not sure
how to make a direct product.
- Matrix groups don't have subgroups implemented.
- I like to introduce homomorphisms early and use homomorphsism
between different
types of groups. This appears to be difficult.

C. I would like a "student mode" that would be less intimidating to
the user:
-Reduce the number of functions that appear on tab completion.
For a permutation
group there are 122 completions. Perhaps 20-40 are within the
vocabulary of an
undergrad.
-Simplify error messages.

Rob Beezer

unread,
Mar 8, 2010, 11:43:25 PM3/8/10
to sage-edu, sage-...@googlegroups.com
Hi Mike,

First, thanks for your work on this.

An implementation of finite abelian groups would be at the top of my
list. Folklore has it many have tried - not sure just where it gets
hard. Then build the group of units mod n on top of that for its own
sake and as a demonstration of the more abstract class. I have some
code for the group of units in a worksheet someplace (which I can
share). Besides wishing for a more solid foundation to build on, I
ran out of steam as I tried to implement subgroups of same properly.
Maybe somebody can suggest somewhere else in Sage where an algebraic
substructure is done "right".

I really like starting with permutation groups with my students, so
they have something concrete to compute with, and then groups of
symmetries are very natural. A colleague starts with matrix groups
for the same reason. But once I get beyond groups of order 15 (except
for the obvious infinite familes) I begin to wish I had groups as
presentations towards the end of the semester. I implementd dicyclic
groups as permutation groups to plug a hole at order 12, but I think
there is little point in going beyond a complete list up to 15. So
this is on my wish list also.

Homomorphisms would be really nice as well, but I agree that looks
hard, and I wouldn't find them as beneficial.

I'm less concerned about a long list resulting from tab-completion. I
see that as the point of a tutorial - expose students to the 20-40
methods they need to know with some instructions and then turn them
loose. If they can remember the first few letters of whatever method
they are after, the tab-completion list is usually quite short (or
unique). Trickier things (like syntax for specifying permutations)
and coercing elements into permutation groups, or rings of integers
will not be easy to convey with tools like tab-completion, so there's
another case for a tutorial.

I view Sage as already being a "student mode" version of GAP. ;-)
But systematically improving error messages should be an easy project
with a lot of benefit.

Some other ideas I've had:

(a) Implement equivalence relations. Maybe not the biggest payoff,
but it looks like GAP has a lot of support for this.

(b) All subgroups of a group (not just conjugacy class
representatives).

(c) Quotient groups whose elements are the actual cosets, rather than
a new permutation group isomorphic to the quotient group.

(d) Improved Cayley tables. #2 on my Sage list and I'm fairly far
along on this already. So maybe soon.

(e) All Sylow subgroups, not just one.

Rob

Rob Beezer

unread,
Mar 8, 2010, 11:44:45 PM3/8/10
to sage-edu
Mike,

Forgot to add. Feel free to cc me on any tickets along these lines
that is ready for a review.

Rob

Robert Bradshaw

unread,
Mar 8, 2010, 11:55:27 PM3/8/10
to sage...@googlegroups.com
On Mar 8, 2010, at 8:43 PM, Rob Beezer wrote:

> Hi Mike,
>
> First, thanks for your work on this.
>
> An implementation of finite abelian groups would be at the top of my
> list. Folklore has it many have tried - not sure just where it gets
> hard.

Implementing it isn't that hard (I think)--we already have a good
implementation of free modules over Z (with quotients, homomorphisms,
etc.) The "hard" part is swapping out the clean(er) implementation for
what's there now. The abelian groups stuff was written ages ago,
before there were any standards for anything, and lots of stuff uses
it in odd ways and depends on its quarks, internal representations, etc.

- Robert


Dana Ernst

unread,
Mar 9, 2010, 12:05:16 AM3/9/10
to sage...@googlegroups.com
This is slightly off topic, but if you are interested in having undergraduates use technology to explore finite groups, you should check out Nathan Carter's Group Explorer, which is free and can be found here:

http://groupexplorer.sourceforge.net/

Group Explorer approaches group theory from a visual perspective. I use it quite frequently when teaching abstract algebra and my students enjoy playing with it. You can do a lot more than it appears on the surface (do some exploring with sheets). The ability to "chunk" subgroups visually in Cayley diagrams or Cayley tables is just one of the many cool features.

Dana

> --
> You received this message because you are subscribed to the Google Groups "sage-edu" group.
> To post to this group, send email to sage...@googlegroups.com.
> To unsubscribe from this group, send email to sage-edu+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/sage-edu?hl=en.
>

Harald Schilly

unread,
Mar 9, 2010, 8:44:05 AM3/9/10
to sage-edu
On Mar 9, 12:57 am, Mike OS <mosul...@math.sdsu.edu> wrote:
>    -Reduce the number of functions that  appear on tab completion.
> For a permutation
>     group there are 122 completions.  Perhaps 20-40 are within the
> vocabulary of an
>     undergrad.

I don't think that's a good idea - but I have a better one: Display
certain, more importan methods with a bold font. Especially those
methods that aren't inherited would be the more interesting ones! [of
course, that doesn't work everyhere and a manual override should be
available]

If that is an interesting idea for you -> the mailing list for these
kind of features is sage-notebook

greetings h

Mike OS

unread,
Mar 11, 2010, 3:31:07 PM3/11/10
to sage-edu
Perhaps bold text is better, but it still seems to me that 122 items,
most of which are
irrelevant to a student, is bound to interfere with their comfort.

I would even like to see the tab completion list the available
functions
sorted by functionality in a way that invites some exploration.
For example:
element creation G.one, G,random_element, ..
subgroups: G.center, G.normalizer, G.subgroup..
Properties of the group: G.is_...
Properties related to specific type of group (e.g. permutation group)
G.orbit...

Perhaps this is better for a tutorial or reference page. But to have
the reference
available (to a student) via tab completion would I think be nice.

I'll take it up with sage-notebook in the future.

Reply all
Reply to author
Forward
0 new messages