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.
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
Forgot to add. Feel free to cc me on any tickets along these lines
that is ready for a review.
Rob
> 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
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.
>
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
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.