This is the third and final post in our blog series about the 2019 NumFOCUS Google Summer of Code students. (Part 1, Part 2)

In this post, we highlight some of the students working with NumFOCUS sponsored projects ShogunSymPy, and SunPy. (These projects are participating in GSoC directly as mentoring organizations, or through a different umbrella organization.)

GSoC with Shogun

The Shogun Machine Learning Toolbox is devoted to making machine learning tools available for free, to everyone. It provides efficient implementation of all standard ML algorithms. Shogun ensures that the underlying algorithms are transparent and accessible—a unified interface provides access via many popular programming languages, including C++, Python, Octave, R, Java, Lua, C#, and Ruby.

Ahmed Essam Eldeen

Ahmed Essam Eldeen is a Computer Engineering student in the Bachelors degree program at Cairo University. His hometown is Cairo, Egypt. This is his first time participating in GSoC.

Ahmed’s project is Detox++:

The aim of the project is to dive into the internals of Shogun, refactor and clean old code, and apply modern C++ principles. This includes:

  • Redesigning CFeatures to be immutable.
  • Turning CDistance and CKernel into stateless APIs.
  • Cleaning up and integrating CStringFeatures.
  • Replacing obsolete code with modern C++, and other general cleanups.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with Shogun?
I’m interested in the both Machine Learning and Software Engineering, so shogun was great choice for me.
I also loved the blog posts written by a previous NumFOCUS GSoCer.

Why did you choose your specific project topic?
I want to become a better software engineer, and my project would help me greatly with that.

How did you get involved in open source software?
This is my first time contributing to open source.

What are you expecting or hoping to get out of your GSoC experience?
Gaining knowledge and experience by interacting with my mentors. For this project to be the gateway through which I can be more involved in other open source projects.

What are your career goals? How do you see the GSoC program moving you towards them?
To be a competent software developer, and to do meaningful work with my skills.

GSoC with SymPy

SymPy is a library for symbolic mathematics, which means performing mathematical calculations exactly (as opposed to inexact numeric calculations from libraries such as NumPy). Its core features include basic arithmetic, simplification trigonometry, polynomials, expansion, functions, substitution, numbers, noncommutative symbols, and pattern matching.

Ishan Anirudh Joshi

Ishan Anirudh Joshi is a Manufacturing Processes and Automation Engineering student in the Bachelors degree program at Netaji Subhas Institute of Technology, Delhi. His hometown is New Delhi, India. This is his first time participating in GSoC.

Ishan’s project is Continuum Mechanics: Creating a Rich Beam Solver and Extending continuum mechanics module:

The project aims at creating a rich beam module and also extending the current continuum mechanics module by integrating cross-sectional geometries in beam module and enabling it to draw the basic diagram of the beam using matplotlib. Further, it aims at implementing Column Buckling and its corresponding calculations. Finally, Truss structure analysis using the method of joints has to be implemented as a part of the continuum mechanics module.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SymPy?
I am really fascinated by the symbolic nature of problem-solving implemented in SymPy and also by the fact that it is written purely in python.

Why did you choose your specific project topic?
I have been studying mechanics as a part of my course, and my project too deals with mechanics.
When I first encountered the continuum_mechanics module, I was really intrigued by the way it functions. I got to gain some additional knowledge on that subject. So I started contributing to it and chose to do a project in this module.

How did you get involved in open source software?
This is my first time contributing to open-source software. Although I have been a part of SymPy for a year now, I have not tried my hands on any other OSS.

What are you expecting or hoping to get out of your GSoC experience?
I believe that it will certainly broaden my spectrum of knowledge.

What are your career goals? How do you see the GSoC program moving you towards them?
I will probably be heading towards machine-learning and stuff, but surely will keep contributing to opensource.

Gagandeep Singh

Gagandeep Singh is a Computer Science and Engineering student in the Bachelors degree program at Indian Institute of Technology, Jodhpur. His hometown is Haridwar, Uttarakhand, India. This is his first time participating in GSoC.

Gagandeep’s project is Enhancement of Statistics Module:

