Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2015-02-01 10:04:47
Size: 583
Editor: vdelecroix
Comment:
Revision 8 as of 2015-02-08 17:10:36
Size: 2168
Editor: vdelecroix
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Projects and ideas for GSoC 2015 = = Project ideas for GSoC 2015 for Sage =
Line 3: Line 3:
 * new notebook modes that force execution from top to bottom for reproducible computations
 * native GUI ([[https://code.google.com/p/spyderlib/|Spyder]]
 * Generic framework to choose between different implementations of algorithms. In Sage there are various places where we have several possibilities to execute a task (e.g. calling pari or gap). It would be interesting to have a way of choosing the default parameters by performing benchmarkings at build time. That would also allow to check coherency between various implementations.

== Notebook mode with execution from top to bottom ==

In the current notebook (both Sage notebook and IPython notebook) the cells can be executed in any order. From a teaching point of view this is terrible and from a scientific point of view this leads to highly non reproducible computations.

The purpose of this task is to have a new mode for the IPython notebook that would force computations from top to bottom. If a cell is executed, then the state in which it is executed must be the one you obtain by executing all the cells above it. In order to make it work, one needs to save the Python state after each cell.

note: this is note completely Sage oriented... (see with IPython people)

== Native GUI ==

Adapt [[https://code.google.com/p/spyderlib/|Spyder]] to work with Sage.

See also [[https://groups.google.com/forum/#!topic/sage-devel/87Rlenvcfrs|this thread on sage-devel]].

== generic dispatcher ==

In Sage there are various places where we have to choose between several possibilities (e.g. calling pari or gap or a native sage function, different algorithms available). This is often related to the presence of the keyword ''algorithm'' or ''method'' in Sage method/function. The aim of this task is to build a generic dispatcher that would choose depending on the parameters the best solution available. The solution must be very light and not affect performance. The dispatch threshold must be decided at build time. This generic dispatcher could also be used to check coherency between various implementations.

Note that it is different from what is called multimethods which is a dispatcher depending on the input type. Here we consider a dispatcher that might also depend on the input values.

 * competence: good knowledge of Python and notions of Cython and C
 * (draft) timeline:
  1. write a simple prototype of generic dispatcher
  2. identify Sage functions/methods that could benefit from the dispatcher and test it
  3. release a first candidate for the dispatcher
  4. Sage integration

== Android App ==

== iOS App ==

== SageMathCloud ==

T.B.A.

Project ideas for GSoC 2015 for Sage

Notebook mode with execution from top to bottom

In the current notebook (both Sage notebook and IPython notebook) the cells can be executed in any order. From a teaching point of view this is terrible and from a scientific point of view this leads to highly non reproducible computations.

The purpose of this task is to have a new mode for the IPython notebook that would force computations from top to bottom. If a cell is executed, then the state in which it is executed must be the one you obtain by executing all the cells above it. In order to make it work, one needs to save the Python state after each cell.

note: this is note completely Sage oriented... (see with IPython people)

Native GUI

Adapt Spyder to work with Sage.

See also this thread on sage-devel.

generic dispatcher

In Sage there are various places where we have to choose between several possibilities (e.g. calling pari or gap or a native sage function, different algorithms available). This is often related to the presence of the keyword algorithm or method in Sage method/function. The aim of this task is to build a generic dispatcher that would choose depending on the parameters the best solution available. The solution must be very light and not affect performance. The dispatch threshold must be decided at build time. This generic dispatcher could also be used to check coherency between various implementations.

Note that it is different from what is called multimethods which is a dispatcher depending on the input type. Here we consider a dispatcher that might also depend on the input values.

  • competence: good knowledge of Python and notions of Cython and C
  • (draft) timeline:
    1. write a simple prototype of generic dispatcher
    2. identify Sage functions/methods that could benefit from the dispatcher and test it
    3. release a first candidate for the dispatcher
    4. Sage integration

Android App

iOS App

SageMathCloud

T.B.A.

GSoC/2015 (last edited 2015-03-16 20:44:44 by schilly)