GSOC: The Heat Method for Distance Computation

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

GSOC: The Heat Method for Distance Computation

Theodor Augustin Dumitrescu
Dear CGAL,
my name is Dumitrescu Theodor Augustin and I'm 21 years old. I'm living in Trento where I'm attending the second year of the University of  Trento in Computer Science and Math.
Before in the high school, I studied IT and during a stage with the school, I was working on a GIS software. After that, I started to be passionate about 3D software and their implementations. Last year I received my  AutoCAD certification.
In IT I really love the Java technologies and I'm studying it since the jdk7 was released. When my studies took me to the Java Native Interface I founded the wonderful world of the metaprogramming with  C++ and about the low-level improvements. So now my main hobby is understood the algorithms and how can they be improved using features from the programming languages java and c++.
At the university, I already did exams in mathematic analysis 1, statistic and probability, linear algebra and geometry, modal algebra and graph theory, math logic, databases, programming 1 (data structs implementations in c++), oop programming with JavaFX,  functional programming with ML, computer's hardware and assembly (intel x86, arm, mips) and software engineering 1.
Now I'm studying algorithms and data structures (since the last September), mathematic analysis 2, differential equations, physic,  networking,  operating systems and web programming with Java EE (now Jakarta EE).
The average of my marks is 25/30.

My projects:
     - a library for exporting and creating 3d model in Blender from GIS software (made with c++ and python)
     - I'm writing a scripting language for relational algebra operations, that is used in my high-school for teaching the students. It was written Python but now I'm porting it Java 8 for getting the benefits of manipulating collections with streams. 
     - I worked on GoogleDrive, OneDrive, Dropbox, etc, API to create a restful API that is a bridge to all these clouds.
     - simple 2D and 3D games (with JavaFX, Swing, Phaser, JavaScript, LUA) for teaching game development at some CoderDojo and in the high school where once a week I'm teaching as volunteer game coding with Phaser.
     - now I'm also writing a shell for the Operating System course's project.

My best skills in programming are creating functional programming interfaced for frameworks, manipulations of data, low-level improvements. I can without problems that I know well the main topics about Java 8. In C++ I know all the bases, some feature from C++11 and a bit about metaprogramming with templates.
Generally, in computer science, I already studied all classical issues and their solution. I also can improve algorithms using dynamical programming. Now I'm approaching computational geometry because I'd like to write a thesis about the short path problem and that's why I'd like to study and implement the head method for distance computation.

In general, my skill with a team working is good because I'd used to participate at hackathons with strangers. I can say also that I don't need many efforts to learn new languages/framework because, for example, during a hackathon, my team decide to use the Laravel framework for PHP and I never used it, neither PHP and in one night I learned how to use them.
When I have to write I project alone generally first I write a skeleton structure to understand how the main parts should interact and then I start implementing the additional classes using a top-down approach. For example, first, I write in the main the functions that it has to call, then I start to implements each of this function and I don't move to the next one until I'm sure that this function works properly and that all the function and structures that these function needs are correct, finally I'll move to the next function that the main program need. After I finish all the program I read it again from a bottom-up view and start to do a refactoring process for "low-level" improvements.

I have a really good skill for scheduling my time and my activities, so probably I'll not have any problem with spends a lot of time during the day for the project. At the start of the summer, I'll have to do the exams at the university but I can handle this without problems. Generally, I wake up at 5-5.30 am for studying and reading blogs post until I have to go outside to do my workout routine, so I think that I can move my university studying time in the morning to have more time for the project during the day.

