GSoC 2020 Organization Application - sympy/sympy GitHub Wiki

This is based on the Google Summer of Code 2019 application for SymPy to be an organization.

NOTE: Do not use any markup in this document. We have to copy-paste the text to the application. All URLs should be in plain text.

If you want to add a comment or a TODO, use an html comment (<!-- like this -->) so that it doesn't accidentally end up in the final application.

Each answer can be no more than 1000 characters long.

Organization Application

Why does your org want to participate in Google Summer of Code? [No more than 1000 characters]

SymPy has participated in GSoC since 2007, both through umbrella orgs, and as an independent mentoring org. We have had 79 successful projects in this time. Many of these projects have been of fundamental importance to the project. GSoC gives a student an opportunity to work on SymPy full time, something that most project core committers do not have. Furthermore, in many instances, the projects would never have been implemented without GSoC, because the existing community lacked the technical or mathematical expertise required.

Second, GSoC gives SymPy an opportunity to grow its community. While we realize that many students will move on to other things after the summer is over, each year, some students decide to stick around and continue contributing to the project. Today, roughly half of the active contributors to SymPy with push access (i.e., core contributors) originated from GSoC. Without GSoC, it is unlikely that most of them would have ever contributed to SymPy.

How many potential mentors have agreed to mentor this year? [Popup]

1-5

6-10

11-15

16-20

20+

How will you keep mentors engaged with their students? [No more than 1000 characters]

