Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Google Summer of Code 2018 Projects
Students, we want you!
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.
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.
- User experience project
- Efficient ML: Finding the bad guys
- Continuous detoxification
- Distribution: web assembly, amalgamation, packaging
- Inside the black box
- Model selection v2.0
- Integrating Arrow
- Integration with frameworks for model deployments
- Shogun as a wrapper (Keras, XGBoost, Global optimization)
- Interfaces: Matlab & NodeJS
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)
- See https://github.com/shogun-toolbox/shogun/wiki/GSoC_2017_applications
- We come up with the project, to change last year
- We know the analysis is better
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 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)
- Smart pointer
- see also https://github.com/shogun-toolbox/shogun/wiki/GSoC_2017_detox
Interfaces / typemaps (Fernando)
- Node JS
- See https://github.com/shogun-toolbox/shogun/wiki/GSoC_2017_project_swig
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