Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
GSoC 2009 Application
Clone this wiki locally
SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.
SymPy has a vast array of potential applications, from theoretical physics (atomic physics, quantum field theory, general relativity, classical mechanics, ...), applied math (solving algebraic and differential equations, ...), teaching (calculus, integrals, derivatives, limits, ...), web (it runs on the google app engine) and it can also be included as a library in any scientific code.
SymPy has a very large, active development team that has increased non-stop since 2007 (ref: http://www.ohloh.net/p/sympy) thanks to an extensible architecture that permits to add features in a modular way.
It is built and tested regularly on all major platforms and all major architectures to ensure to reach the widest possible audience.
From previous experiences, GSoC is a very effective way to get students attracted to the project, coding on a specific task.
It will be beneficial for the project, since each year this has proven to give a huge boost to the project, and it will be beneficial for the students, who will get the chance to write code for an open source project (and get paid for it).
#sympy at freenode
We look mainly at applicants coding skills. Submitting some patches or some code we can see is a must to become eligible.
We also look for students who are interested in the project 'per se' as this increases the possibility that they will continue to commit regularly when the project is over, and they are not just interested in the money the program can give.
Has your group participated previously? If so, please summarize your involvement and any past successes and failures.
The SymPy project has participated in both 2007 as part of the Python Software Foundation, Portland State University and the Space Telescope Science Institute and we had 5 students in total. All the projects details and can be found here:
In GSoC 2008, we participated as part of the Python Software Foundation and we got 1 student, all details are here:
All 6 projects were successful and they incredibly boosted SymPy's development.
If your group has not previously participated, have you applied in the past? If so, for what sort of participation?
We have not yet participated as a mentor organization, but we participated under several umbrella organizations in the past, see the previous question for details.
The modified (new) BSD license.
We stay in touch with all the students and we require them to blog once a week about their progress. Also, we try to select students who are really interested in the project, see also the questions below about patches.
We are in frequent contact with all our mentors and we have collaborated with each other for several years, so we do not expect that such thing would happen. However, if that happens, Ondrej Certik has experience with mentoring several students at once from the year 2007, when SymPy participated as part of several organizations and even though we had official mentors at the umbrella organizations, Ondrej was effectively supervising all 5 students. As can be seen from our GSoC 2007 page:
all the projects managed to finish successfully. So in the very unlikely case of a disappearing mentor, I (Ondrej) will supervise the student and it should not be a problem.
What steps will you take to encourage contributors to interact with your community before, during, and after the program?
We require all applicants to find some easy to fix issue in our tracker:
and send a patch to our project fixing it, so that we can make sure that they can submit a patch (if they can't we teach them at this stage) and also so that we have some experience how they interact over emails. We communicate with them very frequently before they are accepted, and try to get them involved in our community. During the program, they need to blog once a week and are encouraged to become active members of our community.
After the program is over, the students already have their blogs and they are synchronized with our planet.sympy.org and usually if they blogged interesting things, they already built a nice community around their blogs, and so the continue blogging about what they do. It all depends how they like our community and to communicate with others and so we try hard so that they feel comfortable and will stick around.
What will you do to ensure that your accepted contributors stick with the project after the program concludes?
We try to select such students, who really want to help us develop sympy, be it as part of GSoC or not --- however GSoC allows them to work on this full time over the summer (while if they were not accepted, they would contribute only as time permits, while doing an internship somewhere else). In our experience those students then tend to stick around after the program is over, thus becoming regular contributors and that pays off incredibly in the long term.