I want to apply for gsoc2019 for the project" Trace estimation of the inverse". It’s my first time so i need mentorship in all possible ways. What’s the first step i need to take? I am have knowledge of c/c++.

Siddharth sameer

# Mentorship for gsoc2019

**mohamed82008**#2

Hi!

First mentor here, glad you are interested in this project! First thing you need in this project is obviously some working knowledge of Julia. You don’t need to be an expert, but you need to know enough. You can find many resources here.

You can join the Julia Slack and join the `#jsoc`

and `#linear-algebra`

channels which are relevant to this project. In there, you can ask questions and people will chime in to answer.

Now more on the project, as mentioned in the description of the project idea, you will need some knowledge of and aptitude for linear algebra to be able to understand the papers that describe the trace estimation algorithms. You can start by reading the paper linked there on the word “applications”, and follow its references. The second thing you need is the ability to translate the algorithms written in papers to Julia code. The implementations need to be correct and also somewhat performant, at least as far as the common gotchas are concerned. Being able to highly optimize the code is not a requirement; this is a skill you can improve during the project by getting comments from mentors and other reviewers of your code.

Last but not least, it’s important to understand ~~that Google is the one that picks the students~~ (edit: see the correction below). So you will need to showcase yourself as a strong candidate who can complete the project you chose. Having some relevant open source contributions, e.g. a simple prototype of a trace estimation algorithm in Julia, can increase your chances of getting accepted. You will also need to write a proposal describing the details of what you are planning to do over the 3 months of GSoC. Think of this as an extended description of the project idea with more details about yourself and the project, and a planned timeline. If you have more questions, you can ask on the `#jsoc`

channel on Slack or ping me.

Good luck!

That’s not true. Google picks the number of slots, the Julia organization then chooses students to fill the slots. This matters a lot because if you start your project early, putting in PRs and demonstrating that you can do open source development, we will ask your mentor and directly know how you’re doing and that will be impactful in the final choice. So don’t think about the proposal as your entire application, get into the community and start being an open source contributor!

**mohamed82008**#4

Thanks for the correction. I remember hearing this somewhere, but can’t remember where.

So basically i need to write a sample code for trace estimation in Julia and submit it with my proposal??

Start discussing with your potential mentor. But generally something I like to see is:

- Some code starting towards the project, so yes sample trace estimation
- Some PR showing that you understand open source development, so some bugfix in IterativeSolvers.jl.

**mohamed82008**#7

Disclaimer: there is another student interested in this project, so we need to make sure you are not proposing to implement the exact same algorithms. PM me here or on Slack to discuss it more.

**Tamas_Papp**#11

In general, I think the best way to do this to make a public repository (eg on Github) for new code that does not fit into an existing library, or even better, contributing a PR to an existing package.