Hello Dr. Travis Scrimshaw and SageMath community,

I am Dhrumil,  a final year undergraduate pursuing B.Tech. in Information 
Technology. I have been associated with SageMath community for about a 
month now and wish to contribute to SageMath by participating in GSoC 2024.

My current progress : 
        (1) Have *successfully installed the developer version of Sage *and 
*ran 
a few examples locally* to get acquainted.
        (2) To contribute to Sage, I first *revisited all the abstract 
algebra basics of groups, rings, vector spaces, modules*, etc.
        (3) I tried to solve a few good first issues and *have linked 2 PRs 
*to the issues.

I am particularly interested in *"Improve (free) module implementations" *
project. 
To understand the project, I have followed documentation and tutorial 
available 
Combinatorial free module documentation 
<https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/free_module.html>
Free module tutorial 
<https://doc.sagemath.org/html/en/reference/modules/sage/modules/tutorial_free_modules.html>

Here is *my approach and interpretation* of the project - 
 
SageMath has multiple implementations of free modules :  FreeModule - 
*sage.modules.free_module*    and  CombinatorialFreeModule - 
*sage.combinat.free_module*


*Potential Project Implementation steps : *
*(1) Creating a common abstract base class *
this will contain all the common methods and attributes of both the 
implementations
Eg) Both implementations have basis() method, this can be included in the 
common base class. Similarly change_ring() function is also common. 

*(2) Integration of dense representation for CFM*
Improvising the CFM implementation to support dense representations for 
applications requiring heavy use of dense linear algebra.

*(3) Refactoring both the implementations*
Improving code readability, eliminating redundant code, deprecating 
unwanted methods

*(4) Proper documentation and testing with some examples*

I am *unclear on a few things *in the project. 

Q1) I was going through the codebase of sage.combinat.free_module and 
sage.modules.free_module
They have quite a number of methods (some with same names and some with 
other names)
What are the major methods which are to be shifted to a common base class 
and which methods need to be explicitly present in the respective 
implementation classes only?

Q2) Also, I am unclear on why is there still a need to keep both the 
implementations of free module? Can't there just be 1 free module 
implementation?

It would be beneficial if you can help me understand the project better. 
I am also planning to write a proposal on the project. Once I draft the 
proposal, It would be helpful if we can discuss the project proposal in 
order to better address the project's objectives and implementation. 

Along with this project, I am *also interested in "Coordinate the graded 
commutative algebra and exterior algebra implementations and Gröbner bases" 
*project.  I do not entirely understand this project at the moment and 
currently, I am exploring Grobner basis.
Please can you also provide me some resource in order to understand *Singular's 
plural library implementation* as well as *SageMath's implementation* *of 
exterior algebra*. 

Regards, 
Dhrumil.

On Saturday 24 February 2024 at 20:01:49 UTC+5:30 tcscrims wrote:

> Dear Dhrumil,
>    Thank you for your interest. You can find all of the information 
> related to developing for Sage in our developer's guide:
>
> https://doc.sagemath.org/html/en/developer/
>
> For a list of project ideas and the application template, you can find the 
> information on the following wiki pages, respectively:
>
> https://wiki.sagemath.org/GSoC/2024
> https://wiki.sagemath.org/GSoC/Contributors
>
> Best,
> Travis
>
> On Wednesday, February 21, 2024 at 9:36:12 PM UTC+9 dhrumil...@gmail.com 
> wrote:
>
>> Hello SageMath community,
>>
>> I am Dhrumil Raigagla, a final year undergraduate pursuing B.Tech in 
>> Information Technology at VJTI, Mumbai.
>> I am *interested in contributing to SageMath and participating in GSoC 
>> 2024*.
>>
>> Over the years, I have had immense curiosity in mathematics(including 
>> *linear 
>> algebra, discrete mathematics, number theory*). This interest of mine 
>> aligns with projects of SageMath.
>> I also went through the project proposals of SageMath for GSoC 2024.
>>
>> I am *proficient in python and C++ *and now, have around 3 years of 
>> programming experience in both of these languages.
>> Along with this, I have *worked on developing a python module* for 
>> spectroscopy in my internship at Tata Institute of Fundamental 
>> Research(TIFR).
>> Further, I have also worked on other python projects and have explored 
>> various technologies like *version control systems*, *java backend, web 
>> development*, etc. 
>>
>> Any guidance on how to get started and make contributions to SageMath 
>> will be appreciated. 
>> Further, along with contribution guidelines, it will be beneficial if you 
>> can provide some important pointers regarding GSoC application and 
>> selection.
>>
>> Regards,
>> Dhrumil Raigagla
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-gsoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-gsoc+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-gsoc/e361b66a-d0f5-456a-b227-ae0e52548a1en%40googlegroups.com.

Reply via email to