Google is hosting its Google Summer of Code program again in 2016. During this program student participants will contributed code to various open source projects from May to August. Successful students will receive a stipend of 5,500 USD from Google for their contributions. During March 14-25 students will apply with their project ideas at the participating organizations. Successful applicants will be paired with mentors from the organizations that will guide and support them during their projects.

The list of open source organizations is very diverse. There should be a matching organization for everyone interested in contributing to open source code. Among them are various organizations with open source projects involving mathematics, or computational science and engineering (CSE). This is a very good opportunity for students interested in these fields to gain some or further experience in scientific programming. To help students with selecting a matching organization, you can find a short description of organizations with projects related to these fields below. Please note that this list might not exhaustive and the selection even be rather subjective. Basically, it contains all the organization that I would have been interested in when I was studying these fields.

## DUNE

*DISCLAIMER: I am one of the core developers of this project and serving as
a backup admin.*

DUNE, the distributed and unified numerics environment, is a modular toolbox for solving partial differential equations (PDE) with grid-based methods.It supports the easy implementation of methods like Finite Elements, Discontinuous Galerkin, Finite Volumes, and Finite Differences.

The underlying idea of DUNE is to create slim interfaces allowing an efficient use of legacy and/or new libraries. Modern C++ programming techniques enable different implementations of the same concept, i.e. grids or solvers, using a common interface at a low overhead. Thus DUNE ensures efficiency in scientific computations and supports high-performance computing applications.

### Some Project Ideas

- CMake super module building
- Write a grid backend based on the p4est library
- Dynamic load-balancing for UGGrid
- Python bindings for the DUNE grid interface
- Spline geometries for isogeometric analysis

More information can be found on the DUNE ideas project page

## CSE@TU Wien

umbrella organization CSE@TU Wien acts as an umbrella organization for several computational science and engineering open source software packages (e.g. ViennaMesh, ).

### Some Project Ideas

- Matlab Simulink connector for Colibri (Smart Building Energy Management)
- Support for various file formats in Vienna Mesh
- Support for mesh coarsening in Vienna Mesh

More information can be found on the CSE@TU Wien ideas project page

## Free Your Numbers

GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.

### Some project ideas

- ode15s : Matlab Compatible DAE solver
- Generalized eigenvalue problem
- Improve iterative methods for sparse linear systems
- ...

More information can be found on the Free your Numbers ideas project page

## Scilab

Scilab is a high level programming language with hundreds of mathematical functions. It supports Mathematics & Simulation, 2D and 3D visualization, optimization, and much more.

### Some Project Ideas

- Build a freefem module
- Develop a partial differential equations module
- Provide statistical visualization functions
- ...

More information can be found on the Scilab ideas project page

## CERN SFT

CERN SFT provides the software used for the experiments at CERN. This includes the software for operating the Large Hadron Collider (LHC) and conducting experiments with it.

### Some Project Ideas

- Extend clad with automatics differentiation
- Improving TMVA in Machine Learning
- Optimize Sixtrack Tracking Library

More information can be found on the CERN SFT ideas project page

## Sage

SageMath combines numerous open-source software libraries under one umbrella and contains many unique and novice algorithms built on top of these libraries. Additionally to the command-line and programming-library interface, its primary user interface is a dynamic self-hosted website.

### Some Project Ideas

- Hyperplane arrangements
- Wrap/Expose more functionalities from Singular
- Extending Matroid Theory functionality
- Moduli space of dynamical systems
- ...

More ideas can be found on the SAGE ideas page

## Ascend

ASCEND is a free open-source software program for solving small to very large mathematical models. ASCEND can solve systems of non-linear equations, linear and nonlinear optimization problems, and dynamic systems expressed in the form of differential/algebraic equations.

### Some Project ideas

- Parallel optimization solvers for ASCEND
- Gibbs equilibrium reactor model
- ...

More information can be found on the ASCEND ideas page

## NRNB

The National Resource for Network Biology, NRNB organizes the development of free, open source software technologies to enable network-based visualization, analysis, and biomedical discovery.

### Some Project Ideas

- Machine learning
- Multithreading
- GPU-rendering engine
- Clustering and graph-based algorithms
- ...

More information can be found on the NRNB ideas project page.

## SymPy

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.

## Some project ideas

- Risch algorithm for symbolic integration
- Cylindrical algebraic decomposition
- Symbolic quantum mechanics
- Classical Mechanics: Implement an O(N) Equation of Motions Method
- ...

More information can be found on the SymPy ideas project page

## SciRuby

SciRuby aims at providing a computational research infrastructure for the Ruby programming language. It maintains libraries for linear algebra, statistics, visualization, and more.

### Some Project Ideas

- Port NMatrix to JRuby
- Supervised Machine Learning
- TensorFlow API
- Ruby matplotlib
- ...

More information can be found on the SciRuby ideas project page