GSoC 2019 Organization Application - sympy/sympy GitHub Wiki

This is based on the Google Summer of Code 2018 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.

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 70 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 11 mentors signed up (https://github.com/sympy/sympy/wiki/gsoc-2019-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. Many mentors have also mentored 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 has 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 the mid- or final 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]

Typically students are active enough during the summer that they are entrusted with push access the SymPy repository by the end of the summer. 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, which makes them more likely to stay involved longer.

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.

This year, 8 out of the 11 people who are signed up as mentors are former students.

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]

2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018

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

(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]

2007, 2008, 2009, 2010, 2015

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

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

Links (This is not part of the application)