Skip to content

Home

(By Hugh Montgomery)

Number theory can be taught as a lab course, in the same way that chemistry and physics are customarily taught. Students have a lecture course, of three hours a week (say), and then meet on a fourth day in a room equipped with computers. A lab manual and software for this purpose are provided here. Students who have taken such a lab course seem to have a better grasp of the material, and of course more knowledge of the algorithmic issues that arise in number theoretic calculations. These materials were developed for use with the NZM text, but could be used with other texts, or on its own. Instead of the programs found here, one could use Python, SageMath, Maple, Mathematica, etc. See the GitHub repository for implementations of some of the programs in Python and C++. The advantage of such an approach is that one can cut-and-paste, and one has a wider range of professional-level tools. However, in such a case the instructor would need to provide some tuteledge concerning the appropriate commands. The programs provided here have some advantages:

  • The algorithms being used are limited to those that the student has studied, so the computer is only doing the drudge work that the student in principle could do by hand.
  • The "demo" programs walk the student through the execution of an algorithm, one step at a time.
  • The "tab" programs create tables of numbers in which students can identify patterns.