This is mostly about using GAP in teaching, but at the bottom I have a
question about writing *.g files.
I used GAP to help teach Math 306 -- Modern Algebra this spring semester
and I wanted to share my experiences with you. The eight students in this
class are sophomores, juniors and seniors with a variety of backgrounds. In
case you would care to see it, the entire syllabus is available through the
home page for the class at http://www.peru.edu/~kincaid/math306. As it says
there, we used Hillman and Alexanderson's _Abstract Algebra_ _A First
Undergraduate Course_ as the textbook. I am not familiar with Gallian's
textbook, though I have seen mention of it on this list.
In a letter to GAP-forum in December of 1993, Bill Haloupek of University
of Wisconsin-Stout commented that GAP is pretty intimidating to
undergraduate students. I found this to be generally true as well. We teach
this class for both Math majors and CS majors and I thought the CS majors
would take to GAP more quickly than the math majors did. I was surprised to
learn that this was wrong. My best students were those with strong
mathematics backgrounds and some computer science background. Those who
were weaker in mathematics, even with good computer science backgrounds,
found GAP difficult to work with. I hasten to add that with only eight
students in the class, my experience may not be indicative of the general
I don't think GAP _has_ to be intimidating. I believe it could be very
easily accessible if it were introduced to the students properly. I am not
sure how to do that, but I do have an idea for next year. See below.
The class met on Tuesdays and Thursdays. On Tuesdays, we met in a classroom
and discussed theorems and examples. On most Thursdays, we met in the
computer lab and the students worked through handouts I had written showing
how to use GAP to solve problems in the appropriate sections of the
textbook. Since I was learning GAP while I was writing those handouts, I am
painfully aware that there are many improvements which could be made. You
can find my handouts on-line through the class home page URL given above.
We had a midterm exam and a final exam. Both were held in the computer lab
and the students were encouraged to use GAP to solve the exercises on the
exam. The review sheet for the midterm exam and GAP macros to compute an
exam key for each of the tests (each student took a different exam) are
also available through that page.
This fall, I will be teaching Discrete Structures and next spring, I will
teach Modern Algebra again. I intend to introduce GAP to the students in
Discrete Structures (GAP was not used the previous time D.S. was taught)
and then build on that in Modern Algebra. Hopefully, by introducing GAP as
a programming language for solving discrete math problems first it will be
easier to introduce the group theoretic functions second. Also, between
now and then I will revise the presentations in Modern Algebra using what
I learned from this semester.
What did I learn this semester? Well, I'm not sure. One observation which
I'm still refining for myself is that students at this level need
motivation for the ideas beyond the search for beauty, truth and
understanding. The next time I teach this course, I hope to include more
motivation at the beginning semester for why we have different algebraic
structures in the first place.
Another observation regards the interaction between the textbook and GAP
(minimal actually). I find that students usually respond at or just below
the level I expect them to regardless of where I expect them to respond at.
We spent _far_ too much time this semester talking about the differences
between Z6 and S3 because the textbook spends a lot of time on groups that
small. I wanted to use GAP so that we could do more interesting examples
and calculations beyond S4 and A5, but I was following the text waiting for
it to take me there. Well, the textbook starts small and works up. I think
it would be better to start with a larger group and work down. Any
conjectures or ideas could be worked through on GAP or with smaller groups,
but we would need a proof to make any conclusion. I realize these ideas are
rough, but I'm still working them out for myself.
I would appreciate any comments or advice anyone has regarding this class.
Finally, I am trying to write my first GAP library routines. At the bottom
of the GAP page from the Math 306 web page given above is a link to a file
"grpring.g" which contains some functions I have written trying to work
with group rings. As I write these, I am trying to use the standard
formatting used in the other library files, but I don't understand all of
the coding in them. For example, the second column after a comment
character ('#') is often a letter. What do those letters mean? Is there
anyone out there who can give a quick overview of the style used in those
files? Are there any optimization considerations I should make note of
early in the creation process?
Has anyone ever tried to define group rings this way before?
I am continually working on that file and it barely does anything now, so
if you do take a minute and look it over, you may want to look it over
again a minute later to see what's new.
Thanks for your help.
Joseph Kincaid | Mathematics is the alphabet with which God
firstname.lastname@example.org | has written the universe.
email@example.com | -- Galileo
http://www.peru.edu/~kincaid | (except he said it in Italian, of course.)