Paul Zimmermann et al.
SIAM 2018, 464 PAGES
PRICE (PAPERBACK) £68.95 ISBN 978-1-61197-545-1
SageMath (or Sage, for short) is an open-source piece of software based on the Python programming language, originally created by William A. Stein, a professor of mathematics at the University of Washington, and further developed by a large number of teachers and researchers. This book (translated from the French version) gives a fairly comprehensive overview of the language, the underlying mathematics and the algorithms involved, without necessarily providing the level of detail to be found in a reference manual.
It is written in four parts. The first part is a basic introduction to the language and pitched at a level suitable for high school and undergraduate students. The later parts cover more specialised mathematics encountered during undergraduate and post-graduate studies.
The first part covers analysis and algebra, programming and data structures, graphics and computational domains, while the second includes finite fields and number theory, polynomial systems, linear algebra and differential equations. Part three covers floating point numbers, non-linear equations, numerical linear algebra and numerical integration, and part four deals with combinatorics, graph theory and linear programming.
The software itself is available as a free download (though it must be run in a virtual machine in either Windows or Mac operating systems), or can be accessed for free in the Cloud. With the latter you might get a red warning banner that says the free server provides a poor performance, with an encouragement to subscribe for a few dollars a month! (I stuck with the free server and after a few days the banner disappeared and the performance improved!).
The book doesn’t include the housekeeping instructions on how to get up and running with the software in the Cloud, but, with the help of a couple of introductory YouTube videos I managed to do this without too much trouble. I had no previous experience of using either Sage or Python, but there are so many examples in the book, ranging from trivial to complicated, that it didn’t take long to get to the point of writing my own programs (even allowing for the syntax errors that inevitably occur when one deals with an unfamiliar piece of software!).
The book itself is rather densely printed – there isn’t much whitespace! However, it has a decent index and the Sage language is clearly delineated from the surrounding text and mathematics, so it isn’t difficult to use, as it isn’t the sort of book one needs to read from front to back sequentially (indeed, if you are familiar with Python, you could probably skip several of the earlier sections).
SageMath was constructed with the idea of providing a free alternative that would replace commercial products like Maple, Mathematica, MATLAB and others. This is, perhaps, wishful thinking, but it is quite powerful and, once you get used to it, not difficult to use.
Given the emphasis placed on the ‘free’ aspect of the software, the cost of the book as listed above, obtained from Amazon, is rather anomalous. If you understand fluent French, you can get the French version for under £10.00. Moreover, the book is also available in pdf format as a free download from www.sagemath.org!
Whatever its format, the book is extremely useful for those thinking of using Sage, be they beginners or advanced practitioners.
Alan Stevens CMath FIMA
Book review first published in Mathematics Today October 2019



