Summer of Code - Getting Started: Difference between revisions

Remove Python projects until mentors respond again.
(Remove Python projects until mentors respond again.)
Line 86: Line 86:
* '''Potential mentors'''
* '''Potential mentors'''
: Francesco Faccio, [https://octave.discourse.group/u/cdf Carlo de Falco], [https://octave.discourse.group/u/marco_caliari Marco Caliari], Jacopo Corno, [https://octave.discourse.group/u/schoeps Sebastian Schöps]
: Francesco Faccio, [https://octave.discourse.group/u/cdf Carlo de Falco], [https://octave.discourse.group/u/marco_caliari Marco Caliari], Jacopo Corno, [https://octave.discourse.group/u/schoeps Sebastian Schöps]
== Using Python within Octave ==
[[Pythonic]] allows one to call Python functions and interact with Python objects from within Octave .m file code and from the Octave command line interface.  Pythonic may eventually not be a separate package, but rather a core feature of Octave.  This project aims to improve Pythonic with the goal of making the package more stable, maintainable, and full-featured.
Based on a previous summer project related to Pythonic, this work will consist of fast-paced collaborative software development based on tackling the [https://gitlab.com/mtmiller/octave-pythonic/issues Pythonic issue list].  You would also be expected to participate in software design decisions and discussion, as well as improve documentation, doctests, and unit tests.  As an example of the sorts of decisions being made, note that Octave indexes from 1 whereas Python typically indexes from 0; in which cases is it appropriate to make this transparent to the user?
* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
: ~350 hours (medium)
* '''Required skills'''
: Octave, C/C++, Python
* '''Potential mentors'''
: [https://octave.discourse.group/u/mtmiller Mike Miller], [https://octave.discourse.group/u/cbm Colin B. Macdonald], Abhinav Tripathi


== Improve TIFF image support ==
== Improve TIFF image support ==
Line 164: Line 151:
* '''Potential mentors'''
* '''Potential mentors'''
: [https://octave.discourse.group/u/siko1056 Kai], [https://octave.discourse.group/u/Abdallah_Elshamy Abdallah]
: [https://octave.discourse.group/u/siko1056 Kai], [https://octave.discourse.group/u/Abdallah_Elshamy Abdallah]
== Symbolic package ==
The [[Symbolic package]] provides symbolic computing and other [https://en.wikipedia.org/wiki/Computer_algebra_system computer algebra system] tools.  The main component of Symbolic is a pure m-file class "@sym" which uses the Python package [https://www.sympy.org SymPy] to do (most of) the actual computations.  The package aims to expose the full functionality of SymPy while also providing a high level of compatibility with the Matlab Symbolic Math Toolbox.  The Symbolic package requires communication between Octave and Python.  In 2016 another GSoC project successfully re-implemented this communication using the new [[Pythonic|Pythonic package]].
This project proposes to go further: instead of using Pythonic only for the communication layer, we'll use it throughout the Symbolic project.  For example, we might make "@sym" a subclass of "@pyobject".  We also could stop using the "python_cmd" interface and use Pythonic directly from methods.  The main goal was already mentioned: to expose the ''full functionality'' of SymPy.  For example, we would allow OO-style method calls such as <code>f.diff(x)</code> instead of <code>diff(f, x)</code>.
* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
: ~350 hours (medium)
* '''Required skills'''
: Octave, C/C++, Python; object-oriented programming (OOP) in Octave
* '''Potential mentors'''
: [https://octave.discourse.group/u/cbm Colin B. Macdonald], [https://octave.discourse.group/u/mtmiller Mike Miller], Abhinav Tripathi


== TISEAN package ==
== TISEAN package ==