Novel approaches to elementary number theory and abstract algebra

This question is not limited to just references to books, so I will reply from a more general viewpoint on novel approaches in teaching these disciplines. One of them is to use mathematical software in the course.

Certainly, this is just one approach of the many, and I don't possess a complete overview of others and of their possible combinations. Also, the novelty is relative, and uniqueness is undefined (is it novel if it is used in a dozen of 10 books, or in several hundreds of places places, or for more than a decade?). Anyhow, it is more relevant why it mat be useful, and in my answer I just want to give a (biased) view on this.

For those who study abstract algebra and number theory, using a companion book that uses computer algebra system(s) could give the following benefits:

  1. Being able to "touch" algebraic objects and play with them interactively will lead to better understanding of the subject. For example, one could modify some properties of the object and immediately see which consequences that will have.

  2. Even better insight in the theory may be obtained by studying algorithms or trying to implement them. Here we are speaking not on the latest state-of-art implementations, which may be quite complex, but on exercises to implement something from first principles, or to study some simple code, and understand why it is written in this particular way, think of improvements etc.

  3. This will also teach to think algorithmically and care about the optimal way to solve the problem.

  4. Automation of some routine calculations using CAS (computer algebra system) will free time to think about more conceptual things.

  5. As a side-effect, students may get useful computing skills, useful in their further studies and career.

For those who teach, encouraging your students to explore relevant CAS does not require much efforts. To start with, one could point out URLs of some open source mathematical software (commercial packages may also work e.g. if the campus has a license, but the benefit (2) from above will be undermined if the source is closed). This may be enhanced by a brief overview and/or maybe even a demo during the tutorial. Then it will not take much time during the lecture to say "And by the way, in system X the relevant functions to look at are called A, B and C", but this small change may have an impact on understanding and have useful consequences in the long run.

Here is an incomplete list (additions are welcome, perhaps using other mathematical software than GAP):

  1. Abstract Algebra in GAP by Alexander Hulpke
  2. Notes for a course in Computational Group Theory by Alexander Hulpke
  3. Abstract Algebra: An Interactive Approach by William Paulsen (uses GAP and Mathematica)
  4. Abstract algebra with GAP by Julianne G. Rainbolt and Joseph A. Gallian; it is a supplement to Gallian's textbook.
  5. See also a collection of references on using GAP in Teaching, including sources in French, Japanese, Russian and Spanish.

For more advanced topics:

  1. Ideals, Varieties, and Algorithms by David Cox, John Little and Donal O'Shea (thanks to @neuguy for advising it here).
  2. Modern Computer Algebra by Joachim von zur Gathen and Jürgen Gerhard.

Another approach that is worth to mention here is based on the visualisation:

  1. Visual Group Theory by Nathan Carter, accompanied by the software package Group Explorer
  2. As mentioned in a comment by @HansLundmark, once Martin Weissman's book "Illustrated Theory of Numbers" is written, it will probably make a good answer to this question: see http://illustratedtheoryofnumbers.wordpress.com. (Update: this book has been published - see http://bookstore.ams.org/mbk-105).