I would divide my project into the following broad categories:

  1. Implementing additional multivariate distributions.
  2. Implementing Markov Chains, Random Walks, Bernoulli Process(extending PR #15058), and Poisson Process.
  3. Implementing Random Matrices.
  4. Implementing mechanism to export random variables to PyStan, PyMC3, NumPy, etc.
  5. Adding support for assumptions of dependence among random variables.
  6. Adding support to enhance result generation by statistics module.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SymPy?
The primary motivation is to enhance the statistics module so that the people working in that area can use SymPy easily for their requirements.

Why did you choose your specific project topic?
I chose Markov Chains, Stochastic Processes, Random Matrices because these are the most important areas in statistical literature and their implementations were not available in SymPy and this made a very great project for summers which motivated me to go for it.

How did you get involved in open source software?
I came to know about GSoC and while searching for a good organisation, I liked SymPy and started contributing to it. The quick response from the community kept me motivated and associated with the org.

What are you expecting or hoping to get out of your GSoC experience?
I think that my knowledge about python and statistics would be enhanced by this GSoC project.

What are your career goals? How do you see the GSoC program moving you towards them?
I haven’t decided yet, however, the primary goal is to get involved in mathematics wherever possible. I am open to any possibilities and opportunities.

Nikhil Maan

Nikhil Maan is a Computer Science and Engineering student in the Bachelors degree program at Amity University, Noida. His hometown is Charkhi Dadri, Haryana, India. This is his first time participating in GSoC.

Nikhil’s project is Creating a C and Fortran Parser for SymPy:

The project is aimed at making SymPy able to convert code from Fortran/C into SymPy expressions. After completion and implementation of this project, SymPy would be able to take a block of Fortran or C code. convert it into a sympy expression, perform all the desired operations and convert the code back to original language source code to be implemented in that language.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SymPy?
SymPy was very helpful to me in my work and helped me a lot in doing complex mathematics. But, it still lacked some features to take direct input from other languages which would help me and many other people a lot and save a lot more time. That was my inspiration for my project.

Why did you choose your specific project topic?
My project is to make SymPy able to convert C and Fortaran code directly into it’s syntax. I chose the project topic because it would be very useful and time-saving for me and many other and it can make SymPy integrable into other projects once the project is completely implemented.

How did you get involved in open source software?
I was introduced to Open-Source by my mentors and my University Open-Source community ALiAS. I have done small patches and smaller projects for open source organizations and communities. But this is my first time doing a major open source project.

What are you expecting or hoping to get out of your GSoC experience?
I am hoping to learn as much as I can as I progress in my project. I chose my project in the domain in which I had some previous knowledge but there is a lot to learn and I want to learn as much as I can and apply it to my project to make it even better.

What are your career goals? How do you see the GSoC program moving you towards them?
My career goals are to a Professor/Researcher after a getting Doctorate which includes learning a lot of things in a lot of fields. The program helps a lot by helping me connect to other people in the field and get some experience in real life projects. I can learn a lot and help in creating things which I would not have been able to do on my own.

“I hope my project would be as useful as I think it might be and it helps people save some time and effort from an already stressful and demanding programming environment. I would also like to thank everyone who has helped me or will do so in the future. To everyone else: Keep Learning and Keep Contributing :)”

Divyanshu Thakur

Divyanshu Thakur is a Computer Science student in the Bachelors degree program at Indian Institute of Information Technology Manipur. His hometown is Noida, UP, India. This is his first time participating in GSoC.

Divyanshu’s project is Group Theory:

The project aims at adding additional functionalities to Group Theory section of combinatorics module. Implementing functionalities like computation of Composition series, Abelian invarients, Polycyclic group, Quotient group, Intersection of subgroups, Hall subgroup, Modulo-pcgs and Group Automorphisms.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SymPy?
From the day, I started programming I really wanted to work on a project with a large code-base which can help thousands of people and with my keen interest in mathematics I landed to SymPy.

Why did you choose your specific project topic?
My project topic is Extending functionalities of Group Theory. In my third semester I had a course on group theory which involves pure mathematics and I liked it so much and I also thought it would be great to gain some experience in mathematical programming.

How did you get involved in open source software?
Initially I begin with Hacktoberfest then I started liking it so, I thought of contributing to some C++/Python organizations and then I came to know about SymPy.

What are you expecting or hoping to get out of your GSoC experience?
A great learning experience, collaborating with the people contributing to the organization from past 5 to 6 years can really be a great thing. Get started with real development which affects a lot of people. Develop a strong networking with people who are experts in the field which I wan to pursue.

What are your career goals? How do you see the GSoC program moving you towards them?
Even though, I haven’t thought that much about long term goals but for now I think I’m really interested in pursuing a full time software development role and open source contributions will definitely help a lot.

