Math-related open source software to contribute to

I'm interested in finding a math-related open source project that I can contribute to. I've studied maths and stats at undergraduate level, but I'm a professional software developer and I'll have some spare time in the next few months at least that I'd like to use to contribute to an open source project. My goals are:

  1. Work on something I'm likely to use: there's nothing like being a user of a product to whet your appetite for developing it. For example I've used Maple and Mathcad when I was studying maths. And I frequently use R. I'm going to be studying some calculus and calculus of variations so a project that has symbolic as well as numerical capabilities would be good.
  2. Work on something is mature enough to have a substantial user base, but still needs help.
  3. Take my programming skills forward. I'm particularly interested in learning Python, because it's starting to be used very widely in e.g. the data science community and in large scale systems development where there is a maths or machine learning element. I would also welcome continuing my existing C++ experience (OTOH I'm not very interested in working on products that are developed only in C.)

A final, lower priority, point is that I'm interested in tools that contribute towards education in some way.

I've done some research, and I've considered a couple of of projects:

  • R. Great product, but ruled out on point 3 (it's developed largely in C), and somewhat on point 2. Doesn't entirely meet point 1 as it's specialized to statistics rather than being a more general tool.
  • Sage math. Seems to meet all the criteria: is a general purpose math tool with symbolic and numeric capabilities, is mature but still looks to need help, and is primarily developed in Python (but still interfaces with libraries in C / C++ so I could make some use of my existing skillset).

One thing I'm aware of is that I don't know what I don't know. I only discovered Sage yesterday, when I found an answer on this site. So are there other projects that I should consider?

Also, is my assessment of Sage accurate? Is it good enough to be used say for symbolic differentiation and for numerical work, but it still needs some help and welcomes developers? (There's a post related to this on ask sage).


Solution 1:

As an example, Sage certainly welcomes contributors - you can see current enhancement and bug requests at trac.sagemath.org and there is lots to do all the way from assembler in some of the subcomponents like Flint to Python to C++ in Pynac to web programming with the sagenb and cloud...

The developer guide is pretty comprehensive in terms of initial conditions. Creation of a Trac account is the most important part, though significant discussions also take place on the sage-devel Google group. We use git as our version control system, for better or for worse. Naturally, reporting bugs, helping sift through reports, helping other users e.g. at ask.sagemath.org are also all very valuable contributions.

Solution 2:

As another example, the development of the GAP system for discrete computational algebra is now hosted on GitHub: https://github.com/gap-system/gap.

The GAP Project welcomes contributions from everyone, in the form of code, documentation, blog posts, etc. For contributions to the GitHub repository, please read the guidelines.

GAP is redistributed with more than a hundred packages, some of which use GitHub or Bitbucket and are listed here or may be found under virtual organisations "gap-system" and "gap-packages" on GitHub and "gap-system" on BitBucket.

To keep up to date on GAP news (discussion of problems, release announcements, bug fixes), you can subscribe to the GAP forum and GAP development mailing lists, notifications on GitHub, and follow GAP on Twitter.

If you have any questions about working with GAP, you can ask them on GAP forum (requires subscription) or GAP Support mailing lists.

Finally, on this site we have the gap tag for mathematical questions involving GAP: https://math.stackexchange.com/questions/tagged/gap