Summer of Code - Getting Started: Difference between revisions

→‎Suggested projects: Unify project outline.
(→‎Suggested projects: Unify project outline.)
Line 70: Line 70:


* Implement a better function for selecting consistent initial conditions compatible with Matlab's decic.m. The algorithm to use is described [http://faculty.smu.edu/shampine/cic.pdf here]
* Implement a better function for selecting consistent initial conditions compatible with Matlab's decic.m. The algorithm to use is described [http://faculty.smu.edu/shampine/cic.pdf here]
* make ode15{i,s} work with datatypes other than double
* make ode15{i,s} work with datatypes other than double
* improve interpolation at intermediate time steps.
* improve interpolation at intermediate time steps.
* general code profiling and optimization  
* general code profiling and optimization  


Line 82: Line 79:
   
   
* '''Required skills'''
* '''Required skills'''
: C++; C; familiarity with numerical methods for DAEs; Basic knowledge of makefiles and/or autotools.
: Knowledge of Octave, C/C++; familiarity with numerical methods for DAEs
* '''Difficulty'''
: Medium.
* '''Potential mentors'''
* '''Potential mentors'''
: Francesco Faccio, Carlo de Falco, Marco Caliari, Jacopo Corno, Sebastian Schöps
: Francesco Faccio, Carlo de Falco, Marco Caliari, Jacopo Corno, Sebastian Schöps
Line 94: Line 89:
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?
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?


* '''Mentors'''
* '''Required skills'''
: Mike Miller, Colin B. Macdonald, Abhinav Tripathi, others?
: Knowledge of Octave, C/C++, Python
* '''Potential mentors'''
: Mike Miller, Colin B. Macdonald, Abhinav Tripathi


== Improve TIFF image support ==
== Improve TIFF image support ==
Line 110: Line 107:


* '''Required skills'''
* '''Required skills'''
: Knowledge of Octave, C++ and C.
: Knowledge of Octave, C/C++
* '''Difficulty'''
* '''Potential mentors'''
: Medium.
* '''Potential mentor'''
: Carnë Draug
: Carnë Draug


Line 120: Line 115:
Octave currently provides supports for polar axes by using a Cartesian 2-D axes and adding a significant number of properties and callback listeners to get things to work.  What is needed is the implementation of a dedicated "polaraxes" object in C++.  This will require creating a new fundamental graphics object type, and programming in C++/OpenGL to render the object.  When "polaraxes" exists as an object type, then m-files will be written to access them, including polaraxes.m, polarplot.m, rticks.m, rticklabels.m, thetaticks, thetaticklabels.m, rlim.m, thetalim.m.  This relates to bug {{bug|49804}}.
Octave currently provides supports for polar axes by using a Cartesian 2-D axes and adding a significant number of properties and callback listeners to get things to work.  What is needed is the implementation of a dedicated "polaraxes" object in C++.  This will require creating a new fundamental graphics object type, and programming in C++/OpenGL to render the object.  When "polaraxes" exists as an object type, then m-files will be written to access them, including polaraxes.m, polarplot.m, rticks.m, rticklabels.m, thetaticks, thetaticklabels.m, rlim.m, thetalim.m.  This relates to bug {{bug|49804}}.


* '''Minimum requirements'''
* '''Required skills'''
: Ability to read and write C++ code.  Ability to read and write Octave code.  Experience with OpenGL programming is optional.
: Knowledge of Octave, C/C++; optional experience with OpenGL programming
* '''Difficulty'''
* '''Potential mentors'''
: Medium.
* '''Mentor'''
: Rik  
: Rik  


Line 140: Line 133:


* '''Required skills'''
* '''Required skills'''
: m-file scripting, C, C++, and FORTRAN API knowledge.
: Knowledge of Octave, C/C++; FORTRAN API knowledge
* '''Difficulty'''
* '''Potential mentors'''
: easy/medium
* '''Mentor'''
: [[User:KaKiLa|KaKiLa]]
: [[User:KaKiLa|KaKiLa]]


Line 154: Line 145:
* '''Required skills'''
* '''Required skills'''
: OO-programming with m-files, Python, and possibly C/C++ for improving Pythonic (if needed).
: OO-programming with m-files, Python, and possibly C/C++ for improving Pythonic (if needed).
* '''Difficulty'''
* '''Potential mentors'''
: easy/medium
* '''Mentors and/or other team members'''
: Colin B. Macdonald, Mike Miller, Abhinav Tripathi
: Colin B. Macdonald, Mike Miller, Abhinav Tripathi


Line 166: Line 155:


* '''Required skills'''
* '''Required skills'''
: m-file scripting, C, C++, and FORTRAN API knowledge.
: Knowledge of Octave, C/C++; FORTRAN API knowledge
* '''Difficulty'''
* '''Potential mentors'''
: easy/medium
* '''Mentor'''
: Sebastian Schöps, Carlo de Falco
: Sebastian Schöps, Carlo de Falco


[[Category:Summer of Code]]
[[Category:Summer of Code]]
[[Category:Project Ideas]]
[[Category:Project Ideas]]