Arighna Chakrabarty

Arighna Chakrabarty is an Electronics and Communication Engineering student in the Bachelors degree program at IIT Guwahati. His hometown is Kolkata, India. This is his first time participating in GSoC.

Arighna’s project is Improving Series Expansions:

The goal of this project would be to improve the existing series package, and introduce other optimizable functionality and algorithms in the module. I would like to unify the various existing series expansions, and plan to give it a concrete structure for further development and improvement.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SymPy?
SymPy offers you to work in the beautiful field of mathematics, in probably the finest language in the technical world (Python) !! This probably is enough to work with these great guys.

Why did you choose your specific project topic?
Series are an integral aspect in mathematics, and it was something I read extensively in my freshmen year. So improving it was a motivating task for me.

How did you get involved in open source software?
Through some of my college seniors, who themselves were GSoCers.

What are you expecting or hoping to get out of your GSoC experience?
Great connections with the SymPy community, better coding skills, and a good furnished project !!

What are your career goals? How do you see the GSoC program moving you towards them?
As of now, I plan to be a cutting-edge software developer at some big tech organization. GSoC will help me understand what goes into writing proper code, which needs to be shipped, and which is being used by thousands of people.

GSoC with SunPy

SunPy is a Python-based software library that provides tools for performing research using direct observations of the Sun and Heliosphere.

Kris Stern

Kris Stern is an Astrophysics student in the Graduate program at The University of Hong Kong. Her hometown is Hong Kong SAR, China. This is her first time participating in GSoC.

Kris’s project is Add Time-dependent Instrument Response Function to IRISpy:

This project is about adding a very practical functionality to the IRISpy package which is built on top of Sunpy’s ndcube package. IRISpy provides functionalities for the analysis of observations from NASA’s Interface Region Imaging Spectrograph (IRIS) satellite which looks at UV emission from the solar chromosphere in particular. The proposed new features will give scientists far greater power and ability to perform IRIS data analysis in Python, as well as to make new discoveries regarding the energetics and dynamics of the solar chromosphere and transition region than previously could.

Learn more about her progress on her GSoC student blog.

What motivated you to apply for GSoC with SunPy?
I was motivated to apply for GSoC with NumFOCUS because I wanted to work on a project that has some relevance to my current university studies, which is observational astrophysics. Originally I have applied for both an AstroPy and a SunPy project, but in the end I was chosen by Google for the latter.

Why did you choose your specific project topic?
The project topic was recommended to me by my (then potential) mentor, because he had a feeling that I would be interested in some project that has to do with both software and instrumentation as applied in astrophysics. And he was right.

How did you get involved in open source software?
I started getting involved in open source software after reading an article in Medium about GSoC. But back then I was not particularly interested in applying for a spot in GSoC. I was more interested in honing my programming skills than that.

What are you expecting or hoping to get out of your GSoC experience?
I would like to complete my first project that potentially has some impact on the solar physics community through my participation in GSoC.

What are your career goals? How do you see the GSoC program moving you towards them?
I would like to become a software developer/engineer or data analyst/scientist in the near future. To that end, I would like to use my to-be-completed GSoC project to showcase my skills in coding.

“I really enjoyed my GSoC experience and would highly recommend it to someone with a similar background; that is, to someone who has some tech background at university but is not necessary pursuing a computer science/engineering degree.”

Yash Sharma

Yash Sharma is a Mathematics and Computer Science student in the Bachelors degree program at Indian Institute of Technology Kharagpur. His hometown is Kolkata, West Bengal, India. This is his first time participating in GSoC.

Yash’s project is Supporting APE14 in NDCube:

This project proposes to add the support for APE14 in NDCube, which is a SunPy-affiliated project.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SunPy?
The blend of Science, Mathematics and Computer Science is something which I relish a lot, so I wanted to try out my hand with a project under NumFOCUS organization, which is a leader in supporting famous Open Source projects for Academia and Data Science.

Why did you choose your specific project topic?
I was very much interested in Physics and Astronomy, and a few of my seniors had participated in SunPy as a GSoC student, so I had high expectations with this mentoring organization. Regarding the project that I am currently pursuing, I was really interested in API designing and working on a bleeding-edge codebase which requires being constantly on your toes, so I was very much interested in this project when it was released.

