Number theory for self-study students: books and computer languages

Mathematics Educators Asked by Will Jagy on December 27, 2020

Sometimes students will contact me, as my email is visible. This time, an undergraduate in Sri Lanka has no number theory courses available and is self-studying.

My own experience is that it helps to run computer experiments; that is how I learned the topic. I took a course in C++ some twenty years ago, and that has served me well. Steep learning curve, though. It helped a good deal when I found I could use the GMP library for large integers. My impression is that many current computer languages have large integers built in.

What computer languages might one recommend for, say, investigations in number theory?

As far as books, she is currently reading Burton. I have requested that and Burn, A Pathway into Number Theory, from my library. The one thing I would add to early number theory is quadratic forms, maybe just binary, before attempting quadratic fields. I like that Burns does the automorphism group of a binary quadratic form; he may not call it a group, not sure yet.

Recommendations for inquiry based/aided discovery textbooks

5 Answers

Benjamin Hutz has a recent book that could be appropriate: An Experimental Introduction to Number Theory.

This book presents material suitable for an undergraduate course in elementary number theory from a computational perspective. It seeks to not only introduce students to the standard topics in elementary number theory, such as prime factorization and modular arithmetic, but also to develop their ability to formulate and test precise conjectures from experimental data. Each topic is motivated by a question to be answered, followed by some experimental data, and, finally, the statement and proof of a theorem. There are numerous opportunities throughout the chapters and exercises for the students to engage in (guided) open-ended exploration. At the end of a course using this book, the students will understand how mathematics is developed from asking questions to gathering data to formulating and proving theorems.

Regarding languages, in the preface he mentions the following:

The book is not tied into any one computer algebra system, and there are several freely available. The systems SageMath and PARI/GP are two excellent freely available systems. Similarly, Mathematica, Maple, or other commercial software could also be used. Because there are many excellent tutorials for each of these systems freely available, they will not be presented in this book.

Answered by J W on December 27, 2020

Seconding/complementing other answers: Python (and/or Python as a part of Sage) has a command-line interface (on Linux/Unix and on Mac OS) that does allow defining variables, pre-loading files that set things up, and so on. Python (and, thus, Sage) has built-in large integers that are easier to use than C++ large integers (in my opinion). And freely available.

EDIT: ... and (I forgot to mention) it is quite easy to use the built-in graphing and graphical capabilities of Sage (especially in the "notebook" mode).

Answered by paul garrett on December 27, 2020

For beginning number theory, Art of Problem Solving has an online course. The textbook used with it, Introduction to Number Theory by Matthew Crawford, can be used alone for self-study. (I have not used the course. I have used the textbook.) I tutored a very advanced 9-year-old using this book, and enjoyed it.

I see they also have an intermediate number theory course.

Answered by Sue VanHattum on December 27, 2020

I would recommend Python combined with SageMath, as already recommended by Joseph O'Rourke, or rather SageMath and Python comes naturally.

Python is a modern, and widely used, interpreted language (no compilation needed) it supports big integers via the bignum type. (But using SageMath I think this is tangential, I mention it for completeness mainly.)

SageMath is a free CAS whose user language is essentially Python. SageMath has lots of number theory functionality; its founder William A. Stein is a number theorist.

He also wrote a nice book "Elementary Number Theory: Primes, Congruences, and Secrets" that uses this software; you can check it out on his site.

As you mentioned PARI/gp you might be interested to know that PARI is an integral part of SageMath.

Answered by quid on December 27, 2020

What computer languages might one recommend for, say, investigations in number theory?

I find Mathematica ideal, e.g.:

But: (a) there is a huge start-up learning curve, and (b) Mathematica is not free. Because of the latter, I recommend Sage / SageMath:

Multi-edge graph: "All pairs of characters in the sentence 'I am a cool multiedge graph with loops.'"

Answered by Joseph O'Rourke on December 27, 2020

Add your own answers!

Related Questions

Ask a Question

Get help from others!

© 2022 All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir