sage logo
Image rights: cc-by-sa by
about this article:
Author: William STEIN
Contact: @wstein389, official homepage
Hashtag: #SageMath
Download this article as:
pdf epub odt
Fork / improve: on Github
cc-byLicense for text and photos in this article, unless indicated otherwise (e.g. Image rights notice below pictures): creative commons share-alike 4.0 (cc-by-sa)
Location: 47.656947;-122.304189
William STEIN about the author: William Arthur Stein (born 1974) is a professor of mathematics at the University of Washington. He is known as the lead developer of SageMath. Stein is currently doing computational and theoretical research into the problem of computing with modular forms and the Birch and Swinnerton-Dyer conjecture. He is considered "a leading expert in the field of computational arithmetic".
source: Wikipedia entry about W. Stein
Donate author: Donate to SageMath
explained by Wikipedia:
closed source or proprietary, non-free software: (in the sense of missing freedoms), is software that fails to meet the criteria for free or open-source software. Although definitions vary in scope, any software which places restrictions on use, analysis, modification, or distribution (unchanged or modified) can be termed proprietary. A related, but distinct categorization in the software industry is commercial software, which refers to software produced for sale, but without necessarily meaning it is closed-source.
Read the full entry at Wikipdia...

Free and open-source software (FOSS) is computer software that can be classified as both free software and open-source software. That is, anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright and the source code is usually hidden from the users.
Read the full entry at Wikipedia...

Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. The language provides constructs intended to enable clear programs on both a small and large scale.
Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library. [...] CPython, the reference implementation of Python, is free and open-source software and has a community-based development model, as do nearly all of its alternative implementations. CPython is managed by the non-profit Python Software Foundation.
Read the full entry at Wikipedia...
This article was first published 2016-03-07 at under cc-by-sa license

When I think about what makes SageMath different from other math software systems, it's one of the most fundamental things about it: SageMath was created by the very people who use it every day. These researchers, teachers, computer programmers, and engineers are the ones who fully understand computational problems because they live them. They understand the requirements and challenges of math research, what's involved in teaching courses, and how to manage an open source project that users are able contribute to and customize to meet their own unique needs.

Image rights: cc-by-sa by

Before SageMath, we were using clunky, expensive, and incomplete tools (like, Mathematica) that were closed source software, so we couldn't see how they worked and modify them to do what we really needed them to do. A little secret: Professors teaching math get bogged down scheduling computer lab time for students and helping them buy and install expensive software. So, I found a way around all this and started SageMath as an open source project at Harvard in 2004.

I wanted SageMath to be a powerful tool for my students. It wasn't initially intended to be something hundred of thousands of people used! But as I began building the project, and as more professors and students started contributing to it, I realized these were problems many others were striving to solve as well. SageMath was desperately needed, and that wide interest became the driving force behind getting it up and off the ground. Over 500 contributors have participated and help make SageMath a real solution avaliable to students and teachers around the world.

Sharing it with the world, however, proved challenging.

filled plot
Image rights: cc-by-sa by

To solve the problem, I created SageMathCloud, a web-based and collaborative way for people to use SageMath and other open source software solutions, like: LaTeX, Jupyter Notebooks, command line terminals, the full scientific Python stack, Java, Julia, Fortran and more. I based it's structure on two decades of experience I have using math software in the classroom and online at Harvard, UC San Diego, and University of Washington. It's commercial grade, hosted on Google's cloud, and backs up all user files every few minutes, recording a complete history of file editing. Large classes use it extensively today. Plus, there's no installation required. Just open your web browser and start using SageMathCloud.

I was told there would never be an open source solution good enough to compete with Mathmatica, and good enough for mass adoption. But, we made something even better.

For the first time, teachers can easily use Python and R in their courses, which are industry standard and mainstream open source programming tools that have strong support from Google, Microsoft, and other industry leaders. Teachers can also collaborate in real time to manage their online courses with the same cutting edge software used by top mathematicians at the best universities in the world. For the first time, students can use a full suite of open source math-related software programs to learn, experiment, and collaborate with others to improve their skills and gain a better understanding of math.

advertisement (google adsense)