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.