How did you get involved in open source software?
My college boosts a really good culture of Open Source, and I am extremely fortunate that I have been supported by seniors and society which spreads the culture of Open Source. I am a member of Kharagpur Open Source Society, which conducts workshop and small programs that makes the concept of Open Source really awesome (so a shoutout to KOSS!). I personally had been quite fascinated with Physics, but then life happened and I landed up with Mathematics. It is not that I don’t love my major, but I wanted to explore Physics more, so Open Source has provided me to explore more of this in an interactive way. I have also learned a lot with Open Source and met quite a lot of people, including some awesome mentors (yeah I am referring to Cadair aka, Stuart Mumford :P).

What are you expecting or hoping to get out of your GSoC experience?
My expectation with GSoC was getting to know, how to work on a big codebase and understanding your way out of it. Another thing which I had not realized earlier, but now I very much enforce, is having a good mentor. The responsibility of completing the project solely lies on the student, but the journey can be made for fascinating if the mentors are really approachable and challenge us at every moment. I have been really fortunate to have a mentor like Stuart Mumford and Dan Ryan, who has gone to lengths to help me out when I am stuck and have made the process of onboarding with the project quite smooth. I remember that Stuart getting all the materials arranged and maintaining a projects tab for NDCube, so it would be really easy to track and notify the people about the progress. These are small aspects, which make this journey all the more exciting and I hope I can collaborate with Stuart for some future projects later.

What are your career goals? How do you see the GSoC program moving you towards them?
As of now, I am very much interested in Software Development, so I consider GSoC as a very useful program to pursue a few more internships and reinforce my understanding of Software Development as a whole.

“This is something which is related to the period of contribution during GSoC phase is conducted.
I have seen a lot of articles sharing about getting into GSoC, but I have found really few articles regarding the successful completion of GSoC. While I might not compile a full-length article, these are some points which I observed/learned from my mentors, and hope to convey the readers –

1. Always arrange a tracking system and get your mentors notified about that, so it becomes tracking the project much easier – I remember discussing with Cadair about the different parts that we intended to complete, so this helps a lot.

 

2. Make sure that you push your changes to GitHub/GitLab or any other cloud-based VCS – I cannot stress this point more, as opening a PR and pushing the changes regularly helps the mentor in gauging the progress and providing inputs as and when required – I remember pushing a lot of changes when my mentors were busy, but to my surprise, they still found out time to review my PR, so my best bet is to push those changes to GitHub regularly.

 

3. Make sure that you communicate your understanding of the project with your mentor – This is an important aspect, as it helps the mentor is understanding the complexity of a project for the student and helps in cutting down/scaling up the goals of the project. It is better to promise less and deliver more, but make sure that you fully understand the complexity and discuss with the mentor, rather than pursuing the project with an additional burden on your side.”

Vishnunarayan K i

Vishnunarayan K i is a Computer Science student in the Bachelors degree program at Indian Institute of Technology, Indore. His hometown is Thrissur, Kerala, India. This is his second time participating in GSoC!

Vishnunarayan’s project is Remote Data for SunPy:

Some functionality in SunPy or in affiliated packages is going to need access to data files on remote (HTTP) servers. Examples of this include data provided by instrument teams relating to the calibrations or performance of the instruments, these kind of data are highly likely to change with time.

This project needs to be designed and implemented under the assumptions that SunPy has no control over the data on these servers, and that files on the servers may be replaced with different files with the same name.

Learn more about his progress on his GSoC student blog.

What motivated you to apply for GSoC with SunPy?
I had a good time last year. The mentors are super friendly and understanding.

Why did you choose your specific project topic?
My project topic is implementing a remote data manager for SunPy. This is something I always wanted to work on. I was interested in this project last year too, when it was first proposed.

What are you expecting or hoping to get out of your GSoC experience?
Experience mostly. I’ve made a lot of good friends over the 2 months of coding.

“Love FOSS. Peace.”

NumFOCUS Sponsored Projects

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Astropy logo
Econ-ARK logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
Dask logo
mlpack logo

 

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Econ-ARK logo
Astropy logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
Dask logo
mlpack logo

 

 

 

 

pandas logo
Jupyter
Matplotlib
SciPy logo
Julia logo
Bokeh logo
Astropy logo
Econ-ARK logo
Shogun logo
SymPy
Cantera logo
xarray
Blosc
MathJax logo
mlpack logo