Welcome to my very first blog for Google Summer of Code 2024.


My Organization

I’m contributing to NumFOCUS for GSoC 2024.

NumFOCUS supports and promotes world-class, innovative, open source scientific software by acting as an umbrella organization in Google Summer of Code.

Within the NumFOCUS umbrella, my project is in collaboration with Open Science Labs.

Open Science Labs is a platform dedicated to advancing the scientific research through collaboration, innovation, and education.

My Project is associated with CodeZoned’s PyDataStructs.

My project

I’ll be working on the project: Add C++ Backend for all trees and port stack.py to C++ Backend.

Project Goals

There are 2 broad goals of my project:

1. C++ Backend for Binary Trees

The first goal is to add a C++ backend for all trees present in the binary_trees.py file. This includes the following trees:

  1. AVL Tree
  2. Binary Tree
  3. Binary Search Tree
  4. Binary Indexed Tree
  5. Cartesian Tree
  6. Treap
  7. Splay Tree
  8. Red Black Tree

Different types of tree traversals will be implemented in the C++ backend, including:

  • Pre Order traversal
  • Post Order traversal
  • In Order traversal
  • Out Order traversal
  • Depth First Search (DFS)
  • Breadth First Search (BFS)

2. Porting stack.py to C++ backend

The second goal is to port stack.py to the C++ backend. Currently, the Python backend supports the following classes:

  1. Stack
  2. Array Stack
  3. Linked List Stack

These implementations will be optimized in terms of time and space complexity. Exhaustive tests will be added for all implementations. Adding a C++ backend will make the algorithms run faster, enhancing the utility of PyDataStructs.


My Proposal

Find my proposal for NumFOCUS, GSoC 2024 here.