Skip to content

Google Summer of Code 2018 Projects

Heiko Strathmann edited this page Feb 14, 2018 · 39 revisions

Students, we want you!

Good news! Our umbrella organisation NumFOCUS has been accepted to GSoC 2018, and we will be participating as part of them this year. Students will need to apply directly to NumFOCUS, see here.

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 an overview of our projects and follow-up blog posts by developers and students. To get to know the Shogun community, check out the blog about our recent 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.

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 and 2017, this year's GSoC is about improving and showcasing Shogun, rather than extending it (exceptions allowed). We mainly want to recruit new long-term developers.

For this year's GSoC, we

  • Focus on usability: We want to make Shogun easier to use for end-users. This means working on user-API, documentation, error handling, default parameters, and examples. We want to make it easier for scientific users 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. See here for a high-level roadmap for 2018. Finally, we want to work 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!) - more intense mentoring, interaction between students, blogging and documenting for individual students.
  • Focus on applications: We would like to use Shogun to solve some real life ML problems in a self-contained project. If you have a cool idea, let us know.

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