PyDataStructs

MentorGagandeep Singh (czgdp1807)
Project Websitehttps://codezonediitj.github.io/
Project Repositoryhttps://github.com/codezonediitj/pydatastructs
Suitable for Beginners?yes
Tagsdata-structures algorithms algorithms-and-data-structures sports-programming computer-science python3
Stateaccepted
Applications (1st Choice)24 (23 submitted | 1 in-progress)
Applications (2nd Choice)26 (22 submitted | 4 in-progress)
Code of Conducthttps://github.com/codezonediitj/pydatastructs/blob/master/CODE_OF_CONDUCT.md
LicenseBSD 3-Clause "New" or "Revised" License (BSD-3-Clause)

Project Description

Aim
Currently, the aim of the project is to be a Python package for various data structures in computer science. In addition, we are also working on including parallel algorithms. To the best of our knowledge there doesn't exist any well designed library/package which has covered most of the data structures and algorithms including their parallel implementation. We are using Python because, the software development can happen at a much faster pace and it is much easier to test various software designs and APIs as coding them out takes no time.

In future, i.e, after a few releases of the package when the software design will become stable, we also aim to provide APIs for the code in C++ and Java as well. For clarity, the interested students aren't expected to know C++ and Java. Knowledge of Python is enough for this project.

The students who are interested to work on this project will implement various data structures and algorithms, during the duration of the program, from scratch. For more details see, Tasks and features.

Learning Outcomes

The students will learn the following aspects of software engineering,

  1. Software design - Before starting coding out any data structure, we have a practice of discussing the use cases and designing APIs for that. This will make students learn the importance of designing stable software.
  2. Writing clean code - We follow numpydoc string guide for our documentation and PEP 8 guidelines which results in a really clean code and helpful for future developers. This will inculcate a habit in students to write clean code.
  3. Testing and coverage - Since we implement data structures writing tests to increase code coverage is most important to us. This will help students learn how to write tests and covering corner cases.

Mentors and Coaches
Our project will give the students an experience of how software development pipeline works.

The following remote coaches will be there to help the students during the program,

  1. Gagandeep Singh
  2. Vedansh Priyadarshi

We have also participated in KWoC, 2019 organized by KOSS, IIT Kharagpur , amDeC, 2019 organized by amFOSS, Amrita Vishwa Vidyapeetham, Amritapuri and JMOC, 2020 organised by JIIT Noida.
We have also been accepted GirlsScript Summer of Code, 2020. Though if the timelines of RGSoC, 2020 and GSSoC, 2020 clash then we will make special arrangements for allocating issues to the participants of both the programs equally by attaching special labels like, rgsoc2020 and gssoc2020 for separation.

Project's Requirements

Students should have the following skills,

  1. Familiarity with Data Structures and Algorithms, either through course work or sports programming.
  2. Some experience with Python. Sharing your projects in Python programming language will be helpful for us to provide you resources accordingly.

Tasks And Features

The list of tasks which the students will perform is as follows,

Implementing Data Structures
We want students to implement various types of heaps. Currently, BinomialHeaps and BinomialHeap are supported by the package. Some specific types which aren't implemented yet are as follows,
1. FibonacciHeap - Details are given at https://github.com/codezonediitj/pydatastructs/issues/37
2. TernaryHeap
3. PairingHeap

The above is just a tentative list, more can be added according to the requests received.

We also want students to implement various trees, like,
1. KDTrees - The details are given at https://github.com/codezonediitj/pydatastructs/issues/32
2. FenwickTree - https://github.com/codezonediitj/pydatastructs/issues/24
3. SplayTree
4. RedBlackTree

Implementing Graph Algorithms
Some of the algorithms for Graphs which are to be added,

  1. BreadthFirstSearch - Both serail and parallel version of this algorithm. The details are given at https://github.com/codezonediitj/pydatastructs/issues/82
  2. DepthFirstSearch - Both serial and parallel version.
  3. DeepWalk - https://github.com/codezonediitj/pydatastructs/issues/65

Some easy to fix issues are available at https://github.com/codezonediitj/pydatastructs/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy-to-fix

Some of the core issues are also required to be fixed, for example,
1. Creating customised version of deepcopy for our package - https://github.com/codezonediitj/pydatastructs/issues/90

We again state that the above is just a short tentative list of tasks. We can change the road map according to the participants' interest. However, the plan of action for including any new API is fixed and is available at https://github.com/codezonediitj/pydatastructs/wiki/Plan-of-Action-for-the-Projects


