GSoC 2013 - Application

A: An introduction

  • Please describe yourself in three sentences, one of them regarding your current studies.
I'm a master student at the Politecnico di Milano. I like meeting and getting to know new people, and this is one of the reasons why I participated in a double degree program with the Ecole Polytechnique, which allowed me to live two years in Paris.
    • Which languages do you speak?
English, French, Spanish, Italian
    • What's your overall background?
I'm studying applied mathematics, which means that I have a good background on mathematics but I look also to practical issue in engineering, especially in fluid mechanics (I spent some months at the Max Planck Institute in Gottingen working on the transition to turbulence). Of course, Computer Science is the "tool" that allows me to tie these two worlds.
  • Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
I want to participate because I like coding. Therefore this represents an excellent opportunity to combine something I like doing with something which could be useful for everyone. I hope to gain the basic knowledge which could allow me to work on Public Project with a little bit of autonomy and indipendence even after the end of the GSoC.
  • Why are you choosing Octave?
I like maths and free software.

C: Contact

  • Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
Gedeone
  • Which time zone do you live in? Will that change over GSoC duration?
UTC+2
  • Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?
I usually code around 11.00 to 21.00 and could also try to finish later (~24.00)

E: Coding experience

  • Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
C++: very good knowledge, in university I took a few courses, and this project in particular would be part of my exam for the course on Advanced Programming for Scientific Computing, in which we saw advanced programming techniques and applications to numerical mathematics
m-scripts: good knowledge of the basic functions, commands and tools in Matlab/Octave which I combine to write basic m-scripts
  • Please describe your experience with other programming languages.
FreeFem++: I love working with this software because it allows to obtain solutions of any PDE problem with the FEM method in a simple and effective way. However, this is also a disadvantage, as the autonomy of the user is often limited. This is one of the reasons why I want to work on the project, in particular to provide a tool that is clear to the user but still allows a degree of autonomy in the implementation choices.
OPENMP and MPI : good knowledge of parallel computing (also some basic in CUDA) which I tested on the Computer facilities offered by the Maths Departement
Java: basic knowledge
  • Please describe your experience with being in a development team.
I don't have any previous experience with being in a development team and, as stated above, this is one of the reason why I

want to participate in the GSoC.

  • Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
I wrote a code combining FreeFem++ and Matlab for the study of a swirling flow. We simulated the steady state flow in FreeFem++ and then we studied the spectrum of the obtained flow in Matlab, in such a way to gain some insight on the stability of the flow.
  • Please state the commits and patches you already contributed to Octave.

F: Feeling fine

  • Please describe (in short) your experience with the following tools:
    • IRC and mailing lists : basic experience
    • Mercurial or other source code management systems : some experiences with Github
    • Mediawiki or other wiki software : I contributed to the wiki of my previous university
    • make, gcc, gdb or other development tools : I'm comfortable with them
  • What will make you actively stay in our community after this GSoC is over?
As stated above, I would like to participate to the GSoC exactly because I would like to contribute to the project but I don't have the experience for doing it autonomously and without creating more damages than benefits to the community.

O: Only out of interest

  • Did you ever hear about Octave before?
Yes
    • If so, when and where? How far have you been involved already?
I used it at the university instead of Matlab.
  • What was the first question concerning Octave you could not find an answer to rather quickly?
how to plot a function in a cycle using different colors at each step, in such a way to observe the evolution/convergence [it has been a long time ago :-)]

P: Prerequisites

  • Please state the operating system you work with.
Ubuntu 12.04 and Windows 7
    • If you have access to more than one, please state them and the conditions under which you are granted this access.
Always
  • Please estimate an average time per day you will be able to access
    • an internet connection
    • a computer
    • a computer with your progressing work on
I always have my laptop with me
  • Please describe the degree up to which you can install new software on computers you have access to.
I can install any software on my laptop

S: Self-assessment

  • Please describe how useful criticism looks from your point of view as committing student.
As stated above, I'm here to learn and so criticisms are necessary and welcome :-)
  • How autonomous are you when developing?
Once the problem is quite clear to me and I know how and where I have to add my code, I can be really fast and autonomous, but at the beginning I would like to have some discussion/help
    • Do you like to discuss changes intensively and not start coding until you know what you want to do?
I want to have some initial discussion about what the program is expected to do, and then start coding as I think that a lot of problems would arise only once one starts to write down the code
    • Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
I prefer not to change something if it already works.
I prefer to write small pieces of code and test separately

Y: Your task

  • Did you select a task from our list of proposals and ideas?
Yes
    • If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.
General purpose Finite Element Library[1]
I would like especially working on the high-order-accuracy IsoGeometric Analysis Method because I know enough about the basic properties of FEM methods and would like to see how they can still be extended and improved
  • Please provide a rough estimated timeline for your work on the task.
* [1 June - 16 June] Mentor consultation to understand the task right and check that everything needed for the implementation is working fine
* [17 June - 15 July] Start coding small part of the project, learning the standard adopted in the community [Also my final term exams will be in that period.]
* [15 July - 02 August] : Implementation phase discussing often with the mentor as soon as problems arise
* [03 August - 31 August] : Autonomous implementation phase, using the Feedback provided during the Midterm presentation.
* [01 September - End] : Check everything is fine with examples and preparing the final presentation.