Saturday, April 3, 2021

An introduction to Sage


Quite simply, Sage is software that will allow you to explore many aspects of mathematics, including algebra, calculus, linear algebra, combinatorics, numerical mathematics, arbitrary precision arithmetic, number theory, statistics, stochastic models, and much more.

Fortunately for us, Sage is free to use and is available from http://www.sagemath.org/ as a free download. The founder and developers of Sage have a simple mission: "Creating a viable free open source alternative to Magma, Maple, Mathematica, and Matlab." It does that, and probably more importantly, it may provide a basis for you to become involved in a rich tradition of intellectual sharing inherent to any scientific discipline, mathematics notwithstanding. Unlike proprietary software, you have complete access to the source, and that's important. Not only can you look at the source code of Sage, but you can contribute to its growth by becoming a part of the Sage community of coders and users. Yes, just like any scientific endeavor, it requires a community to grow, and I am hoping that some of you will prosper in this very vibrant community.

The originator of the Sage project, William Stein, is a mathematician at the University of Washington. He, along with many others, is intimately involved in making sure Sage remains open and free. Mathematics is open and free too---that is, the theorems of mathematics are shared and then vetted by many, and similarly, Sage is too. You may not be interested in the backend of mathematics, that is, the theorems, but they're there if you want to look at them. You may also not be interested in your software's backend either, few are, but open-source software is important because it has no secrets. Mathematics is not magic, and neither should your software!

Sage uses the Python programming language, supporting procedural, functional, and object-oriented constructs. Working knowledge of Python is helpful when working with Sage but is not required to start. Some knowledge of functional programming is desired, but Sage, like Python, can easily be used at the introductory level. As your skill-set with Sage develops, you may desire to install Sage on your personal machines. However, the materials in the tutorial sections of the guidebook can be done immediately by visiting https://sagecell.sagemath.org/. Like most journeys worth taking, I suggest you take the time to explore beyond what is presented in this brief introduction. If you're really perplexed, you may decide to stop by Ron Bannon's office to get a demo of what you can do. But again, you need to try and explore Sage by yourself. As in life, it is not enough to watch, so please continue to read on!