We currently have 8 mentors signed up (https://github.com/sympy/sympy/wiki/gsoc-2020-ideas#potential-mentors) and we select mentors from experienced contributors to SymPy who have push access to the repository so that they are familiar with both the code and the math. Most of the mentors show have signed up have either mentored in the past or were students in the past. We encourage and expect students and mentors to interact and communicate with the whole community on a public mailing list and a chat room (Gitter). We require mentors to meet weekly with their students on Gitter and discuss the progress on the project. Each project will have one or more backup mentors, that can also help to step in in case the primary mentor is busy for a week or so.

If, given the above, there is still some problem, both of the admins, Aaron Meurer (the current project leader) and Ondřej Čertík (the former project leader) are ready to step up and become a mentor or co-mentor for any project if needed.

How will you help your students stay on schedule to complete their projects? [No more than 1000 characters]

Our primary goal here will be to notice when a student is falling behind as soon as possible, so that we can fix the problem. If we wait until one of the evaluations and nothing has been done, then we will have no choice but to fail the student. So we want to catch it right away, so we can work with the student. The public weekly meetings and blog posts will allow the student’s mentors and the org admins to notice if a student is falling behind right away. In many cases, the timeline in the student’s proposal may be found to be unrealistic and need to be modified, for instance, due to unforeseen technical challenges.

Ultimately, if their mentor is not able to help the student, then the SymPy admins (Aaron Meurer and Ondřej Čertík) will step in. We usually give a student a reasonable, mutually agreed, set of goals to achieve in a week or two, and if the student starts making sufficient progress (with our help) then we will pass the student. Otherwise we fail the student.

How will you get your students involved in your community during GSoC? [No more than 1000 characters]

We will require that all student-mentor interactions happen on a public channel, such as the mailing list, our GitHub issue tracker/pull requests, or our public Gitter chatroom. In the past, we have found a high correlation between students interacting with their mentors privately and nearly failing GSoC, and also for not participating in the community after the summer ends. By participating publicly, other members of the community get a chance to chime in on student discussions. In many cases, other students will answer questions. This also teaches them the habits of open communication, which are vital for open source participation.

Students will be required to blog at least once a week on their progress. These blogs are aggregated on https://planet.sympy.org. This enables the wider community to get involved with the students. We also encourage students to review other pull requests, which is a great way to get involved in our community.

How will you keep students involved with your community after GSoC? [No more than 1000 characters]

Starting last year, we implemented a policy that every passing student is given push access at the end of the summer, if they do not already have it. Because of SymPy’s code review rules, this doesn’t mean that they are able to push their own code, but rather that they are able to push other people’s code, after review. This empowers them and encourages them to stick around. We also encourage students to review pull requests, and generally interact with the community during the summer. This new policy has been successful in keeping more students active after the summer.

Even so, we understand that the students are only being paid for the summer, and typically go back to school after the program is over, so we understand if some students don’t stay involved after the summer is over. We will not make it a requirement for students to stay involved, but we will indicate to students that we would prefer if they did.

Has your org been accepted as a mentoring org in Google Summer of Code before? [Yes or No]

Yes

Which years did your org participate in GSoC? [Checkboxes]

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

2008

2007

For each year your organization has participated, provide the counts of successful and total students. (e.g. 2016: 3/4) [500 characters]

2007: PSF, PSU, and Space Telescope Institute umbrellas. 5/5.

2008: PSF umbrella. 1/1.

2009: PSF and PSU umbrellas. 4/5.

2010: PSF and PSU umbrellas. 5/5.

2011: 9/9.

2012: 6/6.

2013: 7/7.

2014: 10/10.

2015: PSF and SciRuby unbrellas. 7/7.

2016: 8/8.

2017: 8/9.

2018: 7/7.

2019: 9/9

(The reason for the low fail rate is that we have a patch requirement and we only select students that we think are very good, returning slots to the pool if appropriate.)

If your org has applied for GSoC before but not been accepted, select the years: [Checkboxes]

2015

2010

2009

2008

2007

If you are a new organization to GSoC, is there a Google employee or previously participating organization who will vouch for you? If so, please enter their name, contact email, and relationship to your organization. (optional) [No more than 500 characters]

What year was your project started? [Number only]

2005

Where does your source code live? Please provide URLs that point to repositories, GitHub organizations, or a web page that describes how to get your source code.

http://github.com/sympy/sympy

**Is your organization part of any government? This will not affect your selection into the program. However, as stated in the Program Rules, we can not issue org stipends to orgs that are part of any government. This includes public universities, government research institutions, etc.. ** [Yes or No]

No

Anything else we should know (optional)? [No more than 500 characters]

Profile information

Information for the GSoC profile, which needs to be filled out along with the application

Public Profile

Name

SymPy

Website URL. http://www.yourproject.org/

https://www.sympy.org/

Tagline. A very short description of your organization. [80 characters]

Symbolic mathematics in Python

Upload logo [24-bit PNG, minimum height 256 pixels.]

Use make logo in the doc directory of the sympy repo and upload doc/_build/logo/sympy-notext-500px.png.

Background color hex

#EEE

(This is the same as the background on the website)

**Primary open source license. The open source license that your organization uses. ** [Popdown menu]

BSD 3-clause "New" or "Revised" License (BSD-3-Clause)

Organization Category. Select which category fits your organization best. Some organizations may fit into multiple categories, you must choose one. Used to help students filter the organization list. [Popdown menu]

Science and Medicine

Technology Tags. Enter keywords for the primary specific technologies your organization uses. Examples: Python, Javascript, MySQL, Hadoop, OpenGL, Arduino [Up to 5. Separated by commas]

Python

Topic Tags. Enter keywords for general topics that describe your organization. Examples: Vision, Robotics, Cloud, Graphics, Web, Real time [Up to 5. Separated by commas]

Mathematics, Symbolic mathematics, Physics

Ideas list. Enter the URL of your Ideas List page. This will be linked from your organization page.

https://github.com/sympy/sympy/wiki/GSoC-2020-Ideas

Descriptions

These descriptions will be displayed on the organization list page (Short Description) and on your organization's page (Long Description). More details.

Short Description [180 characters]

SymPy is a Python library for symbolic mathematics. It is a full-featured computer algebra system (CAS). SymPy is written entirely in Python.

Long Description [2000 characters]

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.

Students who are interested in applying should start with the application instructions https://github.com/sympy/sympy/wiki/GSoC-2020-Student-Instructions. Make special note of the patch requirement. Applications that are submitted without a pull request will be ignored.

Our ideas list is at https://github.com/sympy/sympy/wiki/GSoC-2020-Ideas. Please discuss your idea with us on our mailing list.

All applications should follow our application template https://github.com/sympy/sympy/wiki/GSoC-2020-Application-Template.

Application Instructions. Guidance for students on how to apply to your organization. Should include any prerequisites or requirements. You may wish to include a template or tips for their proposals. May include limited Markdown. [1500 characters]

Make sure you have read the application instructions https://github.com/sympy/sympy/wiki/GSoC-2020-Student-Instructions. Make special note of the patch requirement. Applications that are submitted without a pull request will be ignored.

All applications should follow our application template https://github.com/sympy/sympy/wiki/GSoC-2020-Application-Template.

Tags. Enter tags that students can select (one) from and apply to their own proposals to help organize them. Examples: New Feature, Optimization. You can also use these to designate "sub-organizations" if you are an umbrella organization. [Up to 10. Comma separated]

SymPy, SymEngine

Contact Methods.

You must complete at least one of the following three contact options.

Chat. Link to a web page that describes how to get on your IRC channel or other realtime communication system. [Must be a valid URL]

https://gitter.im/sympy/sympy

Mailing list. Link to a page describing how to join your organization's mailing list. [Must be a valid URL]

https://groups.google.com/forum/#!forum/sympy

General Email. A general purpose contact email for your organization. [Must be a valid email]

Links

Twitter URL (optional) [Must be a valid URL]

https://twitter.com/sympy

Blog URL (optional) [Must be a valid URL]

https://planet.sympy.org/

Links (This is not part of the application)