Skip to content

Google Summer of Code 2019 Projects

Heiko Strathmann edited this page Jan 13, 2019 · 19 revisions

Students, we want you!

Shogun will be applying as a mentoring organization for Google Summer of Code 2019.

This is our ideas page. Join the Shogun team for a summer full of code, learning, and fun. Be part of our diverse community and join efforts into keeping the project buzzing :)

We explicitly encourage female students to apply.

To get a feeling for what GSoC with Shogun is about, see our follow-up blog posts by developers and students. To get a feeling what the Shogun community is up to, check out the blog about our last year's hackathon!.

How to get started?

First step to get involved: read how to get involved. THE best way to start is to solve entrance tasks. We do not consider students who have not contributed any kind of code in the run up to GSoC. In addition to your "technical application", we have collected some tips for your written application.

The best tip for your application: rather than contacting us and asking what to do, send a patch! :)

Please do not contact Shogun developers directly, but always use the mailing list, GitHub, or StackOverflow.

See here for the list of participating mentors (and soon students).

Main focus of this year's GSoC

As in 2016, 2017, and 2018 this year's GSoC is about improving and showcasing Shogun, picking up the red lines from previous years (some exceptions allowed). One new theme will be the integration of Shogun with other open-source ML/AI/data tools.

OUR goal, apart from improving Shogun, is to recruit new long-term developers. If you can show us that you are likely to become a regular contributor for Shogun (by getting involved early, showing curiosity beyond your project, getting involved in work on releases, answering other users' questions), that will supercharge your chances getting selected and delivering a kick-ass project.

For this year's GSoC, we

  • Focus on usability: We want to make Shogun easier to use for end-users, algorithm developers. This means working on user-API, documentation, error handling, default parameters, and examples. We want to make it easier for scientist developers to write new algorithms. This means working on modernizing the core framework and the internal API, but also includes adding new interfaces, and working on a plugin-based architecture. A new theme will be working on integrating Shogun with existing standards that rose during the last few years. Finally, we want to continue on removing "bad implementations", algorithms that either crash, are slow, or otherwise unreliable.
  • Focus on students: We aim to have fewer students (aiming at 3-4 core projects + 1-2 application projects!) - intense mentoring, interaction between students, blogging and documenting for individual students.
  • Focus on applications: Despite having had only limited success, we are still trying to push the idea of accepting projects that use Shogun to solve some real life ML problems in a self-contained project. If you have a cool idea, let us know. Due to problems in earlier years, we will however set the bars higher.

Community efforts!

In addition to the individual projects, all students will be required to:

  • adding to our example/testing system on a weekly basis: http://shogun.ml/examples
  • peer-review a fellow student's work in the middle and at the end of GSoC
  • work on cutting down our ever growing issue list on a weekly basis
  • Write weekly blog posts
  • have a good time web-socializing with the other students

What we expect

GSoC is a marathon, not a sprint, and we expect good performance over the whole project. This means that you are in daily contact with the community and that you work 40 hours per week (you are paid after all!) We have compiled a list of deliverables that every student will have to satisfy. Finally, we really would like you to stay around after GSoC.

Projects

Improvements

Applications

Framework

Algorithms

Note that projects extending Shogun have a lower priority than projects improving Shogun. If you are really keen and can show that you are the right person, we might consider (max) one project here.

Last year's projects

If you find something that excites you in last year's projects, feel free to contact us about that.

Appendix: Brainstormed ideas list (collected at hackathon)

Data project

Meta notebook / documentation / website (Esben)

  • Generate notebooks just like the meta examples
  • Plotting might be cool
  • Bidirectional linking in the user API<->meta examples
  • Even for people who are interested in graphic / web design

JS demos for website (Sören)

Arrow (Sergey)

  • Arrow buffer as input for features

Benchmarks & speed-ups (with MLPack)

Feature refactor (Michele likes to mentor)

  • gist of Michele
  • immutable features
  • more iterators
  • linalg types (free)
  • using linalg shogun wide

Inside the black box (Giovanni)

  • open the black box of the c++-call
  • parameters changing (RxxReact)
  • Progress bar
  • stoppable algorithms
  • base class changes (not all algorithms inherit from)

Detox++ (Pan)

Interfaces / typemaps (Fernando)

Base ML interface, separating the interface from C++ api (Heiko)

  • ...

Web assembly (Viktor)

  • Run Shogun in da browser

Keras integration under Shogun Machine /Transform (Sergey, Viktor)

  • need to link all the different backends
Clone this wiki locally