If you are thinking of applying to this project for RGSoC 2020 and have any questions, feel free to contact the project mentor by leaving a comment below or using the following channels:
1. Gitter - https://gitter.im/czgdp1807
2. Linkedin - https://www.linkedin.com/in/czgdp1807/
3. Email - singh.23@iitj.ac.in or gdp.1807@gmail.com

Comments

You must be logged in to comment on this project.


Gagandeep Singh, Tuesday, March 31, 05:57 UTC

Hi,

Thanks for submitting your application.

Keep contributing!


SpandanaEdupuganti, Monday, March 30, 21:04 UTC

Hello,
We are Spandana and Deepthi from Team Starks. We are Computer Science graduate Students at University of Florida.
We have come across PyDataStructs Project and believe that this is perfect for us to work on and would love to contribute to this project.
We have hands on working experience with Data Structures and Algorithms during our course work.
Both of us also have experience in python, HTML, Javascript, CSS, Java, C++,SQL .
We are looking for coaches who can guide us during this project.
If anyone is interested to guide us, please mail us at
spandanaedupugan@ufl.edu
Please find our LinkedIn profiles below:
https://www.linkedin.com/in/deepthinarkuti/
https://www.linkedin.com/in/spandanaedupuganti/
Looking forward to your response.
Thank you!


Akansha2202, Monday, March 30, 16:52 UTC

I would like to contribute in this project. Please help to get started.


Shalininegi10, Monday, March 30, 15:06 UTC

Hello!

We are Shalini Negi and Tanuja contributing to this project.
Tanuja ans Me are very enthusiast for data structure ans algorithms.
We have implemented fen wick tree, SplayTree and other data structure in c++ and java.
It will be very great and interesting for us to impalement theses in python.
Both of us are willing to learn Vue and Django. We are interested as well as excited to work on this project. Looking forward to getting further guidelines.
LinkedIn profile: https://www.linkedin.com/in/tanuja-kharayat-a37b77170/
https://www.linkedin.com/in/silverlining11/
Thank you!


Sukriti Shah, Monday, March 30, 12:02 UTC

Hello! This is Sukriti Shah and Samruddhi Nirali - Team codingDuo , this side. We found this project pretty interesting. We are currently going through the codebase. We would love to start contributing as soon as we can. Thank you!


Tushika25, Sunday, March 29, 18:33 UTC

This is Tushika Singh from the team "Naam mein kya rakha hai" from Mandi, India. Me and my team mate are interested in doing contributions in the Fibonacci heap and are looking forward for your help so that we could get an idea of how we can create a separate library which could inculcate the various heaps required (we would code them all individually and pack them all together later). Thus, I look forward that you could guide us on how things can be done once we get the basic knowledge on the content required to code.
I had mailed regarding the same but didn't get any response.
Hoping to work on this wonderful project.
Thank you


Pakhi2001, Sunday, March 29, 15:04 UTC

I would like to contribute in this project. Please help me started.


Gagandeep Singh, Sunday, March 29, 13:53 UTC

Hi,

This message is the final reminder for submitting your application to avoid last minute rush.
This tweet has a nice checklist which you can go through before submitting your application.
Some students have told me that even after satisfying all the requirements they were unable to submit their draft application. In that case, please send an email to contact@rgsoc.org and if you want you can keep me in CC.


Aarya Pandya, Wednesday, March 25, 12:33 UTC

Hi,
I am Aarya and my teammate is Pragya.
We would like to work on your project so can you please guide us what and how to do this.


Tawishi Sharma, Wednesday, March 25, 10:54 UTC

Hi, sir.
Our team error404 wants to contribute to this project. Please guide us how to do so.


tea-n-biccies RGSoC, Monday, March 23, 11:06 UTC

Hi everyone, RGSoC Orga team here,
Just a reminder that you can have up to 4 coaches in your team, and are advised to have all coaches confirmed for your team by the deadline for applications on 30 March 2020.
Also, please check out the super helpful advice in the comment below :)


Gagandeep Singh, Monday, March 23, 10:05 UTC

Hi,

I am writing this message to highlight a few points,

  1. Deadline - As you might be knowing that the deadline for applying is just a week away, as of writing this message. The exact date and time is Tuesday, March 31 2020 at 03:29:00 IST(Indian Standard Time). Please convert the same to your time zone. So, I would suggest to start finalising your application and be early.
  2. Making contributions - Making contributions to this project before the beginning of official coding period(expected to start from July) is not a necessity, however, you can if you want to. In addition, I'd suggest you to go through, https://railsgirlssummerofcode.org/students/application/#contribute
  3. Discussing ideas - As there is no shortage of ideas for projects when it comes to data structures and algorithms. So, if you have anything creative in mind, please open an issue on our Github repository, or discuss on our gitter chat room. See, our issue policy.
  4. Adding coaches - I have got to know that submitting applications to a project requires coaches to be added beforehand. So, if there is a need please feel free to send us an invite on RGSoC website. Coaches are me(Gagandeep Singh) and Vedansh Priyadarshi.

