Skip to content

table of proposed coding projects

Apostolos Chalkis edited this page Mar 15, 2024 · 21 revisions

⚠️ NOTE

This year contributors will have to choose between a ~90 hours small-sized project (new), ~175 hours medium-sized project or ~350 hours large project. For more information please read the official gsoc website.


The two main repositories of GeomScale is volesti (C++ implementation and R interface) and dingo (Python package that uses C++ functions of volesti via Cython). Proposed projects are related to those repositories. There are two types of coding projects: research and development (marked as R&D in the table below) and pure development (marked as Dev in the table below). R&D projects needs a deep understanding of the mathematical background in addition to the implementation details that are needed by the Dev projects. Typically the former is more demanding than the later but this also depends on the background of the contributor.


Mentors, please edit this wiki page, and add your ideas to the table below.

Contributors, please look for a project that interests you in the table below. Before emailing project mentors, please do at least one project test and post a link to your solution on the proposal's wiki page.

Proposal Type Languages Size Hours
Randomized SDP solver R&D C++/R Large 350
More efficient volume computation R&D C++ Large 350
Exclude Lpsolve from R and C++ interfaces of volesti Dev C++/R Medium 175
Randomized geometric tools for anomaly detection in stock markets Dev C++/R Medium 175
Leveraging the increased statistical value of flux sampling Dev Python Large 350
Metabolic interactions inference using community flux sampling R&D Python Large 350
Machine Learning and Optimization for Finance: Index Replication R&D Python/R Large 350
Modernize Linear Program solver interface in dingo Dev Python Medium 175
Improve the Cpp implementation of rounding method in volesti library Dev C++ Medium 175
Develop a new rounding method for convex polytopes Dev C++ Medium 175
Partitioning the computational load of Apothesis into threads Dev C++ Medium 175
Counting linear extensions with volume computation R&D C++ Large 350
Expose sampling and volume on spectrahedra to R interface of volesti Dev R/Rcpp Medium 175
Expose autodiff to R interface of volesti Dev R/Rcpp Medium 175
Improve sampling routines for Correlation matrices and R interface Dev C++ Small 90

All contributor applications will be discussed by the GeomScale mentor community, and proposals will be ranked considering factors such as quality, contributor's ability to successfully finish the project, and impact for the GeomScale project. A finite number of slots will be granted to GeomScale by Google, thus, only the best proposals will get chosen. This implies that it is possible that some ideas will not become GSoC projects even if they are supported by a good contributor application.

Contributors, if you are interested in a coding project related to GeomScale that is not listed above, please try to find mentors by posting a description of your project idea on the gitter. If you find mentors, feel free to add your project idea to this wiki and write an application.

Information Candidates Should Supply

The application process has several steps. Before contacting anybody verifies that you are eligible. The next step is to contact the mentor of the project you are interested in. You have to convince them that you are the right person to get the job done. The next step is to work out more details and to contact the mentors or the GeomScale org by providing the following information by email or by gitter.

  • Project:

    • Select a project in the list and provide your personal and detailed description. If you wish to work on another idea of your own, we are pretty open as long as this serves the goal of consolidating GeomScale as a whole.
    • Provide a proposal of a technical solution with your envisioned methodology. The more detailed the better.
    • Explain how the solution will be available to the user, in which form. Do not forget the documentation, unitary tests, and cross-platform aspects.
    • Provide a realistic schedule with objectives (one every two weeks for example) and deadlines. Focus on mid-term objectives as well as on the final evaluation.
  • Personal data:

    • First name, last name, affiliation, and geographical location.
    • A brief list of the main studies and programming courses attended, with ranking.
    • List of the most important software projects contributed and success.
    • Which are your best skills in terms of programming and scientific computing?
    • In general what is your taste in terms of programming? language, methodology, teamwork, etc.
    • Is there anything that prevents you from working full time on the project during the program period?
    • How do you see your involvement after the program ends? Do you see yourself pushing the project further, or do you see yourself contributing to other GeomScale projects?
    • Are you more interested in the theory/scientific aspect of GeomScale, or do you feel more like a hacker?