User:Vagoum: Difference between revisions

From Octave
Jump to navigation Jump to search
Line 38: Line 38:


== Y: Your task ==
== Y: Your task ==
*I would like to work on implementing the 1D solver for boundary value problems [[Implement solver for 1D nonlinear boundary value problems]].
*I would like to work on '''implementing the 1D solver for boundary value problems'''
*A rough timeline for my project is the following:
*A rough timeline for my project is the following:



Revision as of 23:20, 18 March 2014

A: An introduction

  • My name is Vasilis Goumas and I am 18 years old.I am currently a first year undergraduate student at Electrical and Computer Engineering at National Technical University of Athens,with an inclination towards programming,mathematics and computer science.I have a working knowledge of English and German and my mother tongue is Greek.I am an avid music listener and enjoy watching movies.
  • By participating in the Google Summer of Code, I hope to improve my programming skills as well as my mathematical knowledge on the field of Numerical Analysis/Differential Equations and make my first steps in the open-source software field.I have had no previous experience with Google Summer of Code before,but thats going to change!
  • Working towards the improvement of Octave offers me the chance to combine my passion for mathematics with my problem solving skills in programming.I will also have the chance to contribute to a tool that many scientists and engineers use in their work.

C: Contact

  • My IRC nickname is vagoum
  • My timezone is UTC+2 and this is not going to change during the GSoC period.

E: Coding experience

  • I am good at C++.My experience with m-scripts and Octave is elementary but I am able to learn things quickly.I have not any experience with OpenGL or Qt.
  • I have a strong knowledge of C and Python and have also coded a few in PHP/Javascript.
  • The biggest project I have worked on is an Automata editor,aiming to aid the teaching of Discrete Mathematics in various institutions worldwide.I was collaborating with another two people.The project is still under development.I coded mostly in Python for the database and Javascript for the algorithmic/GUI part.
  • I don't have any contributions to Octave yet.

F: Feeling fine

  • I have a previous experience with IRC and mailing list but I do not have used them intensively.
  • Haven't used mercurial before but I am very experienced with git/github.
  • No previous experience with Mediawiki
  • I use gcc a lot but not the exotic features of it.A little knowledge of make and very few of gdb.
  • Well,getting a positive feedback and making some friends with which we share the same passion for math and programming is surely a motive.Making my first steps in open-source software is another ;)

O: Only out of interest

  • I heard Octave for the first time in the Machine Learning course,taught by Andrew Ng at coursera,which I am currently taking.

P: Prerequisites

I work primarily on Mac Os X but also have access to Windows 7,Debian Wheezy and Ubuntu server 12.04 machines.Windows 7 lives on my desktop and the other two in the cloud. I am the complete owner of all these systems except the Debian one,so I can install anything on them.

  • I have access to an internet connection approximately 20 hours a day.
  • I have a computer with my progressing work 24 hours a day.

S: Self-assessment

  • Good criticism and reviewing is a vital process of the software production process and I would benefit quite a big deal from it.
  • I prefer making a rough draft of what I am planning to do on my mind and then start developing bottom up,glueing the intermediate pieces together according to the planning preceded.I want to have a clear picture of the implementation before getting down to work.This way I feel more secure and complete the coding process faster.Of course the event of something going not as expected is on the table and one must be flexible enough to change his planning.However,implementing small and easy routines/tests before glueing them all together is a good practise sometimes.Generally I prefer to optimize my coding schedule ,which means throwing code away is evil.

Y: Your task

  • I would like to work on implementing the 1D solver for boundary value problems
  • A rough timeline for my project is the following:

Spending time before the official starting date perfecting any theoretical gaps surrounding the algorithms involved and their implementations

May 19-June22 Start working on the improvement of bvp4c solver.Create necessary unit tests and debugging.The goal for the midterm evaluation is a fully functional and well documented version of the solver for octave.

June 23-June 27 Midterm evaluation period.Final tests and debugging for the bvp4c solver.

June 28-August 11 The first week will include a planning and design of the bvp5c solver for Octave.Matlab compatibility will be a target throught the planning process. The coding will take approximately 1-2 weeks and then all the testing can begin.The goal for the final evaluation would be a robust and efficient implementation of the solvers coming with the appropriate documentation.

  • My only commitment during this period is my university exams,which take place during the last week of July.However I will be able to code around 4-5 hours a day,when not studying.