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.

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.:

- "Mod sequences that seem to become constant; and the number 316"
- "Does 53 diverge to infinity in this Collatz-like sequence?"

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

Answered by Joseph O'Rourke on December 27, 2020

5 Asked on January 12, 2021 by shuhalo

5 Asked on December 27, 2020 by will-jagy

3 Asked on November 19, 2020 by mirams

5 Asked on November 3, 2020 by bjrn-lindqvist

5 Asked on October 29, 2020 by user230

4 Asked on September 15, 2020 by kevin-arlin

1 Asked on July 27, 2020 by robbie_p_math

Get help from others!

Recent Questions

Recent Answers

- haakon.io on Why fry rice before boiling?
- Joshua Engel on Why fry rice before boiling?
- Jon Church on Why fry rice before boiling?
- Peter Machado on Why fry rice before boiling?
- Lex on Does Google Analytics track 404 page responses as valid page views?

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