In addition, if you have any query, doubts just discuss with me. My contact information is given at the end of the project description given above.

Best wishes, stay safe and work from home as much as you can.


Sargam Monga, Saturday, March 21, 14:18 UTC

Hi
I and my teammate are interested in this project. Please help us getting started with the contributions.
Thanks!


tea-n-biccies RGSoC, Friday, March 20, 13:43 UTC

Dear RGSoC applicants - we have added a new FAQ page to the website. Please check this out before asking mentors your questions, as we may already have an answer for you :)
https://railsgirlssummerofcode.org/students/faq

Further details of how to apply to RGSoC (by 23:00 UTC on 30 March 2020) can be found at https://railsgirlssummerofcode.org/students


Gagandeep Singh, Friday, March 13, 19:54 UTC

Hi Anagha,

Yes you can create issues for project ideas related to data structures and algorithms.


Anagha Mittal, Friday, March 13, 19:52 UTC

Hi,
I am a participant in RGSoC 20 and would like to work on this project. My query is whether we can create an issue for the existing website or just strictly have to stick to the topic decided for this year.


Gagandeep Singh, Wednesday, March 11, 16:56 UTC

Hi,

I would like to clarify a few things for the participants interested in this project for RGSoC, 2020 through this message.

As per this tweet the official working period starts from July, so making contributions isn't a necessity till your acceptance to the program. For getting accepted, you have to submit your application as described in the steps given at this link before 31st March, the official deadline.

For now, you can discuss the API designs of the data structures and algorithms you want to work on once the working period starts. You can also discuss with me if you are having some new ideas in the areas of data structures and algorithms. My contact information is given at the end of the project description. Vedansh Priyadarshi will be the remote coach for this project.

Please feel free to ask your doubts/queries.

Best wishes.


Soumya Rao, Monday, March 9, 13:32 UTC

Hi Sir! Sakshi and I (Soumya) would love to contribute to this project. Please guide us through the process.


Gagandeep Singh, Monday, March 9, 12:03 UTC

Hi,

Please see our issue policy where we have explained how to work on issues.

Thanks.


tea-n-biccies RGSoC, Monday, March 9, 11:22 UTC

Hi everyone - the RGSoC team here :)
Just a reminder that student applications are open until 23:00 UTC on 30 March 2020.
For information on how to apply as a student so you can work on this project with RGSoC, please read the guidance at https://railsgirlssummerofcode.org/students


Dina Adel Shalabi, Monday, March 9, 09:24 UTC

Hi, Mr. Gagandeep , We are Dina and Dalia from team bro-grammers.
We want to contribute to your project in RGSoc 2020, We're very interested in the data structure topic, we participated in competitive programming competitions; ACM, Hash Code '20, and soon google's kickstart, so your project came to our best interest, and we would like to contribute as soon as possible.
So, please assign us a task :).


kritika12298, Sunday, March 1, 14:20 UTC

Hi,
I am Kritika and my teammate is Shweta from team Warriors . We are want to participate in RGSOC and we are interested to apply for this project. Can you please guide us how to get started. We would like to start contributing as soon as possible.


Vani Gupta, Sunday, March 1, 08:37 UTC

Hi Gagandeep,
I am want to contribute to this project as a part of RGSoc '20. I'd like to start contributing ASAP.


Gagandeep Singh, Sunday, March 1, 06:10 UTC

Hi Riya,

If you are new to open source then you can start with easy to fix issues like improving documentation, adding tests and fixing some trivial bugs, improving code quality. For some examples, see some easy issues on our repository.

For the summer projects, we have opened some issues for RGSoC, 2020. See, https://github.com/codezonediitj/pydatastructs/issues?q=is%3Aopen+is%3Aissue+label%3Argsoc20. Though these are just ideas, you can propose your own by opening new issues. See, list of data structures and pick any which you want to add to PyDataStructs.

Feel free to ask your doubts/queries.


Riya Singh, Sunday, March 1, 02:53 UTC

Hi,
I am Riya and my teammate is Urwashi from team Bits&Bytes . We are want to participate in RGsoc and
The project seems very interesting. Can you please guide us how to get started. We would like to start contributing as soon as possible.