So much of my learning mathematics happened by tinkering around with mathematics software. Here are fifteen applications I think are really cool, with eleven of them being free.

Contents

## 1. SageMath

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.sagemath.org/

Top on our list is Sage. Sage is a command line and Jupyter notebook based mathematics system that includes an enormous number of features. It has number theory, calculus, linear algebra, combinatorics, group theory, and ring-theory libraries. For the pure mathematician looking for a little computational algebra, Sage is one of the easiest to start using. The only difficulty with Sage may be that because it includes SO much stuff, the installation size is huge. The install size of 9.2 (the most recent version at the time of this writing) on my computer is 13.1GB.

I highly recommend Sage. Some of the computations I have done in Sage have led to published results such as my paper on separable polynomials.

## 2. GAP

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.gap-system.org

GAP stands for Groups, Algorithms, Programming. It’s basically an awesome command-line tool for group theory computations. Construct finitely presented groups, take quotients, and have a whole lot of group theory fun.

GAP is also included with Sage, but it is a lot smaller, so it’s a better choice if all you need are the group theory features of GAP. GAP is also extensible through packages, and users have contributed a variety of additional features such as group cohomology and Gröbner basis calculations.

## 3. Magma

Free: No

Platforms: Windows, MacOS, Linux

Website: http://magma.maths.usyd.edu.au/magma/

Magma is an awesome computer algebra system, focused on number theory, algebraic geometry, and combinatorics. Unfortunately, it is almost impossible to obtain Magma if you are not affiliated with an institution. However, there is a limited, free calculator available online. So, if you really need to make a quick evaluation of some short Magma code, you can. Otherwise, many universities and institutions do already have licenses, so you may already have access to it.

## 4. Pari/GP

Free: Yes

Platforms: Windows, MacOS, Linux

Website: http://pari.math.u-bordeaux.fr

Pari is a C library that powers GP, an interactive math command line calculator that specializes in number theory, and focuses on topics centered around integer factorization, modular forms, and elliptic curves. Thus, it is more specialized that some other systems. You can use it interactively, but the C library itself was also meant to be used so you can incorporate it into your own programs, making it quite powerful.

## 5. Singular

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.singular.uni-kl.de/

Singular is a very specialized program designed for polynomial calculations. If you need to manipulate a variety of polynomial rings and compute in them, Singular might actually be the ideal program for you (get it?).

If you are interested in learning and using Singular, you will probably find the book A Singular Introduction to Commutative Algebra by Gert-Martin Greuel and Gerhard Pfister very useful as well.

## 6. Macaulay2

Free: Yes

Platforms: Windows, MacOS, Linux, FreeBSD

Website: https://faculty.math.illinois.edu/Macaulay2/

Macaulay2 is another specialized algebra system, developed by Daniel Grayson, Michael Stillman, and David Eisenbud. It is a commutative algebra system focused on Gröbner bases and free resolutions of modules. Thus, it is a system for some parts of computational homological algebra. It’s latest release was January 2021, so it is still quite actively developed.

You can learn Macaulay2 using an online web interface or by downloading it.

## 7. Mathematica

Free: No (but yes for Raspberry Pi)

Platforms: Windows, MacOS, Linux

Website: https://www.wolfram.com/mathematica

Mathematica is an incredibly powerful system that combines powerful symbolic computation with numerical methods as well. It is very fast and has a notebook system that is a lot cooler than Jupyter notebooks. It has excellent graphing technologies and can do some pretty cool things. Although it is not free like Sage, it is a lot more polished and a lot faster at certain computations. Basically in many realms it just blows Sage away. It might be a bit expensive, but if you need the power, it is one of the best computation math systems out there. A perpetual license of Mathematica for personal use is 372 USD.

Mathematica is actually free for the Raspberry Pi, so if you have that system it might be a fun way to try mathematica.

## 8. Matlab

Free: No

Platforms: Windows, MacOS, Linux

Website: https://www.mathworks.com/products/matlab.html

Matlab is another proprietary computational package, but this one is geared towards numerical computations. It is an industry standard and you probably already know if you need Matlab. A personal license of Matlab is 149 USD.

## 9. GNU Octave

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.gnu.org/software/octave/index

How can I mention Matlab without mentioning Octave? That’s because Octave is really meant to be an open-source replacement for Matlab. It is definitely not as comprehensive, but if your problem can be solved using Octave then there might be no need to go to Matlab.

Octave was designed to have syntax very similar to Matlab, so Matlab programs can even run on Octave with usually minimal or sometimes even no tweaking.

## 10. Maple

Free: No

Platforms: Windows, MacOS, Linux

Website: https://maplesoft.com/products/Maple/

Maple is somewhere between Mathematica and Matlab. It has more theoretical math but also is good at numerical computations. It is probably the broadest compared to Matlab and Mathematica. It is relatively affordable at 239 USD, which is a decent price for such a capable tool.

## 11. R Project for Statistical Computing

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.r-project.org/

Luckily for statisticians, there is an industry-strength tool that is also free, and it’s called R. R is a command-line tool and programming language designed for serious statistical analyses and scientific plotting. Because R is so good and so widely used, I’m not even going to mention paid options. Especially because there is also a professional quality tool called R Studio, also available for free for personal use (see below).

## 12. R Studio

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://rstudio.com/

There are not many tools that are extremely polished and also free. RStudio is among those few tools. It is an amazing frontend for R that allows you to interface directly with R, write R Markdown, browse help and data, and install packages. R itself is cool, but R Studio brings R to the next level and makes it usable for everyone.

## 13. Lean Theorem Prover

Free: Yes

Platforms: Windows, MacOS, Linux

Website: http://leanprover.github.io/

Lean is different than everything I mentioned above in that it is a computer proof checker. You write proofs in it in an esoteric computer language. A proof written and verified in Lean is almost certainly correct. It has theoretical implications, but also may one day help mathematicians write proofs. An impressive amount of mathematics has been done in Lean. While Lean is still rough around the edges in terms of usability, it may one day take a central place in the practice of modern mathematics.

There is a Visual Studio Code extension as well, which is highly recommended for using Lean.

## 14. Gnuplot

Free: Yes

Platforms: Windows, MacOS, Linux

Website: Gnuplot

Gnuplot is a pretty good open-source plotting program. It can make two-dimensional and three-dimensional plots of various sorts, and can be quite useful for illustrating mathematical functions or data. To get an idea of what it can do, you can check out an extensive page of examples of some pretty charts.

## 15. Anaconda

Free: Yes

Platforms: Windows, MacOS, Linux

Website: https://www.anaconda.com/

Anaconda is a Python distribution that is geared towards data science. It makes it much easier to use a variety of numerical computing tools in Python compared to installing them via pip or other package managers. It is not a single cohesive platform like Mathematica but rather allows you to do a lot of numerical and statistical programming without the hassle of figuring out how to get all the different packages to work with each other.

I install Anaconda on all my computers and it works very well.