After the end of the GSOC I'm pretty sure that I'll continue to improve my work because I like to read old projects and refactor them to see how can I improve them with my newer skills and acknowledgement. I also love to start to join open source community and became active during my free time as hobby routine (I'm joining the GSOC because I want to reach this achievement).
 
Answering the question about if I feel more like a hacker or more like a man that love the theory, it is very hard for me. As I already said I love both theory and coding aspects of Computer Science. In fact, I think that without a good theoretical study you will never be able to write a very good code, but I also think that without knowing the most powerful and deep features of the language that you are using, even if you theoretical wrote a perfect algorithm, you will skip a lot of cool "tricks" that could help you to make the algorithm better. So I'm somewhere in the middle between hacker and theory/scientific aspects.

My deepest dream about my job career is to build a virtual-reality world that could be merged with the real world allowing people to "live" into both worlds simultaneously. The purpose of these second world would be allowed them to do in a "physical way" all the stuff that usually does with a computer and a browser, ie instead of using video call they would be able to meet "physically" other people to talk.

Best regards,

Dumitrescu Theodor A.



Reply | Threaded
Open this post in threaded view
|

Re: GSOC: The Heat Method for Distance Computation

Efi Fogel
Hi Theodor,

Thanks for the information and sharing your thoughts.
If you are interested in participating the Google Summer of Code (GSoC) 2018 program working on a CGAL project, you should  aim at specific projects listed here and follow the instructions therein.
Contact the mentors(s) of the project and make sure to submit the proposal(s) on time.

Good luck,
Efi

   ____  _        ____             _
  /_____/_) o    /__________  __  //
 (____ (   (    (    (_/ (_/-(-'_(/
                         _/



On 8 March 2018 at 23:58, Theodor Augustin Dumitrescu <[hidden email]> wrote:
Dear CGAL,
my name is Dumitrescu Theodor Augustin and I'm 21 years old. I'm living in Trento where I'm attending the second year of the University of  Trento in Computer Science and Math.
Before in the high school, I studied IT and during a stage with the school, I was working on a GIS software. After that, I started to be passionate about 3D software and their implementations. Last year I received my  AutoCAD certification.
In IT I really love the Java technologies and I'm studying it since the jdk7 was released. When my studies took me to the Java Native Interface I founded the wonderful world of the metaprogramming with  C++ and about the low-level improvements. So now my main hobby is understood the algorithms and how can they be improved using features from the programming languages java and c++.
At the university, I already did exams in mathematic analysis 1, statistic and probability, linear algebra and geometry, modal algebra and graph theory, math logic, databases, programming 1 (data structs implementations in c++), oop programming with JavaFX,  functional programming with ML, computer's hardware and assembly (intel x86, arm, mips) and software engineering 1.
Now I'm studying algorithms and data structures (since the last September), mathematic analysis 2, differential equations, physic,  networking,  operating systems and web programming with Java EE (now Jakarta EE).
The average of my marks is 25/30.

My projects:
     - a library for exporting and creating 3d model in Blender from GIS software (made with c++ and python)
     - I'm writing a scripting language for relational algebra operations, that is used in my high-school for teaching the students. It was written Python but now I'm porting it Java 8 for getting the benefits of manipulating collections with streams. 
     - I worked on GoogleDrive, OneDrive, Dropbox, etc, API to create a restful API that is a bridge to all these clouds.
     - simple 2D and 3D games (with JavaFX, Swing, Phaser, JavaScript, LUA) for teaching game development at some CoderDojo and in the high school where once a week I'm teaching as volunteer game coding with Phaser.
     - now I'm also writing a shell for the Operating System course's project.

My best skills in programming are creating functional programming interfaced for frameworks, manipulations of data, low-level improvements. I can without problems that I know well the main topics about Java 8. In C++ I know all the bases, some feature from C++11 and a bit about metaprogramming with templates.
Generally, in computer science, I already studied all classical issues and their solution. I also can improve algorithms using dynamical programming. Now I'm approaching computational geometry because I'd like to write a thesis about the short path problem and that's why I'd like to study and implement the head method for distance computation.

In general, my skill with a team working is good because I'd used to participate at hackathons with strangers. I can say also that I don't need many efforts to learn new languages/framework because, for example, during a hackathon, my team decide to use the Laravel framework for PHP and I never used it, neither PHP and in one night I learned how to use them.
When I have to write I project alone generally first I write a skeleton structure to understand how the main parts should interact and then I start implementing the additional classes using a top-down approach. For example, first, I write in the main the functions that it has to call, then I start to implements each of this function and I don't move to the next one until I'm sure that this function works properly and that all the function and structures that these function needs are correct, finally I'll move to the next function that the main program need. After I finish all the program I read it again from a bottom-up view and start to do a refactoring process for "low-level" improvements.

I have a really good skill for scheduling my time and my activities, so probably I'll not have any problem with spends a lot of time during the day for the project. At the start of the summer, I'll have to do the exams at the university but I can handle this without problems. Generally, I wake up at 5-5.30 am for studying and reading blogs post until I have to go outside to do my workout routine, so I think that I can move my university studying time in the morning to have more time for the project during the day.

After the end of the GSOC I'm pretty sure that I'll continue to improve my work because I like to read old projects and refactor them to see how can I improve them with my newer skills and acknowledgement. I also love to start to join open source community and became active during my free time as hobby routine (I'm joining the GSOC because I want to reach this achievement).
 
Answering the question about if I feel more like a hacker or more like a man that love the theory, it is very hard for me. As I already said I love both theory and coding aspects of Computer Science. In fact, I think that without a good theoretical study you will never be able to write a very good code, but I also think that without knowing the most powerful and deep features of the language that you are using, even if you theoretical wrote a perfect algorithm, you will skip a lot of cool "tricks" that could help you to make the algorithm better. So I'm somewhere in the middle between hacker and theory/scientific aspects.

My deepest dream about my job career is to build a virtual-reality world that could be merged with the real world allowing people to "live" into both worlds simultaneously. The purpose of these second world would be allowed them to do in a "physical way" all the stuff that usually does with a computer and a browser, ie instead of using video call they would be able to meet "physically" other people to talk.

Best regards,

Dumitrescu Theodor A.