Skip to content

table of proposed coding projects

Apostolos Chalkis edited this page Mar 24, 2023 · 20 revisions

⚠️ NOTE

This year contributors will have to choose between a ~175 hours medium-sized project or ~350 hours large project. For all the changes that GSoC 2023 brings refer to the official website.


The two main repositories of GeomScale is volesti (C++ implementation and R interface) and dingo (Python package that uses C++ functions 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 Hours
Randomized SDP solver R&D C++/R 350
More efficient volume computation R&D C++ 350
A comparative study of NUTS-HMC vs CRHMC R&D C++/Python 350
Index Replication using Portfolio Optimization Methods Dev R/C++ 350
Randomized geometric tools for anomaly detection in stock markets Dev C++/R 175
Exclude Lpsolve from R and C++ interfaces of volesti Dev C++/R 175
Move R interface of volesti to a new repository Dev R 175
Memory allocation in facet redundancy removal and parallelism in dingo Dev Python 175
Support exponential sampling from the space of steady states of a metabolic network Dev C++/Python 175

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 him 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?