Skip to content

GSoC_application_tips

Heiko Strathmann edited this page Mar 30, 2017 · 6 revisions

This is an - as yet - unordered collection of things that we frequently encounter in applications. If you can avoid them/ follow the advice here, you can easily improve your application.

Be specific

  • "I will try to use predict/classify/fit X"

better:

  • "I will use Shogun's algorithm A, to predict/classify/fit X based on the features y1, y2 and y3 of Y."

even better:

Provide a proof of concept/example

Whenever you say something like the statement above, it would be great if you could back the statement up with some example or proof of concept. That could be a plot or even using Shogun in a very simple way, e.g. an IPython notebook. It does not have to be complicated (could be as simple a simple fit/clustering, comparing two histograms, etc) - just something to show that what you're suggesting makes sense. This would make a great addition for the application.

Please don't put statements as:

  • I would use libraries XYZ to make interactive visualizations. For the back-end, I’d use ABC.

Instead, make a mock-up, or send proof of concept code for your backend.

Timeline/Deliverables

All deliverables should obey the be specific and provide a proof of concept rule. In particular with deliverables, they should also be REALISTIC, and for this, it helps to be as concrete as possible - it will structure your project and it will be a piece of cake to meet our expectations and pass the evaluation if you know exactly what you need to do.

Sometimes people are afraid that they will be judged on not meeting concrete deliverables and therefore consider it safer to state them only vaguely. This is a misconception and might be interpreted as a lack of thought that you put into your application - if you think clearly about your project and discuss with your mentors, you will be able to come up with realistic, concrete deliverables and you will be able to meet them. If something really takes longer on the way due to unexpected technical problems - we are all humans and can talk to each other. If there is a good reason for it, some of the deliverables might change along the way. But they need to be concrete to begin with.

Planning vs doing

GSoC is the time to do things. All planning / exploring / (initial) analysis should be happening before GSoC starts, or even better before the application deadline. Please don't put things such as

  • week 1-3: Exploring datasets
  • Exploring which algorithm is suitable for my problem
  • Designing class structure for framework addition

Deliverables.

Please put very explicit deliverables for each of the 3 evaluations. Try to be concrete rather than vague. The better this is planned, the smoother the evaluations will be.

Examples

  • Merged implementation of algorithm X
  • A polished Readme on topic Y
  • A at least 3-page blog post covering XYZ
  • Replaced all X in Shogun by Y
Clone this wiki locally